Setting up ZNC
ZNC is an IRC bouncer. It stays connected to your IRC networks around the clock, even while your own computer or IRC client is offline, and replays what you missed — channel backlog and private messages — when you reconnect. Instead of connecting your IRC client directly to a network, you connect it to your ZNC instance, and ZNC stays connected to IRC on your behalf.
1. Request a port first
ZNC needs a port that other machines can connect to, and on ShadowShells incoming ports are assigned by the system — you cannot pick your own. Before doing anything else, go to the Ports section of the dashboard and request one. Make a note of the number you're given; you'll enter it during ZNC's setup below. If you configure ZNC to listen on a port you chose yourself instead, it will not be reachable from outside — the firewall only opens for ports the system has assigned to you.
2. Build ZNC
The easy way
Run:
ss-build-znc
This fetches the ZNC source, configures and compiles it, and installs it into ~/znc — the same steps described below, automated. When it finishes, skip ahead to first-run configuration.
The manual way
If you want to see what's actually happening, or the helper script fails and you need to debug it:
git clone --recursive https://github.com/znc/znc.git cd znc ./autogen.sh ./configure --prefix=$HOME/znc make make install
autoconf, automake, and libtool, needed for autogen.sh, and build-essential for the compiler itself, are already installed system-wide. Compiling takes a few minutes — make is the slow step, expect to wait.
3. First-run configuration
Run the setup wizard:
~/znc/bin/znc --makeconf
It walks through a series of questions. The ones worth calling out:
- Listen port — enter the port the dashboard assigned you in step 1. Do not enter a port of your own choosing.
- Listen using SSL — yes is recommended; ZNC will generate a self-signed certificate for you.
- Username / password — this is your ZNC login, separate from your shell account password.
- Set up a network — you can add an IRC network (server, port, channels to auto-join) right here, or add one later from inside ZNC.
4. Start it under screen or tmux
Start ZNC inside a screen or tmux session so it keeps running after you disconnect:
screen -S znc ~/znc/bin/znc
Detach with Ctrl-A then D. ZNC now runs as a background process — it counts against your plan's background process limit, so check usage if you're also running other background services. See irssi with screen or tmux for more on detaching and reattaching.
5. Connect your IRC client
Point your client's bouncer/ZNC connection settings at:
- Server:
shell.shadowsquad.org - Port: the one assigned to you in step 1
- Username:
yourzncuser/networkname - Password: the password you set in
--makeconf
Some clients only have a single combined login field rather than separate username and password fields. In that case, use the format user/network:password — your ZNC username, a slash, the network name you configured, a colon, then your password.
Troubleshooting
- Can't connect from outside
- Double check you're using the port the dashboard assigned you, not one you picked yourself. A port you didn't request from the Ports section is not open in the firewall, no matter what your ZNC config says.
- Config location
- Your ZNC config lives at
~/.znc/configs/znc.conf. You can edit it directly if needed, though most day-to-day changes are easier to make from inside ZNC itself. - Checking it's running
- Reattach to your screen session (
screen -r znc) and check the output, or runscreen -lsto confirm the session still exists.