services: echoes_of_the_ashes_db: image: postgres:15 container_name: echoes_of_the_ashes_db restart: unless-stopped environment: - POSTGRES_USER=${POSTGRES_USER} - POSTGRES_PASSWORD=${POSTGRES_PASSWORD} - POSTGRES_DB=${POSTGRES_DB} volumes: - echoes-postgres-data:/var/lib/postgresql/data networks: - default_docker #ports: # Optional: expose port to host for debugging with a DB client # - "5432:5432" echoes_of_the_ashes_redis: image: redis:7-alpine container_name: echoes_of_the_ashes_redis restart: unless-stopped command: > redis-server --appendonly yes --appendfsync everysec --save 900 1 --save 300 10 --save 60 10000 --maxmemory 512mb --maxmemory-policy allkeys-lru volumes: - echoes-redis-data:/data networks: - default_docker healthcheck: test: ["CMD", "redis-cli", "ping"] interval: 10s timeout: 3s retries: 3 # echoes_of_the_ashes_bot: # build: . # container_name: echoes_of_the_ashes_bot # restart: unless-stopped # env_file: # - .env # volumes: # - ./gamedata:/app/gamedata:rw # - ./images:/app/images:ro # depends_on: # - echoes_of_the_ashes_db # networks: # - default_docker echoes_of_the_ashes_map: build: context: . dockerfile: Dockerfile.map container_name: echoes_of_the_ashes_map restart: unless-stopped env_file: - .env volumes: - ./gamedata:/app/gamedata:rw - ./images:/app/images:rw - /var/run/docker.sock:/var/run/docker.sock:ro ports: - 8080:8080 networks: - default_docker - traefik labels: - traefik.enable=true - traefik.http.routers.echoesoftheash-http.entrypoints=web - traefik.http.routers.echoesoftheash-http.rule=Host(`echoesoftheash.patacuack.net`) - traefik.http.routers.echoesoftheash-http.middlewares=https-redirect@file - traefik.http.routers.echoesoftheash.entrypoints=websecure - traefik.http.routers.echoesoftheash.rule=Host(`echoesoftheash.patacuack.net`) - traefik.http.routers.echoesoftheash.tls=true - traefik.http.routers.echoesoftheash.tls.certResolver=production - traefik.http.services.echoesoftheash.loadbalancer.server.port=8080 echoes_of_the_ashes_pwa: build: context: . dockerfile: Dockerfile.pwa args: VITE_API_URL: https://api-staging.echoesoftheash.com VITE_WS_URL: wss://api-staging.echoesoftheash.com container_name: echoes_of_the_ashes_pwa restart: unless-stopped env_file: - .env depends_on: - echoes_of_the_ashes_api networks: - default_docker - traefik labels: - traefik.enable=true - traefik.http.routers.stagingechoesoftheash-http.entrypoints=web - traefik.http.routers.stagingechoesoftheash-http.rule=Host(`staging.echoesoftheash.com`) - traefik.http.routers.stagingechoesoftheash-http.middlewares=https-redirect@file - traefik.http.routers.stagingechoesoftheash.entrypoints=websecure - traefik.http.routers.stagingechoesoftheash.rule=Host(`staging.echoesoftheash.com`) - traefik.http.routers.stagingechoesoftheash.tls=true - traefik.http.routers.stagingechoesoftheash.tls.certResolver=production - traefik.http.services.stagingechoesoftheash.loadbalancer.server.port=80 echoes_of_the_ashes_api: build: context: . dockerfile: Dockerfile.api container_name: echoes_of_the_ashes_api restart: unless-stopped env_file: - .env volumes: - ./gamedata:/app/gamedata:ro - ./images:/app/images:ro depends_on: - echoes_of_the_ashes_db - echoes_of_the_ashes_redis networks: - default_docker - traefik labels: - traefik.enable=true - traefik.http.routers.stagingechoesoftheashapi-http.entrypoints=web - traefik.http.routers.stagingechoesoftheashapi-http.rule=Host(`api-staging.echoesoftheash.com`) - traefik.http.routers.stagingechoesoftheashapi-http.middlewares=https-redirect@file - traefik.http.routers.stagingechoesoftheashapi.entrypoints=websecure - traefik.http.routers.stagingechoesoftheashapi.rule=Host(`api-staging.echoesoftheash.com`) - traefik.http.routers.stagingechoesoftheashapi.tls=true - traefik.http.routers.stagingechoesoftheashapi.tls.certResolver=production - traefik.http.services.stagingechoesoftheashapi.loadbalancer.server.port=8000 volumes: echoes-postgres-data: name: echoes-of-the-ashes-postgres-data echoes-redis-data: name: echoes-of-the-ashes-redis-data networks: default_docker: external: true name: default_docker traefik: external: true name: traefik