69 Commits

Author SHA1 Message Date
contact
467c6df654 Add pprof HTTP server
This enables production debugging of the bouncer.

Closes: https://todo.sr.ht/~emersion/soju/155

git-svn-id: file:///srv/svn/repo/suika/trunk@713 f0ae65fe-ee39-954e-97ec-027ff2717ef4
2021-11-17 15:18:52 +00:00
contact
7eaaf2b78f Add basic Prometheus metrics exporter
This only exports the default metrics for now.

References: https://todo.sr.ht/~emersion/soju/142

git-svn-id: file:///srv/svn/repo/suika/trunk@707 f0ae65fe-ee39-954e-97ec-027ff2717ef4
2021-11-17 14:58:18 +00:00
contact
5161f92e29 Add per-user IP addresses
The new upstream-user-ip directive allows bouncer operators to
assign one IP address per user.

git-svn-id: file:///srv/svn/repo/suika/trunk@705 f0ae65fe-ee39-954e-97ec-027ff2717ef4
2021-11-17 14:07:58 +00:00
contact
d473fb1a5d Add config option to globally disable multi-upstream mode
Closes: https://todo.sr.ht/~emersion/soju/122

git-svn-id: file:///srv/svn/repo/suika/trunk@694 f0ae65fe-ee39-954e-97ec-027ff2717ef4
2021-11-17 10:41:11 +00:00
contact
8f1a6e4432 Allow most config options to be reloaded
Closes: https://todo.sr.ht/~emersion/soju/42

git-svn-id: file:///srv/svn/repo/suika/trunk@691 f0ae65fe-ee39-954e-97ec-027ff2717ef4
2021-11-15 23:38:04 +00:00
contact
427638fa0d Add title config option
Closes: https://todo.sr.ht/~emersion/soju/146

git-svn-id: file:///srv/svn/repo/suika/trunk@662 f0ae65fe-ee39-954e-97ec-027ff2717ef4
2021-11-02 21:38:07 +00:00
contact
afd52fc4c3 Add bouncer MOTD
Closes: https://todo.sr.ht/~emersion/soju/137

git-svn-id: file:///srv/svn/repo/suika/trunk@636 f0ae65fe-ee39-954e-97ec-027ff2717ef4
2021-10-13 08:58:34 +00:00
contact
66229dd5e8 doc.soju.1: fix typo and improve formatting for "certfp generate"
git-svn-id: file:///srv/svn/repo/suika/trunk@632 f0ae65fe-ee39-954e-97ec-027ff2717ef4
2021-10-12 19:34:25 +00:00
contact
7cce9c4a31 doc/soju.1: add descriptions for all flags for "user create"
git-svn-id: file:///srv/svn/repo/suika/trunk@631 f0ae65fe-ee39-954e-97ec-027ff2717ef4
2021-10-12 19:31:12 +00:00
contact
18b7972e80 doc/soju.1: use angle-brackets for URL
Helps a bit terminal emulators to recognize the link.

git-svn-id: file:///srv/svn/repo/suika/trunk@630 f0ae65fe-ee39-954e-97ec-027ff2717ef4
2021-10-12 19:27:48 +00:00
contact
c0502705d1 service: allow updating other users
git-svn-id: file:///srv/svn/repo/suika/trunk@625 f0ae65fe-ee39-954e-97ec-027ff2717ef4
2021-10-12 07:11:14 +00:00
hubert
bbe15df672 PostgreSQL support
git-svn-id: file:///srv/svn/repo/suika/trunk@620 f0ae65fe-ee39-954e-97ec-027ff2717ef4
2021-10-11 13:21:04 +00:00
contact
1004b91f55 Add "server notice" command
git-svn-id: file:///srv/svn/repo/suika/trunk@615 f0ae65fe-ee39-954e-97ec-027ff2717ef4
2021-10-08 08:52:03 +00:00
contact
8dda53c683 Add max-user-networks config option
git-svn-id: file:///srv/svn/repo/suika/trunk@612 f0ae65fe-ee39-954e-97ec-027ff2717ef4
2021-10-07 18:43:10 +00:00
contact
3547bb7749 doc/soju.1: mention that accept-proxy-ip affects PROXY proto
git-svn-id: file:///srv/svn/repo/suika/trunk@611 f0ae65fe-ee39-954e-97ec-027ff2717ef4
2021-10-07 18:04:20 +00:00
contact
ae7aef71b3 Add "server status" command
Right now, it prints the number of active users and number of
downstream connections.

git-svn-id: file:///srv/svn/repo/suika/trunk@605 f0ae65fe-ee39-954e-97ec-027ff2717ef4
2021-10-05 17:13:53 +00:00
delthas
f4e57fd264 service: Introduce network quote
This command enables sending a raw line to a specific network.

