[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 |
|
---|
[366] | 24 | ### Client side
|
---|
[91] | 25 |
|
---|
[366] | 26 | soju can operate in two different modes: multi upstream and single upstream.
|
---|
[123] | 27 |
|
---|
[366] | 28 | #### Single upstream mode
|
---|
| 29 |
|
---|
| 30 | In this mode, 1 upstream connection to a irc server = 1 connection to your soju
|
---|
| 31 | bouncer.
|
---|
| 32 |
|
---|
| 33 | The easiest and fastest way to use this is to specify the address of the server
|
---|
| 34 | in your username in your client configuration. For example to connect to
|
---|
| 35 | Freenode, your username will be: `<soju username>/chat.freenode.net`. Also set
|
---|
| 36 | your soju password in the password field of your client configuration.
|
---|
| 37 |
|
---|
| 38 | This will autoconfigure soju by adding a network with the address
|
---|
| 39 | `chat.freenode.net` and then autoconnect to it. You will now be able to join
|
---|
| 40 | any channel like you would normally do.
|
---|
| 41 |
|
---|
| 42 | #### Multi upstream mode
|
---|
| 43 |
|
---|
| 44 | In this mode, a single connection to your soju bouncer can handle multiple
|
---|
| 45 | upstream connections. You will need to manually configure each upstream
|
---|
| 46 | connection using the the special `BouncerServ` user.
|
---|
| 47 |
|
---|
| 48 | Connect to your soju server by specifying your soju username in the username
|
---|
| 49 | field in your client and your password in the password field.
|
---|
| 50 |
|
---|
| 51 | You should now be able to send private messages to the `BouncerServ`. You can
|
---|
| 52 | send it commands to configure soju. Create new networks:
|
---|
| 53 |
|
---|
| 54 | /msg BouncerServ network create -addr chat.freenode.net -name freenode
|
---|
| 55 | /msg BouncerServ network create -addr irc.rizon.net -name rizon
|
---|
| 56 |
|
---|
| 57 | You will now be able to join channels on these networks by specifying their
|
---|
| 58 | name:
|
---|
| 59 |
|
---|
| 60 | /join #soju/freenode
|
---|
| 61 | /join #somechannel/rizon
|
---|
| 62 |
|
---|
| 63 | #### Notes
|
---|
| 64 |
|
---|
| 65 | soju will automatically save and restore the channels you were connected to.
|
---|
| 66 |
|
---|
[53] | 67 | ## Contributing
|
---|
| 68 |
|
---|
[123] | 69 | Send patches on the [mailing list] or on [GitHub], report bugs on the
|
---|
[130] | 70 | [issue tracker]. Discuss in #soju on Freenode.
|
---|
[53] | 71 |
|
---|
[2] | 72 | ## License
|
---|
| 73 |
|
---|
[52] | 74 | AGPLv3, see LICENSE.
|
---|
| 75 |
|
---|
[337] | 76 | Copyright (C) 2020 The soju Contributors
|
---|
[53] | 77 |
|
---|
[336] | 78 | [soju]: https://soju.im
|
---|
[53] | 79 | [mailing list]: https://lists.sr.ht/~emersion/public-inbox
|
---|
[123] | 80 | [GitHub]: https://github.com/emersion/soju
|
---|
[98] | 81 | [issue tracker]: https://todo.sr.ht/~emersion/soju
|
---|