Setting up psyBNC

psyBNC is the bouncer most people mean when they say "BNC" — 1999 to 2003, still in use, still small. It sits on the shell holding your IRC connections open while you are away, and hands you the backlog when you come back. It is 290 KB and uses about five megabytes of memory.

Build it

You need a port first. Request one from the Ports page, then:

ss-build-psybnc 20001

Pass the port the system assigned you. Run it with no argument and it asks. The build takes about ten seconds and peaks at 42 MB, so it fits inside every plan from Basic upwards.

Two things the helper handles that would otherwise stop you. psyBNC is pre-C99 C and modern GCC rejects it outright, so it is compiled with the old rules restored. And its build ends by generating an SSL certificate through an interactive openssl prompt — which fails after the binary has already been linked, a confusing way to lose ten minutes. The helper answers it.

Add your user

psyBNC has no way to add the first user from the command line. Its own configurator does it:

cd ~/psybnc
./menuconf

Arrow keys and Enter. Add a user with a login, a password and your usual nick, check the listening port matches the one you were assigned, then save and quit. Everything lands in ~/psybnc/psybnc.conf, which you can also edit by hand once you know what the keys mean.

Run it

cd ~/psybnc
./psybnc

Do not wrap it in screen. psyBNC puts itself in the background: you get your prompt back immediately and the process keeps running with init as its parent. Wrapping it in screen -dmS gives you a screen session that exits a second later, which looks like the bouncer crashed when it is running perfectly well.

Check it:

ps -u $(id -un) -o pid,comm | grep psybnc
usage

It counts as one background process against your plan.

Connect to it

Server
shell.shadowsquad.org
Port
the one the panel assigned you — any other is firewalled off
Server password
the password you set in the configurator

In irssi that is:

/connect shell.shadowsquad.org 20001 yourpassword

Once connected you are talking to psyBNC, not to IRC. Its own commands start with a slash and go to the *status-like console: /addserver, /jump, /bhelp for the list. Add a network, connect, and from then on your client is talking through the bouncer.

The SSL certificate

The build generates a self-signed certificate at ~/psybnc/key/psybnc.cert.pem, and an SSL listening port can be turned on in the configurator. Any client that verifies certificates will refuse a self-signed one until you tell it which certificate to expect — that is what ss-tls-trust and ss-tls-fingerprint are for. See self-signed certificates in irssi.

Surviving a reboot

Reboots here are announced in advance and never automatic, but they happen. Because psyBNC backgrounds itself, the cron line is simple:

@reboot sleep 30 && cd $HOME/psybnc && ./psybnc

crontab -e to add it.

One rule

A bouncer inherits your responsibility for what it does. Flooding, evading bans or being a nuisance on another network from a ShadowShells address gets the account suspended, not just the bouncer — see the rules. Other people's accounts live on this address too.

« All guides