git-svn-id: file:///srv/svn/repo/suika/trunk@577 f0ae65fe-ee39-954e-97ec-027ff2717ef4
2021-07-07 08:34:46 +00:00
contact
3a1ac8372b doc/soju.1: improve "user create" docs
git-svn-id: file:///srv/svn/repo/suika/trunk@571 f0ae65fe-ee39-954e-97ec-027ff2717ef4
2021-06-28 14:55:49 +00:00
contact
7bb23b2164 Merge "change-password" into "user update"
Add a -password flag to the "user update" command.

git-svn-id: file:///srv/svn/repo/suika/trunk@570 f0ae65fe-ee39-954e-97ec-027ff2717ef4
2021-06-28 14:55:44 +00:00
contact
474d6e3ccd 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.

git-svn-id: file:///srv/svn/repo/suika/trunk@568 f0ae65fe-ee39-954e-97ec-027ff2717ef4
2021-06-25 18:33:13 +00:00
contact
84e9f30865 doc/soju.1: document bouncer-wide broadcasts
git-svn-id: file:///srv/svn/repo/suika/trunk@564 f0ae65fe-ee39-954e-97ec-027ff2717ef4
2021-06-23 17:30:47 +00:00
contact
8a7264f55f doc/soju.1: explain http-origin defaults
git-svn-id: file:///srv/svn/repo/suika/trunk@556 f0ae65fe-ee39-954e-97ec-027ff2717ef4
2021-06-11 08:26:22 +00:00
contact
73e8ea27b7 doc/ext/bouncer-networks: fix typo
git-svn-id: file:///srv/svn/repo/suika/trunk@548 f0ae65fe-ee39-954e-97ec-027ff2717ef4
2021-05-29 11:18:06 +00:00
contact
30c6e9e954 Allow networks to be disabled
git-svn-id: file:///srv/svn/repo/suika/trunk@542 f0ae65fe-ee39-954e-97ec-027ff2717ef4
2021-05-26 08:51:02 +00:00
contact
52add75a86 doc/getting-started: s/Freenode/Libera Chat/
git-svn-id: file:///srv/svn/repo/suika/trunk@541 f0ae65fe-ee39-954e-97ec-027ff2717ef4
2021-05-26 06:39:06 +00:00
contact
6de426954b Add channel status service command
git-svn-id: file:///srv/svn/repo/suika/trunk@539 f0ae65fe-ee39-954e-97ec-027ff2717ef4
2021-05-25 17:22:22 +00:00
contact
ac62ccdfbc Vendor BATCH bouncer-networks type
And add the prefix throughout the spec, to make it clear the unprefixed
version is not to be used.

git-svn-id: file:///srv/svn/repo/suika/trunk@537 f0ae65fe-ee39-954e-97ec-027ff2717ef4
2021-05-25 14:56:38 +00:00
contact
b736ba981b Introduce the soju.im/bouncer-networks-notify capability
git-svn-id: file:///srv/svn/repo/suika/trunk@535 f0ae65fe-ee39-954e-97ec-027ff2717ef4
2021-05-25 14:42:51 +00:00
contact
66c64aa42f Add pass to bouncer network attributes
git-svn-id: file:///srv/svn/repo/suika/trunk@533 f0ae65fe-ee39-954e-97ec-027ff2717ef4
2021-05-25 14:42:51 +00:00
contact
f00821626a Implement the soju.im/bouncer-networks extension
git-svn-id: file:///srv/svn/repo/suika/trunk@532 f0ae65fe-ee39-954e-97ec-027ff2717ef4
2021-05-25 14:42:51 +00:00
contact
acbb420d9c doc/soju.1: document user delete command
git-svn-id: file:///srv/svn/repo/suika/trunk@525 f0ae65fe-ee39-954e-97ec-027ff2717ef4
2021-05-22 08:44:36 +00:00
contact
7225f0f5e9 doc/soju.1: document -connect-command
git-svn-id: file:///srv/svn/repo/suika/trunk@524 f0ae65fe-ee39-954e-97ec-027ff2717ef4
2021-05-22 08:40:36 +00:00
contact
54f3d31823 readme: move quickstart to dedicated doc page
git-svn-id: file:///srv/svn/repo/suika/trunk@522 f0ae65fe-ee39-954e-97ec-027ff2717ef4
2021-05-21 22:01:06 +00:00
contact
7bfba6f771 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.

git-svn-id: file:///srv/svn/repo/suika/trunk@507 f0ae65fe-ee39-954e-97ec-027ff2717ef4
2021-04-21 16:15:04 +00:00
contact
04d4691eda cmd/soju: allow specifying -listen multiple times
Closes: https://todo.sr.ht/~emersion/soju/67

git-svn-id: file:///srv/svn/repo/suika/trunk@491 f0ae65fe-ee39-954e-97ec-027ff2717ef4
2021-03-31 17:02:40 +00:00
contact
81f1effe62 Reload TLS certs on SIGHUP
References: https://todo.sr.ht/~emersion/soju/42

