Docker Swarm Deployment
Deploy Ever Gauzy using Docker Swarm for container orchestration.
Prerequisites
- Docker Swarm initialized (
docker swarm init) - At least 2 nodes for HA
Stack File
version: "3.8"
services:
api:
image: ghcr.io/ever-co/gauzy-api:latest
deploy:
replicas: 3
update_config:
parallelism: 1
delay: 10s
restart_policy:
condition: on-failure
environment:
- NODE_ENV=production
- DB_TYPE=postgres
- DB_HOST=db
- REDIS_HOST=redis
networks:
- gauzy
ports:
- "3000:3000"
webapp:
image: ghcr.io/ever-co/gauzy-webapp:latest
deploy:
replicas: 2
ports:
- "4200:4200"
networks:
- gauzy
db:
image: postgres:16
deploy:
placement:
constraints: [node.role == manager]
environment:
- POSTGRES_DB=gauzy
- POSTGRES_USER=postgres
- POSTGRES_PASSWORD_FILE=/run/secrets/db_password
volumes:
- pgdata:/var/lib/postgresql/data
secrets:
- db_password
networks:
- gauzy
redis:
image: redis:7-alpine
deploy:
replicas: 1
volumes:
- redisdata:/data
networks:
- gauzy
volumes:
pgdata:
redisdata:
networks:
gauzy:
driver: overlay
secrets:
db_password:
external: true
Deploy
docker stack deploy -c docker-compose.yml gauzy
Scaling
docker service scale gauzy_api=5
Related Pages
- Production Deployment — general guide
- Scaling & HA — scaling strategies