Guide

  1. Soju

[Soju](https://soju.im) is A user-friendly IRC bouncer. Just like [ZNC](http://wiki.ircnow.org/index.php?n=Znc.Install), It runs on a server and stays connected after you turn off your computer or phone. It saves chat messages and replays them when you reconnect, and also helps to hide your IP address. If you are running it on IRCNow, your server may also offer DDoS protection to keep you online.

  1. Getting started

Starting by compiling from source. You need `go` or `golang` installed for compiling soju, and `scdoc` for the documentation (optional).

  1. Getting source code from git repository

Clone the repository with `git clone` command.

``` cd ~ git clone --depth=1 https://git.sr.ht/~emersion/soju ```

  1. Getting source code from release

We're gonna fetch a tarball from upstream then extract them

``` ftp https://git.sr.ht/~emersion/soju/refs/download/v0.4.0/soju-0.4.0.tar.gz tar -xvzf soju-0.4.0.tar.gz cd soju-0.4.0 ```

  1. Compiling Soju

When you've been fetch the source code, start compiling by typing `make`. Before begin compiling, make sure that `go` or `golang` is installed in your VPS.

``` make ```

When building is done, Run `doas make install` to install soju into your system.

  1. Configuration

Soju has a small server configuration which is easy to configure.

See [soju.1 - Config File](https://soju.im/doc/soju.1.html#CONFIG_FILE) for more information about configuration file.

After configuring soju config file, Start by creating a bouncer user. You may specify `-admin` at the end for making the user as admin

``` $ sojuctl create-user yourname -admin Password: ```

In case if you want to change password, do `sojuctl change-password yourname`.

  1. Setting up & Connecting into network

Start the server by executing `soju -config soju.conf`. Modify `soju.conf` into your config filename to use your config.

Connect into your bouncer with these credential:

SASL Username: yourname SASL Password: [your bouncer user password] SASL Mechanism: PLAIN

Then, Add a network into your bouncer by messaging to BouncerServ`

``` /msg BouncerServ network create -addr irc.ircnow.org:6697 -name IRCNow ```

After executing this command, You will be connected into your network.

Optionally, You may also set SASL plain / external (certfp) authentication.

For SASL Plain, You may do ``` /msg BouncerServ sasl set-plain -network NetworkName yourname password ```

Then, reconnect the network by doing `/msg BouncerServ network update -network NetworkName`.

  1. Client Compatibility

Soju require atleast IRCv3 supported client with `cap-3.2` support. See the [IRCv3 support tables](https://ircv3.net/software/clients) for a more general list of clients.

  1. Also Read

- [soju(1)](https://soju.im/doc/soju.1.html) - [soju - Getting started](https://git.sr.ht/~emersion/soju/tree/HEAD/item/doc/getting-started.md) - [soju - Clients](https://git.sr.ht/~emersion/soju/tree/HEAD/item/contrib/clients.md) - [catsit - process supervisor](https://git.causal.agency/catsit)