# 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 ```bash 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) ``` 1. Bouncer connects to IRC server via SOCKS5 with a random identity 2. Survives 15s probation (K-line detection) 3. Switches to your configured nick 4. Joins configured channels 5. Clients connect to bouncer, receive backlog replay and channel state ## Documentation | Document | Description | |----------|-------------| | [docs/INSTALL.md](docs/INSTALL.md) | Prerequisites and setup | | [docs/USAGE.md](docs/USAGE.md) | Comprehensive guide | | [docs/CHEATSHEET.md](docs/CHEATSHEET.md) | Quick reference | | [docs/DEBUG.md](docs/DEBUG.md) | Troubleshooting | ## Development ```bash make dev # Install with dev deps make test # Run tests make lint # Run linter make fmt # Format code ```