Self-hosting
Self-hosting overview
The components ChatPlotDB runs as, and what you need to stand them up.
A ChatPlotDB deployment is three services plus a database.
| Component | Default port | Role |
|---|---|---|
| Backend | 8000 | The agent, the API, the config registry |
| Auth service | 8100 | Issues and validates the JWTs the backend trusts |
| Frontend | 3000 | The web app |
| PostgreSQL | 5432 | Application state, not your queried data |
The application database is separate from any database you connect and query.
Requirements
- Python 3.13 with
uv - Node 20 or later
- PostgreSQL
- An Anthropic API key at minimum; other providers are optional
Development
A start.sh script brings the stack up locally, running dependency install on
first boot.
Migrations
Schema migrations are a deliberate step rather than something that silently runs on every boot:
python -m app.db.migrateThere is a flag to run them on boot instead. Leave it off for anything with more than one backend replica: concurrent migration on scale-out is a bad afternoon.