So, you’ve heard about the Telegram fiasco, right? The big guy in charge got thrown in the slammer in France, and everyone started panicking about who’s really in control of our messages. If that doesn’t scream, “Hey, maybe don’t trust centralized platforms,” then I don’t know what will.
But don’t worry! This guide is here to introduce you to DarkIRC, the chat app that laughs in the face of centralization. Part of the DarkFI project, DarkIRC is all about keeping your conversations under wraps—no central servers, no prying eyes, just pure, unfiltered privacy. Best of all: it is IRC based, and you already know that I just loooove IRC.
Ready to dive into the deep end of secure communication? Let’s get started.
Getting Ready: A Command-Line Adventure
First things first, you need to be comfortable with the Linux command line. If you’re the type who thinks a terminal is a bus station, you might want to hit the books before jumping into this. But if you’re already a shell warrior, you’re in for a treat.
Setting Up Your Digital Hideout (a.k.a VPS)
You can run DarkIRC on your own computer, but there’s a catch: when your computer is off, you miss out on all those juicy messages. Plus, if anyone gets their hands on your machine, your secret keys and identity are up for grabs.
For the best experience, you’ll want to use a VPS (Virtual Private Server). It’s always online, so your DarkIRC node is too. Now, here’s where it gets a bit tricky—choosing a VPS provider. Your standard $5-a-month VPS from AWS or DigitalOcean is easy to set up, but if Big Brother comes knocking, they’ll hand over your data without batting an eye.
Instead, look for a VPS provider where you can maintain anonymity, pay with cryptocurrency and overall have to give away as little info about yourself as possible. I personally like the services that https://hostslick.com/ (referral link) provides. They are highly professional and allow you to be anonymous if you want.
When setting up your VPS, just go for the smallest instance you can find. I enjoy the simplicity from Ubuntu or Debian, but use a Linux distribution you feel comfy with.
Start by securing your VPS as much as possible by locking down your SSH, add firewall rules, update everything and make sure that no unneeded services are running. There are plenty of guides on how to do that on the internet already.
Building DarkIRC: DIY Edition
You might be the king (or queen) of your VPS, but that doesn’t mean you should do everything as root. Let’s create a special user for DarkIRC:
#adduser anon
Adding user `anon' ...
Adding new group `anon' (1002) ...
Adding new user `anon' (1002) with group `anon' ...
Creating home directory `/home/anon' ...
Copying files from `/etc/skel' ...
New password:
Retype new password:
passwd: password updated successfully
Changing the user information for anon
Enter the new value, or press ENTER for the default
Full Name []:
Room Number []:
Work Phone []:
Home Phone []:
Other []:
Is the information correct? [Y/n]
Give it a good, strong password that you can remember, and press enter for the rest of the questions (no need to share any info here). Afterward, you can upload an ssh key to the VPS and disable ssh login with password.
Now let’s start the DarkIRC build fun. First, there are some requirements for building this and later run it. The following things need to be installed :
- gcc
- Rust+Cargo (always use Rustup installer – see steps below)
daemontools
git
sudo
software-properties-common (ubuntu/debian specific)
apt-transport-https (ubuntu/debian specific)
libsqlcipher-dev
iproute2
psmisc
net-tools
locales
curl
The names might differ a bit depending on your distribution. Besides Rust/Cargo, all the others can be installed via sudo apt install
if you use Ubuntu/Debian.
DarkIRC is part of the DarkFI project, which is all about decentralization, privacy, and, well, not trusting anyone. So, naturally, you’re going to build it from source. Don’t worry, it’s not as bad as it sounds.
Start by logging in via ssh as your newly created anon user
- Install Rust and Cargo: DarkIRC is written in Rust, so you’ll need the Rust toolchain. Download it using rustup as this is considered the best way (the repo versions, at least in ubuntu, tend to be a bit old)
curl https://sh.rustup.rs -sSf > rustup.sh
sh rustup.sh -y --no-modify-path
- Clone the DarkFI Repository: Grab the source code from DarkFI’s GitHub (or whatever dark corner of the internet they’re hosting it on).
git clone https://codeberg.org/darkrenaissance/darkfi
cd darkfi
- Compile DarkIRC: Build it and let the magic happen. This might take a while, so grab a coffee, or maybe a cold brew if you’re fancy.
make darkirc
If everything goes well, you should now see a line saying “Finished release profile….”. This means that you now have an darkirc server built.
Running DarkIRC: Because Persistence Pays
Now comes the fun part—running DarkIRC and connecting to the DarkIRC network. But first, a quick tip: use Tmux
. This handy tool keeps your session alive even when you’re not connected. That way, DarkIRC will keep doing its thing in the background, logging messages and keeping you in the loop.
Tmux is one of those tools I install together with Neovim as the first things on a new machine. If you have another session manager you prefer, then feel free to use that instead.
So now it is just:
- Start Tmux: Launch Tmux, and you’ll see your terminal change a bit, but don’t worry, it’s still your trusty shell.
tmux
- Launch DarkIRC: Run the DarkIRC executable, and watch it connect to the peer-to-peer network.
~/darkirc/darkirc
If you see something like[EVENTGRAPH] DAG synced successfully!
, congrats—you’re in!
Now you can either just detach from the session (ctrl-b d
in tmux) or you can create a new window in your session (ctrl-b c
in tmux) and start a terminal based IRC client here. I usually connect to IRC via weeChat terminal client, so I would go for the latter solution. Alternatively, you can use an IRC from your private computer and then just use the VPS as your server (see steps below)
If you want to play around with the config file for darkirc, you will normally find it in ~/.config/darkfi/darkirc_config.toml
You don’t have to restart the server after changing the config. Just use the command /rehash
in weechat and the server will reload the config.
The config file is also where you will add the public keys for other people you want to chat privately with (unencrypted DMs are disabled on darkirc). More info on this in an upcoming post.
WeeChat + DarkIRC: The Dream Team
WeeChat is where the magic happens. You’ll need to set it up to connect to your DarkIRC instance:
- Add DarkIRC as a Server: Use the
/server add
command to tell WeeChat where to connect./server add darkirc localhost/6667 -notls -autoconnect
Replace localhost with the address of your server if you do not connect from the local anon user. - Choose Your Nickname: Pick a handle, but remember—anonymity is key. Don’t use your real name or anything that could tie back to you.
/nick YourAnonNickName
- Save your settings
NOTE: Your nickname is the only identifier others will see, so pick wisely. Avoid anything that could give away your identity.
Playing it Safe on DarkIRC
Once you’re connected, remember that public channels on DarkIRC are just that—public. Anything you say can be read, archived, and shared by anyone. So, keep your secrets to yourself and your chats as vague as a politician’s promises.
When you’re done for the day, just detach from your tmux session andclose your SSH connection without quitting WeeChat. Your VPS will keep running DarkIRC, logging messages for you to catch up on later. Next time you log in, just reattach your Tmux session (tmux a
), and you’re good to go.
Wrapping Up
And there you have it! You’re now the proud owner of a DarkIRC node, part of the DarkFI project that’s pushing the boundaries of privacy and decentralization. Whether you’re dodging Big Brother or just want a chat app that respects your privacy, DarkIRC has got you covered.
Just remember, with great power comes great responsibility—or at least a fair bit of command-line tinkering. Stay safe, stay anonymous, and keep chatting like nobody’s watching.
PS: The IRC network on Darkfi is quite new and only a handful of people are active there – let’s change that!