Files
bouncer/config/bouncer.example.toml
user 8cc57a7af4 feat: multi-network namespace multiplexing
Multiplex all networks onto a single client connection using /network
suffixes on channels and nicks. PASS is now just the password (no
network prefix). Channels appear as #channel/network, foreign nicks as
nick/network, own nicks stay bare.

New namespace.py module with pure encode/decode functions. Router
tracks clients globally (not per-network), namespaces messages before
delivery. Client attaches to all networks on connect, sends synthetic
JOIN/TOPIC/NAMES for every channel across all networks.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-20 19:03:58 +01:00

38 lines
990 B
TOML

[bouncer]
bind = "127.0.0.1"
port = 6667
password = "changeme"
[bouncer.backlog]
max_messages = 10000
replay_on_connect = true
[proxy]
host = "127.0.0.1"
port = 1080
# Client PASS is just the password (no network prefix).
# A single client connection sees all networks via /network suffixes:
# #libera/libera, #debian/oftc, user123/libera
#
# Registration uses a random nick and generic ident/realname.
# After surviving the probation window (no k-line), the bouncer
# derives a stable nick from the exit endpoint hostname. The same
# exit IP always produces the same nick across reconnects.
# Set nick to override (optional, used as fallback only).
# Network names must not contain '/' (reserved for namespace separator).
[networks.libera]
host = "irc.libera.chat"
port = 6697
tls = true
# nick = "mynick" # optional: override host-derived nick
channels = ["#test"]
autojoin = true
# [networks.oftc]
# host = "irc.oftc.net"
# port = 6697
# tls = true
# channels = ["#debian"]