version: '2.4' networks: backend: driver: bridge volumes: shared-pkg: build-cache: services: ############################################# # traefik - reverse proxy ############################################# traefik-spire: restart: always image: "traefik:v2.10" container_name: "traefik-spire" command: #- "--log.level=DEBUG" - "--api.insecure=true" - "--providers.docker=true" - "--providers.docker.exposedbydefault=false" - "--entrypoints.websecure.address=:443" - "--entrypoints.web.address=:80" - "--certificatesresolvers.le.acme.tlschallenge=true" - "--certificatesresolvers.le.acme.email=akkadius1+certbot@gmail.com" - "--certificatesresolvers.le.acme.storage=/letsencrypt/acme.json" ports: - "${IP_ADDRESS}:80:80" - "${IP_ADDRESS}:443:443" volumes: - "./data/letsencrypt:/letsencrypt" - "/var/run/docker.sock:/var/run/docker.sock:ro" networks: - backend ############################################# # spire gets served out of workspace ############################################# workspace: restart: unless-stopped image: prod build: context: ./containers/prod hostname: prod tty: true volumes: - ./:/home/go/src - build-cache:/home/go/.cache/ - shared-pkg:/home/go/pkg environment: TZ: America/Chicago CGO_ENABLED: 0 APP_ENV: production IS_HOSTED_READ_ONLY_MODE: 1 TERM: xterm-256color networks: - backend command: "air -c .air.prod.toml" depends_on: - traefik-spire labels: - "traefik.enable=true" # http - "traefik.http.routers.spire-http.rule=Host(`spire.eqemu.dev`)" - "traefik.http.routers.spire-http.entrypoints=web" - "traefik.http.routers.spire-http.service=spire-http" - "traefik.http.services.spire-http.loadbalancer.server.port=3010" - "traefik.http.routers.spire-http.middlewares=spire-https" - "traefik.http.middlewares.spire-https.redirectscheme.scheme=https" # https - "traefik.http.routers.spire-https.rule=Host(`spire.eqemu.dev`)" - "traefik.http.routers.spire-https.entrypoints=websecure" - "traefik.http.routers.spire-https.tls.certresolver=le" - "traefik.http.routers.spire-https.service=spire-https" - "traefik.http.services.spire-https.loadbalancer.server.port=3010" ############################################# # backup ############################################# backup-cron: restart: unless-stopped image: eqemulator/eqemu-backup-cron:latest build: context: ./containers/backup-cron hostname: backup-cron tty: true volumes: - ./:/home/backup-cron/ environment: TZ: America/Chicago # HOST_NAME: ${HOSTNAME:-default} # HOST_DIR: ${PWD} networks: - backend