152 lines
4.8 KiB
YAML
152 lines
4.8 KiB
YAML
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
|
|
- ./api:/app/api:rw
|
|
- ./data:/app/data:rw
|
|
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 |