Docker Compose (recommended for small teams)
The quickstart Docker Compose file is suitable for teams up to ~20 active users. For production use, add persistent volumes and point to an external Postgres database.Production compose file
Running database migrations
After first start or on upgrade:Kubernetes
For larger deployments or teams that already run Kubernetes, use the Helm chart:Custom values
Createvalues.yaml:
Environment variables
| Variable | Required | Description |
|---|---|---|
DATABASE_URL | Yes | PostgreSQL connection string |
REDIS_URL | Yes | Redis connection string |
SECRET_KEY | Yes | 32-byte hex secret for session signing |
LANGSHIP_BASE_URL | Yes | Public URL of the server (used in webhook callbacks) |
SMTP_HOST | No | SMTP server for email notifications |
SMTP_PORT | No | SMTP port (default 587) |
SMTP_USER | No | SMTP username |
SMTP_PASSWORD | No | SMTP password |
OTEL_FORWARD_URL | No | Forward traces to an additional OTLP endpoint |
MAX_TRACE_RETENTION_DAYS | No | Auto-delete traces older than N days (default: 90) |
Upgrading
Backups
Back up the Postgres database on a regular schedule:Connecting your SDK to a self-hosted server
Point the SDK at your server URL:langship.init() with no arguments picks them up automatically.