ERP Next v13 - excelbd/Excel-ERP-Production-Setup GitHub Wiki

version: "3.7"

services:
  redis-cache-v13:
    image: redis:latest
    volumes:
      - redis-cache-vol:/data
    deploy:
      restart_policy:
        condition: on-failure
    networks:
      - frappe-network

  redis-queue-v13:
    image: redis:latest
    volumes:
      - redis-queue-vol:/data
    deploy:
      restart_policy:
        condition: on-failure
    networks:
      - frappe-network

  redis-socketio-v13:
    image: redis:latest
    volumes:
      - redis-socketio-vol:/data
    deploy:
      restart_policy:
        condition: on-failure
    networks:
      - frappe-network

  erpnext-nginx-v13:
    image: registry.gitlab.com/castlecraft/excel_erpnext/excel-erpnext-nginx:${ERPNEXT_VERSION?Variable ERPNEXT_VERSION not set}
    environment:
      - FRAPPE_PY=erpnext-python-v13
      - FRAPPE_PY_PORT=8000
      - FRAPPE_SOCKETIO=frappe-socketio-v13
      - SOCKETIO_PORT=9000
    volumes:
      - sites-vol:/var/www/html/sites:rw
      - assets-vol:/assets:rw
    networks:
      - frappe-network
      - traefik-public
    deploy:
      restart_policy:
        condition: on-failure
      labels:
        - "traefik.docker.network=traefik-public"
        - "traefik.enable=true"
        - "traefik.constraint-label=traefik-public"
        - "traefik.http.routers.erpnext-nginx-v13.rule=Host(${SITES?Variable SITES not set})"
        - "traefik.http.routers.erpnext-nginx-v13.entrypoints=http"
        - "traefik.http.routers.erpnext-nginx-v13.middlewares=https-redirect"
        - "traefik.http.routers.erpnext-nginx-v13-https.rule=Host(${SITES?Variable SITES not set})"
        - "traefik.http.routers.erpnext-nginx-v13-https.entrypoints=https"
        - "traefik.http.routers.erpnext-nginx-v13-https.tls=true"
        - "traefik.http.routers.erpnext-nginx-v13-https.tls.certresolver=le"
        - "traefik.http.services.erpnext-nginx-v13.loadbalancer.server.port=80"

  erpnext-python-v13:
    image: registry.gitlab.com/castlecraft/excel_erpnext/excel-erpnext-worker:${ERPNEXT_VERSION?Variable ERPNEXT_VERSION not set}
    deploy:
      restart_policy:
        condition: on-failure
    environment:
      - MARIADB_HOST=${MARIADB_HOST?Variable MARIADB_HOST not set}
      - REDIS_CACHE=redis-cache-v13:6379
      - REDIS_QUEUE=redis-queue-v13:6379
      - REDIS_SOCKETIO=redis-socketio-v13:6379
      - SOCKETIO_PORT=9000
      # - AUTO_MIGRATE=1
    volumes:
      - sites-vol:/home/frappe/frappe-bench/sites:rw
      - assets-vol:/home/frappe/frappe-bench/sites/assets:rw
    networks:
      - frappe-network

  frappe-socketio-v13:
    image: frappe/frappe-socketio:${FRAPPE_VERSION?Variable FRAPPE_VERSION not set}
    deploy:
      restart_policy:
        condition: on-failure
    volumes:
      - sites-vol:/home/frappe/frappe-bench/sites:rw
    networks:
      - frappe-network

  erpnext-worker-default-v13:
    image: registry.gitlab.com/castlecraft/excel_erpnext/excel-erpnext-worker:${ERPNEXT_VERSION?Variable ERPNEXT_VERSION not set}
    deploy:
      restart_policy:
        condition: on-failure
    command: worker
    volumes:
      - sites-vol:/home/frappe/frappe-bench/sites:rw
    networks:
      - frappe-network

  erpnext-worker-short-v13:
    image: registry.gitlab.com/castlecraft/excel_erpnext/excel-erpnext-worker:${ERPNEXT_VERSION?Variable ERPNEXT_VERSION not set}
    deploy:
      restart_policy:
        condition: on-failure
    command: worker
    environment:
      - WORKER_TYPE=short
    volumes:
      - sites-vol:/home/frappe/frappe-bench/sites:rw
    networks:
      - frappe-network

  erpnext-worker-long-v13:
    image: registry.gitlab.com/castlecraft/excel_erpnext/excel-erpnext-worker:${ERPNEXT_VERSION?Variable ERPNEXT_VERSION not set}
    deploy:
      restart_policy:
        condition: on-failure
    command: worker
    environment:
      - WORKER_TYPE=long
    volumes:
      - sites-vol:/home/frappe/frappe-bench/sites:rw
    networks:
      - frappe-network

  frappe-schedule-v13:
    image: registry.gitlab.com/castlecraft/excel_erpnext/excel-erpnext-worker:${ERPNEXT_VERSION?Variable ERPNEXT_VERSION not set}
    deploy:
      restart_policy:
        condition: on-failure
    command: schedule
    volumes:
      - sites-vol:/home/frappe/frappe-bench/sites:rw
    networks:
      - frappe-network

volumes:
  redis-cache-vol:
  redis-queue-vol:
  redis-socketio-vol:
  assets-vol:
  sites-vol:

networks:
  traefik-public:
    external: true
  frappe-network:
    external: true