2020-03-19 13:16:39 +00:00
|
|
|
soju(1)
|
|
|
|
|
|
|
|
# NAME
|
|
|
|
|
|
|
|
soju - IRC bouncer
|
|
|
|
|
|
|
|
# SYNOPSIS
|
|
|
|
|
|
|
|
*soju* [options...]
|
|
|
|
|
|
|
|
# DESCRIPTION
|
|
|
|
|
|
|
|
soju is a user-friendly IRC bouncer. It connects to upstream IRC servers on
|
|
|
|
behalf of the user to provide extra features.
|
|
|
|
|
|
|
|
- Multiple separate users sharing the same bouncer, each with their own
|
|
|
|
upstream servers
|
|
|
|
- Sending the backlog (messages received while the user was disconnected from
|
|
|
|
the bouncer), with per-client buffers
|
|
|
|
|
2022-08-05 17:56:33 +00:00
|
|
|
To connect to the bouncer, use the bouncer username and password. To use a
|
|
|
|
client which doesn't support the _soju.im/bouncer-networks_ IRC extension,
|
|
|
|
setup one connection per server configured in soju, and indicate the network
|
|
|
|
name in the username: "<username>/<network>". Then channels can be joined and
|
|
|
|
parted as if you were directly connected to the upstream server.
|
|
|
|
|
2023-08-17 16:25:07 +00:00
|
|
|
For per-client history to work on clients which don't support the IRCv3
|
|
|
|
_chathistory_ extension, clients need to indicate their name. This can be done
|
|
|
|
by adding a "@<client>" suffix to the username.
|
|
|
|
|
2020-03-19 13:16:39 +00:00
|
|
|
When joining a channel, the channel will be saved and automatically joined on
|
|
|
|
the next connection. When registering or authenticating with NickServ, the
|
|
|
|
credentials will be saved and automatically used on the next connection if the
|
2020-04-28 13:27:41 +00:00
|
|
|
server supports SASL. When parting a channel with the reason "detach", the
|
|
|
|
channel will be detached instead of being left.
|
2020-03-19 13:16:39 +00:00
|
|
|
|
2022-08-05 17:56:33 +00:00
|
|
|
If a network specified in the username doesn't exist, and the network name is a
|
|
|
|
valid hostname, the network will be automatically added.
|
|
|
|
|
2020-04-03 15:25:53 +00:00
|
|
|
When all clients are disconnected from the bouncer, the user is automatically
|
2022-09-26 17:49:26 +00:00
|
|
|
marked as away by default.
|
2020-04-03 15:25:53 +00:00
|
|
|
|
2021-11-15 23:38:04 +00:00
|
|
|
soju will reload the configuration file, the TLS certificate/key and the MOTD
|
|
|
|
file when it receives the HUP signal. The configuration options _listen_, _db_
|
|
|
|
and _log_ cannot be reloaded.
|
2021-03-18 13:07:03 +00:00
|
|
|
|
2021-06-23 17:29:15 +00:00
|
|
|
Administrators can broadcast a message to all bouncer users via _/notice
|
2023-08-17 16:27:46 +00:00
|
|
|
$<hostname> <text>_, or via _/notice $\* <text>_ if the connection isn't bound
|
|
|
|
to a particular network. All currently connected bouncer users will receive the
|
|
|
|
message from the special _BouncerServ_ service.
|
2021-06-23 17:29:15 +00:00
|
|
|
|
2020-03-19 13:16:39 +00:00
|
|
|
# OPTIONS
|
|
|
|
|
|
|
|
*-h, -help*
|
|
|
|
Show help message and quit.
|
|
|
|
|
|
|
|
*-config* <path>
|
2020-04-16 16:54:47 +00:00
|
|
|
Path to the config file. If unset, a default config file is used.
|
2020-03-19 13:16:39 +00:00
|
|
|
|
|
|
|
*-debug*
|
|
|
|
Enable debug logging (this will leak sensitive information such as
|
|
|
|
passwords).
|
|
|
|
|
2020-06-04 18:10:17 +00:00
|
|
|
*-listen* <uri>
|
2021-03-31 17:02:40 +00:00
|
|
|
Listening URI (default: ":6697"). Can be specified multiple times.
|
2020-03-19 13:16:39 +00:00
|
|
|
|
|
|
|
# CONFIG FILE
|
|
|
|
|
|
|
|
The config file has one directive per line.
|
|
|
|
|
2020-07-22 13:43:22 +00:00
|
|
|
Example:
|
|
|
|
|
|
|
|
```
|
|
|
|
listen ircs://
|
|
|
|
tls cert.pem key.pem
|
|
|
|
hostname example.org
|
|
|
|
```
|
|
|
|
|
|
|
|
The following directives are supported:
|
|
|
|
|
2020-06-04 18:10:17 +00:00
|
|
|
*listen* <uri>
|
|
|
|
Listening URI (default: ":6697").
|
|
|
|
|
|
|
|
The following URIs are supported:
|
|
|
|
|
|
|
|
- _[ircs://][host][:port]_ listens with TLS over TCP (default port if
|
|
|
|
omitted: 6697)
|
|
|
|
- _irc+insecure://[host][:port]_ listens with plain-text over TCP (default
|
|
|
|
port if omitted: 6667)
|
2023-01-20 14:51:09 +00:00
|
|
|
- _unix://<path>_ listens on a Unix domain socket
|
2020-04-23 20:25:43 +00:00
|
|
|
- _wss://[host][:port]_ listens for WebSocket connections over TLS (default
|
|
|
|
port: 443)
|
|
|
|
- _ws+insecure://[host][:port]_ listens for plain-text WebSocket
|
|
|
|
connections (default port: 80)
|
2020-08-11 09:03:20 +00:00
|
|
|
- _ident://[host][:port]_ listens for plain-text ident connections (default
|
|
|
|
port: 113)
|
2021-11-15 18:25:32 +00:00
|
|
|
- _http+prometheus://localhost:<port>_ listens for plain-text HTTP
|
|
|
|
connections and serves Prometheus metrics (host must be "localhost")
|
2021-11-17 15:15:27 +00:00
|
|
|
- _http+pprof://localhost:<port>_ listens for plain-text HTTP connections
|
|
|
|
and serves pprof runtime profiling data (host must be "localhost"). For
|
|
|
|
more information, see: <https://pkg.go.dev/net/http/pprof>.
|
2023-01-20 14:51:09 +00:00
|
|
|
- _unix+admin://[path]_ listens on a Unix domain socket for administrative
|
|
|
|
connections, such as sojuctl (default path: /run/soju/admin)
|
2020-06-04 18:10:17 +00:00
|
|
|
|
|
|
|
If the scheme is omitted, "ircs" is assumed. If multiple *listen*
|
|
|
|
directives are specified, soju will listen on each of them.
|
2020-03-19 13:16:39 +00:00
|
|
|
|
|
|
|
*hostname* <name>
|
|
|
|
Server hostname (default: system hostname).
|
|
|
|
|
2022-03-15 22:01:08 +00:00
|
|
|
This should be set to a fully qualified domain name.
|
|
|
|
|
2021-11-02 21:38:07 +00:00
|
|
|
*title* <title>
|
|
|
|
Server title. This will be sent as the _ISUPPORT NETWORK_ value when clients
|
|
|
|
don't select a specific network.
|
|
|
|
|
2020-03-19 13:16:39 +00:00
|
|
|
*tls* <cert> <key>
|
|
|
|
Enable TLS support. The certificate and the key files must be PEM-encoded.
|
|
|
|
|
2021-10-08 17:15:56 +00:00
|
|
|
*db* <driver> <source>
|
|
|
|
Set the database location for user, network and channel storage. By default,
|
|
|
|
a _sqlite3_ database is opened in "./soju.db".
|
|
|
|
|
|
|
|
Supported drivers:
|
|
|
|
|
|
|
|
- _sqlite3_ expects _source_ to be a path to the SQLite file
|
|
|
|
- _postgres_ expects _source_ to be a space-separated list of _key=value_
|
|
|
|
parameters, e.g. _db postgres "host=/run/postgresql dbname=soju"_. Note
|
|
|
|
that _sslmode_ defaults to _require_. For more information on connection
|
|
|
|
strings, see:
|
|
|
|
<https://pkg.go.dev/github.com/lib/pq#hdr-Connection_String_Parameters>.
|
2020-03-19 13:16:39 +00:00
|
|
|
|
2022-05-09 14:59:27 +00:00
|
|
|
*message-store* <driver> [source]
|
|
|
|
Set the database location for IRC messages. By default, an in-memory message
|
|
|
|
database is used.
|
|
|
|
|
|
|
|
Supported drivers:
|
|
|
|
|
2023-08-17 16:13:11 +00:00
|
|
|
- _memory_ stores messages in memory. For each channel/user, only the
|
|
|
|
latest 4K messages are kept in memory, older messages are discarded.
|
2022-05-09 14:59:27 +00:00
|
|
|
- _fs_ stores messages on disk, in the same format as ZNC. _source_ is
|
2023-08-17 16:13:11 +00:00
|
|
|
required and is the root directory path for the database. This on-disk
|
|
|
|
format is lossy: some IRCv3 messages (e.g. TAGMSG) and all message tags
|
|
|
|
are discarded.
|
|
|
|
- _db_ stores messages in the database. A full-text search index is used to
|
|
|
|
speed up search queries.
|
2020-03-25 22:51:28 +00:00
|
|
|
|
2022-05-09 14:41:41 +00:00
|
|
|
(_log_ is a deprecated alias for this directive.)
|
|
|
|
|
2020-04-23 20:25:43 +00:00
|
|
|
*http-origin* <patterns...>
|
|
|
|
List of allowed HTTP origins for WebSocket listeners. The parameters are
|
|
|
|
interpreted as shell patterns, see *glob*(7).
|
|
|
|
|
2021-06-11 08:26:22 +00:00
|
|
|
By default, only the request host is authorized. Use this directive to
|
|
|
|
enable cross-origin WebSockets.
|
|
|
|
|
2020-07-22 15:03:01 +00:00
|
|
|
*accept-proxy-ip* <cidr...>
|
|
|
|
Allow the specified IPs to act as a proxy. Proxys have the ability to
|
2021-10-07 18:04:20 +00:00
|
|
|
overwrite the remote and local connection addresses (via the PROXY protocol,
|
|
|
|
the Forwarded HTTP header field defined in RFC 7239 or the X-Forwarded-\*
|
2020-10-25 17:22:12 +00:00
|
|
|
HTTP header fields). The special name "localhost" accepts the loopback
|
2021-10-07 18:04:20 +00:00
|
|
|
addresses 127.0.0.0/8 and ::1/128.
|
|
|
|
|
|
|
|
By default, all IPs are rejected.
|
2020-07-22 15:03:01 +00:00
|
|
|
|
2021-10-07 18:43:10 +00:00
|
|
|
*max-user-networks* <limit>
|
|
|
|
Maximum number of networks per user. By default, there is no limit.
|
|
|
|
|
2021-10-13 08:58:34 +00:00
|
|
|
*motd* <path>
|
|
|
|
Path to the MOTD file. The bouncer MOTD is sent to clients which aren't
|
|
|
|
bound to a specific network. By default, no MOTD is sent.
|
|
|
|
|
2021-10-21 17:14:39 +00:00
|
|
|
*upstream-user-ip* <cidr...>
|
|
|
|
Enable per-user IP addresses. One IPv4 range and/or one IPv6 range can be
|
|
|
|
specified in CIDR notation. One IP address per range will be assigned to
|
|
|
|
each user and will be used as the source address when connecting to an
|
|
|
|
upstream network.
|
|
|
|
|
|
|
|
This can be useful to avoid having the whole bouncer banned from an upstream
|
|
|
|
network because of one malicious user.
|
|
|
|
|
2023-01-26 15:57:07 +00:00
|
|
|
*disable-inactive-user* <duration>
|
|
|
|
Disable inactive users after the specified duration.
|
|
|
|
|
|
|
|
A user is inactive when the last downstream connection is closed.
|
|
|
|
|
|
|
|
The duration is a positive decimal number followed by the unit "d" (days).
|
|
|
|
For instance, "30d" disables users 30 days after they last disconnect from
|
|
|
|
the bouncer.
|
|
|
|
|
2023-01-26 18:51:35 +00:00
|
|
|
*enable-user-on-auth* true|false
|
|
|
|
Enable users when they successfully authenticate.
|
|
|
|
|
|
|
|
This can be used together with _disable-inactive-user_ to seamlessly
|
|
|
|
disable and re-enable users during lengthy inactivity.
|
|
|
|
|
2023-01-26 19:28:59 +00:00
|
|
|
When external authentication is used (e.g. _auth oauth2_), bouncer users
|
|
|
|
are automatically created after successfull authentication.
|
|
|
|
|
2022-09-11 13:45:28 +00:00
|
|
|
*auth* <driver> ...
|
|
|
|
Set the authentication method. By default, internal authentication is used.
|
|
|
|
|
|
|
|
Supported drivers:
|
|
|
|
|
|
|
|
*auth internal*
|
|
|
|
Use internal authentication.
|
2022-09-11 13:46:27 +00:00
|
|
|
*auth oauth2* <url>
|
|
|
|
Use external OAuth 2.0 authentication. The authorization server URL must
|
|
|
|
be provided. The client ID and client secret can be provided as username
|
|
|
|
and password in the URL. The authorization server must support OAuth 2.0
|
|
|
|
Authorization Server Metadata (RFC 8414) and OAuth 2.0 Token
|
|
|
|
Introspection (RFC 7662).
|
2023-01-27 10:44:11 +00:00
|
|
|
*auth pam*
|
|
|
|
Use PAM authentication.
|
2022-09-11 13:45:28 +00:00
|
|
|
|
2020-03-19 13:16:39 +00:00
|
|
|
# IRC SERVICE
|
|
|
|
|
2020-03-25 19:58:07 +00:00
|
|
|
soju exposes an IRC service called *BouncerServ* to manage the bouncer.
|
|
|
|
Commands can be sent via regular private messages
|
|
|
|
(_/msg BouncerServ <command> [args...]_). Commands may be written in full or
|
|
|
|
abbreviated form, for instance *network* can be abbreviated as *net* or just
|
|
|
|
*n*.
|
2020-03-19 13:16:39 +00:00
|
|
|
|
2023-01-09 17:31:19 +00:00
|
|
|
Commands are parsed according the POSIX shell rules. In particular, words can
|
|
|
|
be quoted (via double or single quotes) and a backslash escapes the next
|
|
|
|
character.
|
|
|
|
|
2020-03-19 13:16:39 +00:00
|
|
|
*help* [command]
|
|
|
|
Show a list of commands. If _command_ is specified, show a help message for
|
|
|
|
the command.
|
|
|
|
|
2020-03-25 19:58:07 +00:00
|
|
|
*network create* *-addr* <addr> [options...]
|
2020-04-27 16:02:33 +00:00
|
|
|
Connect to a new network at _addr_. _-addr_ is mandatory.
|
|
|
|
|
|
|
|
_addr_ supports several connection types:
|
2020-06-04 18:10:17 +00:00
|
|
|
|
2020-07-06 15:31:11 +00:00
|
|
|
- _[ircs://]<host>[:port]_ connects with TLS over TCP
|
|
|
|
- _irc+insecure://<host>[:port]_ connects with plain-text TCP
|
2020-07-22 13:44:19 +00:00
|
|
|
- _irc+unix:///<path>_ connects to a Unix socket
|
2020-04-27 16:02:33 +00:00
|
|
|
|
2021-11-30 08:26:07 +00:00
|
|
|
For example, to connect to Libera Chat:
|
|
|
|
|
|
|
|
```
|
|
|
|
net create -addr irc.libera.chat
|
|
|
|
```
|
|
|
|
|
2020-04-27 16:02:33 +00:00
|
|
|
Other options are:
|
2020-03-19 13:16:39 +00:00
|
|
|
|
|
|
|
*-name* <name>
|
|
|
|
Short network name. This will be used instead of _addr_ to refer to the
|
|
|
|
network.
|
|
|
|
|
|
|
|
*-username* <username>
|
|
|
|
Connect with the specified username. By default, the nickname is used.
|
|
|
|
|
|
|
|
*-pass* <pass>
|
|
|
|
Connect with the specified server password.
|
|
|
|
|
|
|
|
*-realname* <realname>
|
2021-06-25 18:33:13 +00:00
|
|
|
Connect with the specified real name. By default, the account's realname
|
|
|
|
is used if set, otherwise the network's nickname is used.
|
2020-03-19 13:16:39 +00:00
|
|
|
|
2022-12-10 08:12:46 +00:00
|
|
|
*-certfp* <fingerprint>
|
|
|
|
Instead of using certificate authorities to check the server's TLS
|
|
|
|
certificate, check whether the server certificate matches the provided
|
|
|
|
fingerprint. This can be used to connect to servers using self-signed
|
2023-08-09 16:04:30 +00:00
|
|
|
certificates. The fingerprint format is SHA512. An empty string
|
|
|
|
removes any previous fingerprint.
|
2022-12-10 08:12:46 +00:00
|
|
|
|
2020-03-19 13:16:39 +00:00
|
|
|
*-nick* <nickname>
|
|
|
|
Connect with the specified nickname. By default, the account's username
|
|
|
|
is used.
|
|
|
|
|
2022-09-26 17:49:26 +00:00
|
|
|
*-auto-away* true|false
|
|
|
|
Enable or disable the auto-away feature. If the feature is enabled, the
|
|
|
|
user will be marked as away when all clients are disconnected from the
|
|
|
|
bouncer. By default, auto-away is enabled.
|
|
|
|
|
2021-05-26 08:49:52 +00:00
|
|
|
*-enabled* true|false
|
|
|
|
Enable or disable the network. If the network is disabled, the bouncer
|
|
|
|
won't connect to it. By default, the network is enabled.
|
|
|
|
|
2021-05-22 08:40:36 +00:00
|
|
|
*-connect-command* <command>
|
2022-11-28 11:27:56 +00:00
|
|
|
Send the specified quoted string as a raw IRC command right after
|
|
|
|
connecting to the server. This can be used to identify to an account
|
|
|
|
when the server doesn't support SASL.
|
2021-05-22 08:40:36 +00:00
|
|
|
|
|
|
|
For instance, to identify with _NickServ_, the following command can be
|
|
|
|
used:
|
|
|
|
|
|
|
|
```
|
2022-11-28 11:27:56 +00:00
|
|
|
"PRIVMSG NickServ :IDENTIFY <password>"
|
2021-05-22 08:40:36 +00:00
|
|
|
```
|
|
|
|
|
|
|
|
The flag can be specified multiple times to send multiple IRC messages.
|
|
|
|
To clear all commands, set it to the empty string.
|
|
|
|
|
2022-02-07 20:33:16 +00:00
|
|
|
*network update* [name] [options...]
|
2020-07-22 10:04:26 +00:00
|
|
|
Update an existing network. The options are the same as the
|
|
|
|
_network create_ command.
|
|
|
|
|
|
|
|
When this command is executed, soju will disconnect and re-connect to the
|
|
|
|
network.
|
|
|
|
|
2022-02-07 20:33:16 +00:00
|
|
|
If _name_ is not specified, the current network is updated.
|
|
|
|
|
|
|
|
*network delete* [name]
|
2020-06-06 23:30:27 +00:00
|
|
|
Disconnect and delete a network.
|
|
|
|
|
2022-02-07 20:33:16 +00:00
|
|
|
If _name_ is not specified, the current network is deleted.
|
|
|
|
|
|
|
|
*network quote* [name] <command>
|
2021-07-06 22:44:15 +00:00
|
|
|
Send a raw IRC line as-is to a network.
|
|
|
|
|
2022-02-07 20:33:16 +00:00
|
|
|
If _name_ is not specified, the command is sent to the current network.
|
|
|
|
|
2020-06-06 23:30:27 +00:00
|
|
|
*network status*
|
|
|
|
Show a list of saved networks and their current status.
|
|
|
|
|
2021-05-25 17:22:22 +00:00
|
|
|
*channel status* [options...]
|
|
|
|
Show a list of saved channels and their current status.
|
|
|
|
|
|
|
|
Options:
|
|
|
|
|
|
|
|
*-network* <name>
|
|
|
|
Only show channels for the specified network. By default, only the
|
|
|
|
channels in the current network are displayed.
|
|
|
|
|
2020-11-30 21:16:44 +00:00
|
|
|
*channel update* <name> [options...]
|
|
|
|
Update the options of an existing channel.
|
|
|
|
|
|
|
|
Options are:
|
|
|
|
|
2022-06-24 18:41:13 +00:00
|
|
|
*-detached* true|false
|
|
|
|
Attach or detach this channel.
|
|
|
|
|
|
|
|
A detached channel is joined but is hidden by the bouncer. This is
|
|
|
|
useful to e.g. collect logs and highlights in low-interest or
|
|
|
|
high-traffic channels.
|
|
|
|
|
2020-11-30 21:16:44 +00:00
|
|
|
*-relay-detached* <mode>
|
|
|
|
Set when to relay messages from detached channels to the user with a BouncerServ NOTICE.
|
|
|
|
|
|
|
|
Modes are:
|
|
|
|
|
|
|
|
*message*
|
|
|
|
Relay any message from this channel when detached.
|
|
|
|
|
|
|
|
*highlight*
|
|
|
|
Relay only messages mentioning you when detached.
|
|
|
|
|
|
|
|
*none*
|
|
|
|
Don't relay any messages from this channel when detached.
|
|
|
|
|
|
|
|
*default*
|
|
|
|
Currently same as *highlight*. This is the default behaviour.
|
|
|
|
|
|
|
|
*-reattach-on* <mode>
|
|
|
|
Set when to automatically reattach to detached channels.
|
|
|
|
|
|
|
|
Modes are:
|
|
|
|
|
|
|
|
*message*
|
|
|
|
Reattach to this channel when any message is received.
|
|
|
|
|
|
|
|
*highlight*
|
|
|
|
Reattach to this channel when any message mentioning you is received.
|
|
|
|
|
|
|
|
*none*
|
|
|
|
Never automatically reattach to this channel.
|
|
|
|
|
|
|
|
*default*
|
|
|
|
Currently same as *none*. This is the default behaviour.
|
|
|
|
|
|
|
|
*-detach-after* <duration>
|
|
|
|
Automatically detach this channel after the specified duration has elapsed without receving any message corresponding to *-detach-on*.
|
|
|
|
|
|
|
|
Example duration values: *1h30m*, *30s*, *2.5h*.
|
|
|
|
|
|
|
|
Setting this value to 0 will disable this behaviour, i.e. this channel will never be automatically detached. This is the default behaviour.
|
|
|
|
|
|
|
|
*-detach-on* <mode>
|
|
|
|
Set when to reset the auto-detach timer used by *-detach-after*, causing it to wait again for the auto-detach duration timer before detaching.
|
|
|
|
Joining, reattaching, sending a message, or changing any channel option will reset the timer, in addition to the messages specified by the mode.
|
|
|
|
|
|
|
|
Modes are:
|
|
|
|
|
|
|
|
*message*
|
|
|
|
Receiving any message from this channel will reset the auto-detach timer.
|
|
|
|
|
|
|
|
*highlight*
|
|
|
|
Receiving any message mentioning you from this channel will reset the auto-detach timer.
|
|
|
|
|
|
|
|
*none*
|
|
|
|
Receiving messages from this channel will not reset the auto-detach timer. Sending messages or joining the channel will still reset the timer.
|
|
|
|
|
|
|
|
*default*
|
|
|
|
Currently same as *message*. This is the default behaviour.
|
|
|
|
|
2022-12-08 15:00:00 +00:00
|
|
|
*channel delete* <name>
|
|
|
|
Leave and forget a channel.
|
|
|
|
|
2022-02-04 15:47:34 +00:00
|
|
|
*certfp generate* [options...]
|
2020-07-22 10:51:32 +00:00
|
|
|
Generate self-signed certificate and use it for authentication (via SASL
|
|
|
|
EXTERNAL).
|
2020-05-29 11:10:54 +00:00
|
|
|
|
2021-10-12 19:34:25 +00:00
|
|
|
Generates a 3072-bit RSA private key by default.
|
2020-05-29 11:10:54 +00:00
|
|
|
|
|
|
|
Options are:
|
|
|
|
|
2022-02-04 15:47:34 +00:00
|
|
|
*-network* <name>
|
|
|
|
Select a network. By default, the current network is selected, if any.
|
|
|
|
|
2020-05-29 11:10:54 +00:00
|
|
|
*-key-type* <type>
|
2021-10-12 19:34:25 +00:00
|
|
|
Private key algorithm to use. Valid values are: _rsa_, _ecdsa_ and
|
|
|
|
_ed25519_. _ecdsa_ uses the NIST P-521 curve.
|
2020-05-29 11:10:54 +00:00
|
|
|
|
|
|
|
*-bits* <bits>
|
|
|
|
Size of RSA key to generate. Ignored for other key types.
|
|
|
|
|
2022-02-04 15:47:34 +00:00
|
|
|
*certfp fingerprint* [options...]
|
2020-05-29 11:10:54 +00:00
|
|
|
Show SHA-1 and SHA-256 fingerprints for the certificate
|
|
|
|
currently used with the network.
|
|
|
|
|
2022-02-04 15:47:34 +00:00
|
|
|
Options are:
|
|
|
|
|
|
|
|
*-network* <name>
|
|
|
|
Select a network. By default, the current network is selected, if any.
|
|
|
|
|
|
|
|
*sasl status* [options...]
|
2021-12-01 10:03:27 +00:00
|
|
|
Show current SASL status.
|
|
|
|
|
2022-02-04 15:47:34 +00:00
|
|
|
Options are:
|
|
|
|
|
|
|
|
*-network* <name>
|
|
|
|
Select a network. By default, the current network is selected, if any.
|
|
|
|
|
|
|
|
*sasl set-plain* [options...] <username> <password>
|
2020-07-22 10:16:13 +00:00
|
|
|
Set SASL PLAIN credentials.
|
|
|
|
|
2022-02-04 15:47:34 +00:00
|
|
|
Options are:
|
|
|
|
|
|
|
|
*-network* <name>
|
|
|
|
Select a network. By default, the current network is selected, if any.
|
|
|
|
|
|
|
|
*sasl reset* [options...]
|
2020-07-22 10:20:52 +00:00
|
|
|
Disable SASL authentication and remove stored credentials.
|
|
|
|
|
2022-02-04 15:47:34 +00:00
|
|
|
Options are:
|
|
|
|
|
|
|
|
*-network* <name>
|
|
|
|
Select a network. By default, the current network is selected, if any.
|
|
|
|
|
2023-01-17 13:25:37 +00:00
|
|
|
*user status*
|
|
|
|
Show a list of users on this server. Only admins can query this information.
|
|
|
|
|
2021-06-25 18:33:13 +00:00
|
|
|
*user create* -username <username> -password <password> [options...]
|
2020-06-09 19:04:50 +00:00
|
|
|
Create a new soju user. Only admin users can create new accounts.
|
2021-06-28 14:55:49 +00:00
|
|
|
The _-username_ and _-password_ flags are mandatory.
|
2020-06-06 23:30:27 +00:00
|
|
|
|
2021-10-12 19:31:12 +00:00
|
|
|
Options are:
|
|
|
|
|
|
|
|
*-username* <username>
|
|
|
|
The bouncer username. This cannot be changed after the user has been
|
|
|
|
created.
|
|
|
|
|
|
|
|
*-password* <password>
|
|
|
|
The bouncer password.
|
2021-06-25 18:33:13 +00:00
|
|
|
|
2023-01-26 19:03:37 +00:00
|
|
|
*-disable-password*
|
|
|
|
Disable password authentication. The user will be unable to login.
|
|
|
|
|
2021-10-12 07:11:14 +00:00
|
|
|
*-admin* true|false
|
2021-06-25 18:33:13 +00:00
|
|
|
Make the new user an administrator.
|
|
|
|
|
2022-07-08 16:01:05 +00:00
|
|
|
*-nick* <nick>
|
|
|
|
Set the user's nickname. This is used as a fallback if there is no
|
|
|
|
nickname set for a network.
|
|
|
|
|
2021-06-25 18:33:13 +00:00
|
|
|
*-realname* <realname>
|
|
|
|
Set the user's realname. This is used as a fallback if there is no
|
|
|
|
realname set for a network.
|
|
|
|
|
2023-01-26 17:33:55 +00:00
|
|
|
*-enabled* true|false
|
|
|
|
Enable or disable the user. If the user is disabled, the bouncer will
|
|
|
|
not connect to any of their networks, and downstream connections will
|
|
|
|
be immediately closed. By default, users are enabled.
|
|
|
|
|
2021-10-12 07:11:14 +00:00
|
|
|
*user update* [username] [options...]
|
|
|
|
Update a user. The options are the same as the _user create_ command.
|
|
|
|
|
|
|
|
If _username_ is omitted, the current user is updated. Only admins can
|
|
|
|
update other users.
|
|
|
|
|
|
|
|
Not all flags are valid in all contexts:
|
|
|
|
|
|
|
|
- The _-username_ flag is never valid, usernames are immutable.
|
2022-07-08 16:01:05 +00:00
|
|
|
- The _-nick_ and _-realname_ flag are only valid when updating the current
|
|
|
|
user.
|
2023-01-26 17:33:55 +00:00
|
|
|
- The _-admin_ and _-enabled_ flags are only valid when updating another
|
|
|
|
user.
|
2021-06-25 18:33:13 +00:00
|
|
|
|
2022-06-24 21:22:01 +00:00
|
|
|
*user delete* <username> [confirmation token]
|
|
|
|
Delete a soju user.
|
|
|
|
|
|
|
|
Only admins can delete other users.
|
2021-05-22 08:44:36 +00:00
|
|
|
|
2023-01-18 15:04:54 +00:00
|
|
|
*user run* <username> <command...>
|
|
|
|
Execute a command as another user.
|
|
|
|
|
|
|
|
Only admins can use this command.
|
|
|
|
|
2021-10-05 17:12:25 +00:00
|
|
|
*server status*
|
|
|
|
Show some bouncer statistics. Only admins can query this information.
|
|
|
|
|
2021-10-08 08:52:03 +00:00
|
|
|
*server notice* <message>
|
|
|
|
Broadcast a notice. All currently connected bouncer users will receive the
|
|
|
|
message from the special _BouncerServ_ service. Only admins can broadcast a
|
|
|
|
notice.
|
|
|
|
|
2020-03-19 13:16:39 +00:00
|
|
|
# AUTHORS
|
|
|
|
|
|
|
|
Maintained by Simon Ser <contact@emersion.fr>, who is assisted by other
|
2020-03-19 13:18:31 +00:00
|
|
|
open-source contributors. For more information about soju development, see
|
2021-10-12 19:27:48 +00:00
|
|
|
<https://sr.ht/~emersion/soju>.
|
2023-03-15 16:46:52 +00:00
|
|
|
|
|
|
|
# SEE ALSO
|
|
|
|
|
|
|
|
*sojuctl*(1)
|