feat: SIGHUP hot reload for headless config updates

Add signal handler that calls rehash() on SIGHUP, logging results
instead of sending to a client. Useful for systemd and container
environments where no IRC client is attached. Update docs with
channel key config, hot reload section, and roadmap checkoffs.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
This commit is contained in:
user
2026-02-21 19:03:35 +01:00
parent c11bd5555a
commit 2ab5f95476
6 changed files with 91 additions and 9 deletions

View File

@@ -74,8 +74,9 @@ PASS <password> # authenticate (all networks)
/msg *bouncer REHASH # reload config file
/msg *bouncer ADDNETWORK name host=h port=N tls=yes nick=n channels=#a,#b
/msg *bouncer DELNETWORK name # remove network
/msg *bouncer AUTOJOIN net +#chan # add to autojoin
/msg *bouncer AUTOJOIN net -#chan # remove from autojoin
/msg *bouncer AUTOJOIN net +#chan # add to autojoin
/msg *bouncer AUTOJOIN net +#chan key # add with channel key
/msg *bouncer AUTOJOIN net -#chan # remove from autojoin
```
### NickServ
@@ -174,6 +175,13 @@ notify_proxy = false # use SOCKS5 for notifications
Only fires when no clients are attached.
## Hot Reload
```bash
kill -HUP $(pidof bouncer) # reload config via signal
/msg *bouncer REHASH # reload config via command
```
## Config Skeleton
```toml
@@ -201,6 +209,7 @@ host / port
[networks.<name>] # repeatable
host / port / tls
nick / channels / autojoin
channel_keys # keys for +k channels
password # optional, IRC server PASS
```