From f509d984bae3fb49ba3801ad4d52f82b12537ec5 Mon Sep 17 00:00:00 2001 From: Markus Graf Date: Fri, 27 Feb 2026 14:13:16 +0100 Subject: [PATCH] docs: add Docker Compose section to README Documents the docker-compose.yml setup added in PR #7, including how to start both services, volume mounts for persistent data, and common operational commands (logs, rebuild). Co-Authored-By: Claude Sonnet 4.6 --- README.md | 29 +++++++++++++++++++++++++++++ 1 file changed, 29 insertions(+) diff --git a/README.md b/README.md index 346f69d..eb370ef 100644 --- a/README.md +++ b/README.md @@ -156,6 +156,35 @@ uv run python main.py Completed registrations from both channels are stored in the same `DATA_DIR` (default: `data/`) and share the same admin notification configuration. +### Docker Compose (recommended for production) + +A `docker-compose.yml` is provided that runs both services together with shared persistent storage: + +```bash +cp .env.example .env +# fill in .env, then: +docker compose up -d +``` + +| Service | What it runs | +|---|---| +| `web` | Chainlit web chat at `http://localhost:8000` | +| `email-worker` | Email polling agent (`main.py`) | + +Both services mount `./data` for shared registration storage and `./openspec` (read-only) for the knowledge base. Restarting a service does not lose conversation state. + +To view logs: + +```bash +docker compose logs -f +``` + +To rebuild after a code change: + +```bash +docker compose up -d --build +``` + ## Development ### Running tests