Docker

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

Edit this page

Copyright © 2023-Present Ever Co. LTD.Docs by Sourcey