2020-06-10 21:00:50 +00:00
|
|
|
# [soju]
|
2020-02-04 09:50:28 +00:00
|
|
|
|
2020-07-24 07:49:54 +00:00
|
|
|
[![builds.sr.ht status](https://builds.sr.ht/~emersion/soju/commits.svg)](https://builds.sr.ht/~emersion/soju/commits?)
|
2020-05-01 19:58:29 +00:00
|
|
|
|
2020-02-17 11:19:27 +00:00
|
|
|
A user-friendly IRC bouncer.
|
|
|
|
|
|
|
|
- Multi-user
|
|
|
|
- Support multiple clients for a single user, with proper backlog
|
|
|
|
synchronization
|
|
|
|
- Support connecting to multiple upstream servers via a single IRC connection
|
|
|
|
to the bouncer
|
|
|
|
|
2020-03-04 17:27:33 +00:00
|
|
|
## Usage
|
|
|
|
|
2020-06-12 12:06:15 +00:00
|
|
|
See the man page at `doc/soju.1.scd` for more information.
|
|
|
|
|
|
|
|
### Server side
|
|
|
|
|
|
|
|
To create an admin user and start soju, run these commands:
|
|
|
|
|
|
|
|
go run ./cmd/sojuctl create-user <soju username> -admin
|
2020-06-04 18:10:17 +00:00
|
|
|
go run ./cmd/soju -listen irc+insecure://127.0.0.1:6667
|
2020-03-04 17:27:33 +00:00
|
|
|
|
2020-07-22 11:36:19 +00:00
|
|
|
If you're migrating from ZNC, a tool is available to import users, networks and
|
|
|
|
channels from a ZNC config file:
|
|
|
|
|
|
|
|
go run ./contrib/znc-import.go <znc config file>
|
|
|
|
|
2020-06-12 12:06:15 +00:00
|
|
|
### Client side
|
2020-03-12 20:28:09 +00:00
|
|
|
|
2020-06-12 12:06:15 +00:00
|
|
|
soju can operate in two different modes: multi upstream and single upstream.
|
|
|
|
|
|
|
|
#### Single upstream mode
|
|
|
|
|
|
|
|
In this mode, 1 upstream connection to a irc server = 1 connection to your soju
|
|
|
|
bouncer.
|
|
|
|
|
|
|
|
The easiest and fastest way to use this is to specify the address of the server
|
|
|
|
in your username in your client configuration. For example to connect to
|
|
|
|
Freenode, your username will be: `<soju username>/chat.freenode.net`. Also set
|
|
|
|
your soju password in the password field of your client configuration.
|
|
|
|
|
|
|
|
This will autoconfigure soju by adding a network with the address
|
|
|
|
`chat.freenode.net` and then autoconnect to it. You will now be able to join
|
|
|
|
any channel like you would normally do.
|
|
|
|
|
|
|
|
#### Multi upstream mode
|
|
|
|
|
|
|
|
In this mode, a single connection to your soju bouncer can handle multiple
|
|
|
|
upstream connections. You will need to manually configure each upstream
|
|
|
|
connection using the the special `BouncerServ` user.
|
|
|
|
|
|
|
|
Connect to your soju server by specifying your soju username in the username
|
|
|
|
field in your client and your password in the password field.
|
|
|
|
|
|
|
|
You should now be able to send private messages to the `BouncerServ`. You can
|
|
|
|
send it commands to configure soju. Create new networks:
|
|
|
|
|
|
|
|
/msg BouncerServ network create -addr chat.freenode.net -name freenode
|
|
|
|
/msg BouncerServ network create -addr irc.rizon.net -name rizon
|
|
|
|
|
|
|
|
You will now be able to join channels on these networks by specifying their
|
|
|
|
name:
|
|
|
|
|
|
|
|
/join #soju/freenode
|
|
|
|
/join #somechannel/rizon
|
|
|
|
|
|
|
|
#### Notes
|
|
|
|
|
|
|
|
soju will automatically save and restore the channels you were connected to.
|
2020-03-19 13:33:49 +00:00
|
|
|
|
2020-02-17 11:19:27 +00:00
|
|
|
## Contributing
|
|
|
|
|
2020-03-19 13:33:49 +00:00
|
|
|
Send patches on the [mailing list] or on [GitHub], report bugs on the
|
2020-03-20 09:42:17 +00:00
|
|
|
[issue tracker]. Discuss in #soju on Freenode.
|
2020-02-04 09:50:28 +00:00
|
|
|
|
|
|
|
## License
|
|
|
|
|
2020-02-07 16:41:51 +00:00
|
|
|
AGPLv3, see LICENSE.
|
|
|
|
|
2020-06-12 12:37:43 +00:00
|
|
|
Copyright (C) 2020 The soju Contributors
|
2020-02-17 11:19:27 +00:00
|
|
|
|
2020-06-10 21:00:50 +00:00
|
|
|
[soju]: https://soju.im
|
2020-07-24 07:49:54 +00:00
|
|
|
[mailing list]: https://lists.sr.ht/~emersion/soju-dev
|
2020-03-19 13:33:49 +00:00
|
|
|
[GitHub]: https://github.com/emersion/soju
|
2020-03-13 17:13:03 +00:00
|
|
|
[issue tracker]: https://todo.sr.ht/~emersion/soju
|