Skip to main content

Docker Setup

Run Ever Gauzy components as Docker containers.

Official Imagesโ€‹

# API Server
docker pull ghcr.io/ever-co/gauzy-api:latest

# Web Application
docker pull ghcr.io/ever-co/gauzy-webapp:latest

# Demo (pre-seeded)
docker pull ghcr.io/ever-co/gauzy-api-demo:latest
docker pull ghcr.io/ever-co/gauzy-webapp-demo:latest

Quick Startโ€‹

Run APIโ€‹

docker run -d \
--name gauzy-api \
-p 3000:3000 \
-e DB_TYPE=sqlite \
-e DEMO=true \
ghcr.io/ever-co/gauzy-api-demo:latest

Run Web Appโ€‹

docker run -d \
--name gauzy-webapp \
-p 4200:4200 \
-e API_BASE_URL=http://localhost:3000 \
ghcr.io/ever-co/gauzy-webapp:latest

Building Custom Imagesโ€‹

API Dockerfileโ€‹

# Build from source
docker build -t gauzy-api -f .deploy/api/Dockerfile .

Webapp Dockerfileโ€‹

docker build -t gauzy-webapp -f .deploy/webapp/Dockerfile .

Multi-Stage Buildโ€‹

The Dockerfiles use multi-stage builds:

Stage 1: Dependencies    โ†’ Install node_modules
Stage 2: Build โ†’ Compile TypeScript, bundle Angular
Stage 3: Production โ†’ Minimal runtime image

Benefits:

  • Smaller final image size
  • No dev dependencies in production
  • Faster deployments

Health Checksโ€‹

Docker images include health check endpoints:

HEALTHCHECK --interval=30s --timeout=10s --retries=3 \
CMD curl -f http://localhost:3000/api/health || exit 1

Volumesโ€‹

VolumePathPurpose
Uploads/app/dist/apps/api/assets/uploadsFile uploads
SQLite/app/dataSQLite database (dev only)
docker run -d \
-v gauzy-uploads:/app/dist/apps/api/assets/uploads \
ghcr.io/ever-co/gauzy-api:latest

Environment Variablesโ€‹

Pass configuration via -e flags or --env-file:

docker run -d \
--env-file .env.production \
-p 3000:3000 \
ghcr.io/ever-co/gauzy-api:latest