[336] | 1 | # [soju]
|
---|
[2] | 2 |
|
---|
[290] | 3 | [](https://builds.sr.ht/~emersion/soju/.build.yml?)
|
---|
| 4 |
|
---|
[53] | 5 | A user-friendly IRC bouncer.
|
---|
[2] | 6 |
|
---|
[53] | 7 | - Multi-user
|
---|
| 8 | - Support multiple clients for a single user, with proper backlog
|
---|
| 9 | synchronization
|
---|
| 10 | - Support connecting to multiple upstream servers via a single IRC connection
|
---|
| 11 | to the bouncer
|
---|
| 12 |
|
---|
[78] | 13 | ## Usage
|
---|
| 14 |
|
---|
[366] | 15 | See the man page at `doc/soju.1.scd` for more information.
|
---|
| 16 |
|
---|
| 17 | ### Server side
|
---|
| 18 |
|
---|
| 19 | To create an admin user and start soju, run these commands:
|
---|
| 20 |
|
---|
| 21 | go run ./cmd/sojuctl create-user <soju username> -admin
|
---|
[317] | 22 | go run ./cmd/soju -listen irc+insecure://127.0.0.1:6667
|
---|
[78] | 23 |
|
---|
[367] | 24 | If you're migrating from ZNC, a tool is available to import users, networks and
|
---|
| 25 | channels from a ZNC config file:
|
---|
| 26 |
|
---|
| 27 | go run ./contrib/znc-import.go <znc config file>
|
---|
| 28 |
|
---|
[366] | 29 | ### Client side
|
---|
[91] | 30 |
|
---|
[366] | 31 | soju can operate in two different modes: multi upstream and single upstream.
|
---|
[123] | 32 |
|
---|
[366] | 33 | #### Single upstream mode
|
---|
| 34 |
|
---|
| 35 | In this mode, 1 upstream connection to a irc server = 1 connection to your soju
|
---|
| 36 | bouncer.
|
---|
| 37 |
|
---|
| 38 | The easiest and fastest way to use this is to specify the address of the server
|
---|
| 39 | in your username in your client configuration. For example to connect to
|
---|
| 40 | Freenode, your username will be: `<soju username>/chat.freenode.net`. Also set
|
---|
| 41 | your soju password in the password field of your client configuration.
|
---|
| 42 |
|
---|
| 43 | This will autoconfigure soju by adding a network with the address
|
---|
| 44 | `chat.freenode.net` and then autoconnect to it. You will now be able to join
|
---|
| 45 | any channel like you would normally do.
|
---|
| 46 |
|
---|
| 47 | #### Multi upstream mode
|
---|
| 48 |
|
---|
| 49 | In this mode, a single connection to your soju bouncer can handle multiple
|
---|
| 50 | upstream connections. You will need to manually configure each upstream
|
---|
| 51 | connection using the the special `BouncerServ` user.
|
---|
| 52 |
|
---|
| 53 | Connect to your soju server by specifying your soju username in the username
|
---|
| 54 | field in your client and your password in the password field.
|
---|
| 55 |
|
---|
| 56 | You should now be able to send private messages to the `BouncerServ`. You can
|
---|
| 57 | send it commands to configure soju. Create new networks:
|
---|
| 58 |
|
---|
| 59 | /msg BouncerServ network create -addr chat.freenode.net -name freenode
|
---|
| 60 | /msg BouncerServ network create -addr irc.rizon.net -name rizon
|
---|
| 61 |
|
---|
| 62 | You will now be able to join channels on these networks by specifying their
|
---|
| 63 | name:
|
---|
| 64 |
|
---|
| 65 | /join #soju/freenode
|
---|
| 66 | /join #somechannel/rizon
|
---|
| 67 |
|
---|
| 68 | #### Notes
|
---|
| 69 |
|
---|
| 70 | soju will automatically save and restore the channels you were connected to.
|
---|
| 71 |
|
---|
[53] | 72 | ## Contributing
|
---|
| 73 |
|
---|
[123] | 74 | Send patches on the [mailing list] or on [GitHub], report bugs on the
|
---|
[130] | 75 | [issue tracker]. Discuss in #soju on Freenode.
|
---|
[53] | 76 |
|
---|
[2] | 77 | ## License
|
---|
| 78 |
|
---|
[52] | 79 | AGPLv3, see LICENSE.
|
---|
| 80 |
|
---|
[337] | 81 | Copyright (C) 2020 The soju Contributors
|
---|
[53] | 82 |
|
---|
[336] | 83 | [soju]: https://soju.im
|
---|
[53] | 84 | [mailing list]: https://lists.sr.ht/~emersion/public-inbox
|
---|
[123] | 85 | [GitHub]: https://github.com/emersion/soju
|
---|
[98] | 86 | [issue tracker]: https://todo.sr.ht/~emersion/soju
|
---|