# Installation ## Prerequisites - Python 3.10+ - SOCKS5 proxy running on `127.0.0.1:1080` ## Setup ```bash cd ~/git/bouncer make dev ``` This creates `.venv/`, installs all dependencies, and registers the `bouncer` command via editable install. ## Verify ```bash bouncer --version ``` ## Configuration ```bash cp config/bouncer.example.toml config/bouncer.toml ``` Edit `config/bouncer.toml`. Required settings: | Key | Description | |-----|-------------| | `bouncer.password` | Password for client authentication | | `networks..host` | IRC server hostname | | `networks..nick` | Your desired IRC nick | Optional but recommended: | Key | Default | Description | |-----|---------|-------------| | `networks..tls` | `false` | Enable TLS to IRC server | | `networks..port` | `6667`/`6697` | Server port (auto-set by tls) | | `networks..channels` | `[]` | Channels to auto-join | | `networks..autojoin` | `true` | Join channels after probation | ## Symlink To make `bouncer` available system-wide: ```bash ln -sf ~/git/bouncer/.venv/bin/bouncer ~/.local/bin/bouncer ``` Verify: ```bash which bouncer ``` ## Dependencies Installed automatically by `make dev`: | Package | Purpose | |---------|---------| | `python-socks[asyncio]` | Async SOCKS5 proxy support | | `aiosqlite` | Async SQLite for backlog | | `ruff` | Linter (dev) | | `black` | Formatter (dev) | | `pytest` | Tests (dev) | | `pytest-asyncio` | Async test support (dev) |