Soju IRC bouncer with Libera

Connecting to Libera with Halloy via Soju.

To connect to Libera with Soju, do the following:

  1. Connect to Libera with your client of choice (I use Halloy) normally, register with NickServ.
  2. On your server, install Soju (apt install soju)
  3. Edit Soju's config (/etc/soju/config) to be this:
    1
    2
    3
    4
    db sqlite3 /var/lib/soju/main.db
    message-store fs /var/lib/soju/logs/
    hostname 164.92.109.104
    listen irc+insecure://0.0.0.0:6667
  4. Run the user setup command in the Soju docs (sojudb create-user <soju username> -admin)
    • This username is not the username that you connect to Libera with, though it can be the same
  5. Run/restart Soju (systemctl restart soju)
  6. In Halloy's configuration, update your Libera server config to the following:
    1
    2
    3
    4
    5
    6
    7
    8
    [servers.liberachat]
    nickname = "<libera username>"
    server = "164.92.109.104"
    port = 6667
    use_tls = false
    username = "<soju username>/irc.libera.chat"
    password = "<soju password>"
    chathistory = true
  7. Connect with Halloy. Soju should try to connect to Libera, but Libera will likely kill the connection citing requiring registration from your IP (if you're using a server by a well-used host like DigitalOcean).
  8. Open a message to BouncerServ (/msg BouncerServ)
  9. Enter these commands to set up SASL:
    1
    sasl set-plain <libera username> <libera password>
  10. It should work.

I didn't know about messaging BouncerServ, so I manually edited the Soju sqlite DB with the following:

1
update network set sasl_mechanism = "PLAIN", sasl_plain_username = "<libera username>", sasl_plain_password = "<libera password>";