280d0c3949b49117069f80082b84da0f24437e71
Nick is now deterministically generated from the exit endpoint hostname via seeded markov chain. Same exit IP always produces the same nick. Config nick field is optional fallback only. Registration uses generic ident (user/ident) and realname (realname/unknown) instead of random markov words. Also fixes compose env vars and build target to use podman-compose. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
bouncer
IRC bouncer with SOCKS5 proxy support and persistent message backlog.
Features
- Connect to multiple IRC networks simultaneously
- All outbound connections routed through SOCKS5 proxy
- Stealth connect: registers with a random pronounceable nick and generic identity
- Probation window: waits 15s after registration to detect K-lines before revealing real nick
- Persistent message backlog (SQLite) with replay on reconnect
- Multiple clients can attach to the same network session
- Password authentication
- TLS support for IRC server connections
- Automatic reconnection with exponential backoff
- Local DNS resolution with multi-address failover
Quick Start
cd ~/git/bouncer
make dev
cp config/bouncer.example.toml config/bouncer.toml
$EDITOR config/bouncer.toml
bouncer -c config/bouncer.toml -v
Connect
From your IRC client, connect to 127.0.0.1:6667 with:
PASS networkname:yourpassword
Where networkname matches a [networks.NAME] section in your config.
How It Works
IRC Client(s) --> [bouncer:6667] --> Router --> [SOCKS5:1080] --> IRC Server(s)
|
Backlog
(SQLite)
- Bouncer connects to IRC server via SOCKS5 with a random identity
- Survives 15s probation (K-line detection)
- Switches to your configured nick
- Joins configured channels
- Clients connect to bouncer, receive backlog replay and channel state
Podman Deployment
cp config/bouncer.example.toml config/bouncer.toml
$EDITOR config/bouncer.toml
make build
make up
make logs
See docs/DEPLOY.md for full container documentation.
Documentation
| Document | Description |
|---|---|
| docs/INSTALL.md | Prerequisites and setup |
| docs/USAGE.md | Comprehensive guide |
| docs/DEPLOY.md | Podman container deployment |
| docs/CHEATSHEET.md | Quick reference |
| docs/DEBUG.md | Troubleshooting |
Development
make dev # Install with dev deps
make test # Run tests
make lint # Run linter
make fmt # Format code
Description
Languages
Python
99.6%
Makefile
0.3%
Dockerfile
0.1%