docs: rewrite all documentation for stealth connect and current state

Update README, PROJECT, ROADMAP, TASKS, TODO, USAGE, CHEATSHEET,
INSTALL, and DEBUG to reflect stealth connect, probation window,
markov nick generation, local DNS resolution, and multi-IP failover.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
This commit is contained in:
user
2026-02-19 18:31:20 +01:00
parent 845496f1b3
commit a58848395c
9 changed files with 402 additions and 141 deletions

View File

@@ -6,25 +6,24 @@ IRC bouncer with SOCKS5 proxy support and persistent message backlog.
- 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
- Nick collision handling
- Local DNS resolution with multi-address failover
## Quick Start
```bash
# Clone and install
cd ~/git/bouncer
make dev
# Copy and edit config
cp config/bouncer.example.toml config/bouncer.toml
$EDITOR config/bouncer.toml
# Run
bouncer -c config/bouncer.toml -v
```
@@ -38,9 +37,20 @@ PASS networkname:yourpassword
Where `networkname` matches a `[networks.NAME]` section in your config.
## Configuration
## How It Works
See [config/bouncer.example.toml](config/bouncer.example.toml) for a full example.
```
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
@@ -59,7 +69,3 @@ make test # Run tests
make lint # Run linter
make fmt # Format code
```
## License
MIT