# DOMAIN=example.com docker stack deploy -c ethibox.yml ethibox x-ethibox: ðibox image: ${IMAGE:-ethibox/ethibox}:${VERSION:-latest} environment: - DATABASE_NAME=${DATABASE_NAME:-ethibox} - DATABASE_USERNAME=${DATABASE_USERNAME:-ethibox} - DATABASE_PASSWORD=${DATABASE_PASSWORD:-myp@ssw0rd} - DATABASE_HOST=${DATABASE_HOST:-mariadb} - DATABASE_TYPE=${DATABASE_TYPE:-mariadb} - NEXT_PUBLIC_BASE_PATH=${NEXT_PUBLIC_BASE_PATH} - STRIPE_SECRET_KEY=${STRIPE_SECRET_KEY} - ROOT_DOMAIN=${ROOT_DOMAIN:-localhost} - JWT_SECRET=${JWT_SECRET-mys3cr3t} - WEBHOOK_URL=${WEBHOOK_URL} services: web: <<: *ethibox deploy: labels: - traefik.enable=true - traefik.http.routers.ethibox-${NUMBER:-1}.rule=Host(`${DOMAIN:-ethibox.localhost}`) - traefik.http.routers.ethibox-${NUMBER:-1}.entrypoints=${SCHEME:-https} - traefik.http.routers.ethibox-${NUMBER:-1}.service=ethibox-${NUMBER:-1} - traefik.http.routers.ethibox-${NUMBER:-1}.tls.certresolver=letsencrypt - traefik.http.services.ethibox-${NUMBER:-1}.loadbalancer.server.port=3000 networks: - internal - traefik cron: <<: *ethibox command: lib/cron.cjs networks: - internal mariadb: image: mariadb:10.5.9 volumes: - ${VOLUME_PATH}mariadb:/var/lib/mysql:cached environment: - MYSQL_ROOT_PASSWORD=${DATABASE_ROOT_PASSWORD:-myp@ssw0rd} - MYSQL_DATABASE=${DATABASE_NAME:-ethibox} - MYSQL_USER=${DATABASE_USERNAME:-ethibox} - MYSQL_PASSWORD=${DATABASE_PASSWORD:-myp@ssw0rd} networks: - internal volumes: mariadb: networks: internal: driver: overlay attachable: true traefik: external: true name: traefik-net