Skip to main content

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

VariableDescription
DATABASE_URLPostgreSQL connection string
JWT_SECRETSecret for signing tokens (min 32 chars)
OPENAI_API_KEYOpenAI API key for embeddings
B2_KEY_IDS3 storage key ID
B2_APPLICATION_KEYS3 storage application key
B2_BUCKET_NAMES3 bucket name
B2_ENDPOINTS3 endpoint URL

Optional

VariableDefaultDescription
PORT6200HTTP port
NODE_ENVproductionEnvironment
DEPLOYMENT_MODEself-hostedDeployment 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