Home > Wiki > IRC Articles

All articles are licensed under CC0 1.0 making them public domain.

miniircd with Let's Encrypt #

Last updated February 2021

  1. Grab your certificates with certbot.

  2. In the working directory of your miniircd server, as root, run:

    cat /etc/letsencrypt/live/WEBSITE/fullchain.pem /etc/letsencrypt/live/WEBSITE/privkey.pem > fullchain-with-privkey.pem
  3. Correct the owner of the file:

    chown USER:GROUP fullchain-with-privkey.pem
  4. Set the correct access level so only the miniircd daemon user (more info below) can access the certificate:

    chmod 700 fullchain-with-privkey.pem
  5. Start the server:

    ./miniircd --port 6697 --ssl-pem-file=fullchain-with-privkey.pem

Security

The new .pem file should only be accessible by the daemon user that runs the miniircd server, this is done in steps 3 and 4. By default certbot keeps strict permissions that prevents all users on the server from accessing the private keys to your certificates, you should continue that measure with the new .pem file.


Example raw log #

Last updated February 2021

Helpful example log of IRC under the hood. Lines in bold are sent by the client, the rest is server sent.

NICK example
USER example 0 * :example
:116.1.168.192.in-addr.arpa 001 example :Hi, welcome to IRC
:116.1.168.192.in-addr.arpa 002 example :Your host is 116.1.168.192.in-addr.arpa, running version miniircd-2.0
:116.1.168.192.in-addr.arpa 003 example :This server was created sometime
:116.1.168.192.in-addr.arpa 004 example 116.1.168.192.in-addr.arpa miniircd-2.0 o o
:116.1.168.192.in-addr.arpa 251 example :There are 4 users and 0 services on 1 server
:116.1.168.192.in-addr.arpa 422 example :MOTD File is missing
JOIN #test   
:example!example@192.168.1.183 JOIN #test
:116.1.168.192.in-addr.arpa 331 example #test :No topic is set
:116.1.168.192.in-addr.arpa 353 example = #test :example
:116.1.168.192.in-addr.arpa 366 example #test :End of NAMES list
:yarrie!yarrie@192.168.1.116 JOIN #test
:yarrie!yarrie@192.168.1.116 PRIVMSG #test :hello
PRIVMSG #test hey
:yarrie!yarrie@192.168.1.116 PRIVMSG example :private msg
PRIVMSG yarrie yes
PING :116.1.168.192.in-addr.arpa
PONG :116.1.168.192.in-addr.arpa
QUIT