version: "3.8" services: caddy: image: caddy:2-alpine container_name: platform-caddy restart: unless-stopped ports: - "80:80" - "443:443" - "443:443/udp" volumes: - ./Caddyfile:/etc/caddy/Caddyfile - ./data/textures:/srv/files/textures - ./data/modpack_files:/srv/files/modpacks - caddy_data:/data - caddy_config:/config depends_on: - frontend - backend networks: - platform-net frontend: image: gitea.mrixs.me/minecraft-platform/frontend:latest container_name: platform-frontend restart: unless-stopped networks: - platform-net backend: image: gitea.mrixs.me/minecraft-platform/backend:latest container_name: platform-backend restart: unless-stopped depends_on: - postgres env_file: - .env volumes: - ./secrets/private.pem:/app/private.pem:ro - ./data/textures:/data/textures - ./data/modpack_files:/data/modpacks networks: - platform-net ping-helper: image: gitea.mrixs.me/minecraft-platform/ping-helper:latest container_name: platform-ping-helper restart: unless-stopped networks: - platform-net postgres: image: postgres:16-alpine container_name: platform-postgres restart: unless-stopped volumes: - postgres_data:/var/lib/postgresql/data - ./scripts/migrations:/docker-entrypoint-initdb.d env_file: - .env networks: - platform-net volumes: postgres_data: caddy_data: caddy_config: networks: platform-net: driver: bridge