Simon Ser
18bb3e6138
doc: split off multi-upstream documentation
...
Multi-upstream mode is confusing for new users. Let's explain how
it works in a separate file.
2022-03-24 19:16:43 +01:00
Simon Ser
43371bf347
Add the soju.im/no-implicit-names extension
...
References: https://github.com/ircv3/ircv3-ideas/issues/87
2022-03-22 21:03:20 +01:00
Simon Ser
86f08ec35d
doc/soju.1: fix syntax error
2022-03-21 16:11:11 +01:00
delthas
2ac9bd9c94
Require an explicit *
network suffix for multi-upstream
...
Most users will connect to their server with `<username>` as their
username in order to configure their upstreams.
Multi-upstream can be unintuitive to them and should not be enabled on
that first connection that is usually used for upstream configuration.
Multi-upstream is instead a power-user feature that should be explicitly
enabled with a specific network suffix.
We reserve the network suffix `*` and use it a special case to mean that
it requests multi-upstream mode.
2022-03-21 09:56:20 +01:00
Simon Ser
5feae506d4
doc/soju.1: recommend using a FQDN for the hostname
2022-03-15 23:01:08 +01:00
Simon Ser
e5ec93179c
doc/ext: add README
...
All authors have acknowledged the dual license.
The second license is the same as the one used by the IRCv3 working
group.
2022-03-04 10:36:41 +01:00
Simon Ser
7e20c27332
doc: move read spec to ext/
2022-02-11 19:49:21 +01:00
delthas
cae248f672
Add support for the wip soju.im/read capability and READ command
...
READ lets downstream clients share information between each other about
what messages have been read by other downstreams.
Each target/entity has an optional corresponding read receipt, which is
stored as a timestamp.
- When a downstream sends:
READ #chan timestamp=2020-01-01T01:23:45.000Z
the read receipt for that target is set to that date
- soju sends READ to downstreams:
- on JOIN, if the client uses the soju.im/read capability
- when the read receipt timestamp is set by any downstream
The read receipt date is clamped by the previous receipt date and the
current time.
2022-02-11 19:41:46 +01:00
Simon Ser
3f91cfb8c3
service: make name arg optional for network commands
...
Makes commands less verbose.
2022-02-07 21:33:16 +01:00
Simon Ser
57715d8ce2
service: switch to -network flag for certfp and sasl commands
...
Instead of always requiring users to explicitly specify the network
name, guess it from the downstream connection.
Network commands are left as-is because it's not yet clear how to
handle them.
2022-02-04 16:47:34 +01:00
Simon Ser
43c440e600
Add "sasl status" command
2021-12-01 11:03:27 +01:00
Simon Ser
e42b507377
doc/soju.1: add network create
example
2021-11-30 09:26:07 +01:00
Simon Ser
98af48d254
doc/per-user-ip: new documentation article
2021-11-17 18:04:14 +01:00
Simon Ser
d722f56000
Add pprof HTTP server
...
This enables production debugging of the bouncer.
Closes: https://todo.sr.ht/~emersion/soju/155
2021-11-17 16:18:52 +01:00
Simon Ser
8f8d7aab0e
Add basic Prometheus metrics exporter
...
This only exports the default metrics for now.
References: https://todo.sr.ht/~emersion/soju/142
2021-11-17 15:58:18 +01:00
Simon Ser
55840312b4
Add per-user IP addresses
...
The new upstream-user-ip directive allows bouncer operators to
assign one IP address per user.
2021-11-17 15:07:58 +01:00
Simon Ser
3941f67380
Add config option to globally disable multi-upstream mode
...
Closes: https://todo.sr.ht/~emersion/soju/122
2021-11-17 11:41:11 +01:00
Simon Ser
73295e4fa7
Allow most config options to be reloaded
...
Closes: https://todo.sr.ht/~emersion/soju/42
2021-11-16 00:38:04 +01:00
Simon Ser
07c962018d
Add title config option
...
Closes: https://todo.sr.ht/~emersion/soju/146
2021-11-02 22:38:07 +01:00
Simon Ser
a9a066faac
Add bouncer MOTD
...
Closes: https://todo.sr.ht/~emersion/soju/137
2021-10-13 10:58:34 +02:00
Simon Ser
c8aba6286f
doc.soju.1: fix typo and improve formatting for "certfp generate"
2021-10-12 21:34:25 +02:00
Simon Ser
8ef2de196d
doc/soju.1: add descriptions for all flags for "user create"
2021-10-12 21:31:12 +02:00
Simon Ser
96f8751e3d
doc/soju.1: use angle-brackets for URL
...
Helps a bit terminal emulators to recognize the link.
2021-10-12 21:27:48 +02:00
Simon Ser
4e9ddf78ab
service: allow updating other users
2021-10-12 09:11:14 +02:00
Hubert Hirtz
6e06663615
PostgreSQL support
2021-10-11 15:21:04 +02:00
Simon Ser
5a2d6246ec
Add "server notice" command
2021-10-08 10:52:03 +02:00
Simon Ser
94dbfff11d
Add max-user-networks config option
2021-10-07 20:43:10 +02:00
Simon Ser
9f021ba9a9
doc/soju.1: mention that accept-proxy-ip affects PROXY proto
2021-10-07 20:04:20 +02:00
Simon Ser
f93616fb41
Add "server status" command
...
Right now, it prints the number of active users and number of
downstream connections.
2021-10-05 19:13:53 +02:00
delthas
896caebfcf
service: Introduce network quote
...
This command enables sending a raw line to a specific network.
2021-07-07 10:34:46 +02:00
Simon Ser
00538e7028
doc/soju.1: improve "user create" docs
2021-06-28 16:55:49 +02:00
Simon Ser
09b04792b9
Merge "change-password" into "user update"
...
Add a -password flag to the "user update" command.
2021-06-28 16:55:44 +02:00
Simon Ser
a14f646135
Add per-user realname setting
...
This allows users to set a default realname used if the per-network
realname isn't set.
A new "user update" command is introduced and can be extended to edit
other user properties and other users in the future.
2021-06-25 20:33:13 +02:00
Simon Ser
089608409e
doc/soju.1: document bouncer-wide broadcasts
2021-06-23 19:30:47 +02:00
Simon Ser
520ed76adf
doc/soju.1: explain http-origin defaults
2021-06-11 10:26:22 +02:00
Simon Ser
95ae92860f
doc/ext/bouncer-networks: fix typo
2021-05-29 13:18:06 +02:00
Simon Ser
7d648f702e
Allow networks to be disabled
2021-05-26 10:51:02 +02:00
Simon Ser
d9a40addf7
doc/getting-started: s/Freenode/Libera Chat/
2021-05-26 08:39:06 +02:00
Simon Ser
1b43b05588
Add channel status service command
2021-05-25 19:22:22 +02:00
Simon Ser
4cf9804e89
Vendor BATCH bouncer-networks type
...
And add the prefix throughout the spec, to make it clear the unprefixed
version is not to be used.
2021-05-25 16:56:38 +02:00
Simon Ser
31f2d28508
Introduce the soju.im/bouncer-networks-notify capability
2021-05-25 16:42:51 +02:00
Simon Ser
60c566e721
Add pass to bouncer network attributes
2021-05-25 16:42:51 +02:00
Simon Ser
db0f745193
Implement the soju.im/bouncer-networks extension
2021-05-25 16:42:51 +02:00
Simon Ser
697bdd32dd
doc/soju.1: document user delete command
2021-05-22 10:44:36 +02:00
Simon Ser
95b9493310
doc/soju.1: document -connect-command
2021-05-22 10:40:36 +02:00
Simon Ser
53e876eba5
readme: move quickstart to dedicated doc page
2021-05-22 00:01:06 +02:00
Simon Ser
706b6e33fb
Make db and log config options more future-proof
...
Rename the "sql" directive to "db". Rename the "log" directive to
"log fs".
In the future, we'll maybe support more databases and more message
stores. Make it so it's easy to integrate these new festures to the
config file format.
2021-04-21 18:15:04 +02:00
Simon Ser
c375c7d922
cmd/soju: allow specifying -listen multiple times
...
Closes: https://todo.sr.ht/~emersion/soju/67
2021-03-31 19:02:40 +02:00
Simon Ser
21e9fe9b3c
Reload TLS certs on SIGHUP
...
References: https://todo.sr.ht/~emersion/soju/42
2021-03-18 14:07:03 +01:00
Simon Ser
061347f9f9
Add Unix socket listener
...
Closes: https://todo.sr.ht/~emersion/soju/51
2021-03-16 09:27:40 +01:00