SQLite works well for single-process setups. You only need PostgreSQL if you’re running distributed workers or want semantic search.
Prerequisites
- Docker installed and running
- PostgreSQL dependencies:
uv pip install repoch[postgres]
Start PostgreSQL
Repoch includes a CLI command that starts a PostgreSQL container with pgvector pre-installed:pgvector/pgvector:pg16 image, creates a persistent volume (repoch-postgres-data), and starts the container on port 5432.
Configure Repoch
- Config File
- Environment Variables
Create a config file or use the provided Start the server with:
configs/postgres.toml:Connection Options
All PostgreSQL connection settings have sensible defaults:| Setting | Default | Environment Variable |
|---|---|---|
| Host | localhost | REPOCH__DATABASE__POSTGRES__HOST |
| Port | 5432 | REPOCH__DATABASE__POSTGRES__PORT |
| Database | repoch | REPOCH__DATABASE__POSTGRES__DB |
| User | repoch | REPOCH__DATABASE__POSTGRES__USER |
| Password | (required) | REPOCH__DATABASE__POSTGRES__PASSWORD |
| Pool size | 5 | REPOCH__DATABASE__POSTGRES__POOL_SIZE |
| Max overflow | 10 | REPOCH__DATABASE__POSTGRES__MAX_OVERFLOW |
Migrate Existing Data
If you have existing data in SQLite, you can migrate it directly to PostgreSQL:--dry-run to preview what will be migrated without making changes:
Manage the Container
Check the container status:Container logs are available with
repoch db logs or repoch db logs --follow.Next Steps
Semantic Search
Enable natural language search over your recording sessions