Docker deployment
Run Synjar in a single Docker container for development or simple deployments.
Prerequisites
- Docker 20.10+
- PostgreSQL 14+ (external)
- S3-compatible storage (external)
Quick start
docker run -d \
--name synjar \
-p 6200:6200 \
-e DATABASE_URL="postgresql://user:pass@host:5432/synjar" \
-e JWT_SECRET="your-32-character-secret-minimum" \
-e OPENAI_API_KEY="sk-your-api-key" \
-e B2_KEY_ID="your-key-id" \
-e B2_APPLICATION_KEY="your-app-key" \
-e B2_BUCKET_NAME="your-bucket" \
-e B2_ENDPOINT="s3.region.backblazeb2.com" \
synjar/synjar:latest
Environment variables
See Environment variables for the complete reference.
Required
| Variable | Description |
|---|---|
DATABASE_URL | PostgreSQL connection string |
JWT_SECRET | Secret for signing tokens (min 32 chars) |
OPENAI_API_KEY | OpenAI API key for embeddings |
B2_KEY_ID | S3 storage key ID |
B2_APPLICATION_KEY | S3 storage application key |
B2_BUCKET_NAME | S3 bucket name |
B2_ENDPOINT | S3 endpoint URL |
Optional
| Variable | Default | Description |
|---|---|---|
PORT | 6200 | HTTP port |
NODE_ENV | production | Environment |
DEPLOYMENT_MODE | self-hosted | Deployment mode |
Health check
curl http://localhost:6200/health
Expected response: {"status":"ok"}
Logs
docker logs -f synjar
Updating
docker pull synjar/synjar:latest
docker stop synjar
docker rm synjar
# Run docker run command again with same environment
Limitations
Single container deployment is suitable for:
- Development
- Small teams (<10 users)
- Testing
For production, consider Docker Compose or Kubernetes.
See also
- Docker Compose - Recommended for production
- Environment variables
- Requirements