git-svn-id: file:///srv/svn/repo/suika/trunk@475 f0ae65fe-ee39-954e-97ec-027ff2717ef4
2021-03-18 13:07:03 +00:00
contact
8ad8706f79 Add Unix socket listener
Closes: https://todo.sr.ht/~emersion/soju/51

git-svn-id: file:///srv/svn/repo/suika/trunk@466 f0ae65fe-ee39-954e-97ec-027ff2717ef4
2021-03-16 08:27:40 +00:00
delthas
5843897b92 service: Introduce channel update
This adds the `channel update` service command, which is used to set the
auto-detach, auto-reattach, and message relaying settings of a channel.

Of note is that currently the parser parses `#` as a comment, which
means any `channel update #foo ...` will actually need to be escaped to
`channel update "#foo" ...`

git-svn-id: file:///srv/svn/repo/suika/trunk@436 f0ae65fe-ee39-954e-97ec-027ff2717ef4
2020-12-14 19:54:02 +00:00
contact
55806cb0b0 Don't accept any IP as a proxy by default
It's too easy to setup a reverse proxy which doesn't support the PROXY
protocol, or lets the X-Forwarded-For header fields pass through.
Disable this by default.

To restore the previous behaviour, add `accept-proxy-ip localhost` to
the config file.

git-svn-id: file:///srv/svn/repo/suika/trunk@426 f0ae65fe-ee39-954e-97ec-027ff2717ef4
2020-10-25 17:22:12 +00:00
contact
4b7854b268 doc: add ident server to man page
git-svn-id: file:///srv/svn/repo/suika/trunk@386 f0ae65fe-ee39-954e-97ec-027ff2717ef4
2020-08-11 09:03:20 +00:00
admin
58f185b9a2 doc: fix typo in man page
git-svn-id: file:///srv/svn/repo/suika/trunk@372 f0ae65fe-ee39-954e-97ec-027ff2717ef4
2020-07-23 21:31:37 +00:00
contact
1e0e265c48 Add accept-proxy-ip config directive
This allows to set the list of IPs allowed to act as a proxy. This is
only used for WebSockets right now, but will be expanded to TCP as well
once the PROXY protocol is supported.

git-svn-id: file:///srv/svn/repo/suika/trunk@370 f0ae65fe-ee39-954e-97ec-027ff2717ef4
2020-07-22 15:03:01 +00:00
contact
2ebc03a712 Change unix:// to irc+unix://
When Unix socket support will be added for listeners, unix:// will be
ambiguous. It won't be clear whether to setup an IRC server, or some
other kind of server (e.g. identd).

unix:// is still recognized to avoid breaking existing DBs.

git-svn-id: file:///srv/svn/repo/suika/trunk@369 f0ae65fe-ee39-954e-97ec-027ff2717ef4
2020-07-22 13:44:19 +00:00
contact
06cc81a33e doc: add example config file in man page
git-svn-id: file:///srv/svn/repo/suika/trunk@368 f0ae65fe-ee39-954e-97ec-027ff2717ef4
2020-07-22 13:43:22 +00:00
contact
8dddba2c84 doc: mention SASL EXTERNAL in the CertFP docs
git-svn-id: file:///srv/svn/repo/suika/trunk@365 f0ae65fe-ee39-954e-97ec-027ff2717ef4
2020-07-22 10:51:32 +00:00
contact
e0210a0ced Rename certfp reset to sasl reset
And make it reset all SASL credentials.

git-svn-id: file:///srv/svn/repo/suika/trunk@364 f0ae65fe-ee39-954e-97ec-027ff2717ef4
2020-07-22 10:20:52 +00:00
contact
869942603b Add a sasl set-plain command
This allows to manually set the SASL credentials for a network.

git-svn-id: file:///srv/svn/repo/suika/trunk@363 f0ae65fe-ee39-954e-97ec-027ff2717ef4
2020-07-22 10:16:13 +00:00
contact
3c2981df11 doc: document the network update command
git-svn-id: file:///srv/svn/repo/suika/trunk@361 f0ae65fe-ee39-954e-97ec-027ff2717ef4
2020-07-22 10:04:26 +00:00
contact
e55e59080e Add support for upstream Unix socket connections
References: https://todo.sr.ht/~emersion/soju/51

git-svn-id: file:///srv/svn/repo/suika/trunk@353 f0ae65fe-ee39-954e-97ec-027ff2717ef4
2020-07-06 15:31:11 +00:00
kl
8851fa97a9 docs: Fix manpage syntax
git-svn-id: file:///srv/svn/repo/suika/trunk@331 f0ae65fe-ee39-954e-97ec-027ff2717ef4
2020-06-10 14:10:17 +00:00