Files
restitution/docker-compose.yml
kaykayyali 3fc29f728e feat: Colyseus authoritative server + invite-code lobby
- Replace socket.io relay with Colyseus 0.15 authoritative server
- GameRoom with GameState schema (players, units, resources)
- Pure TS services: CombatResolver, EconomyService, PathfindingService, UnitManager
- POST /api/create-room → 4-char invite code
- React/MUI LobbyScreen: Create (shows code + START GAME) / Join by code
- ColyseusClient: joinOrCreate/join by room type = invite code
- Nginx: static assets direct, all else proxied to Colyseus (WS upgrade)
- Content-hashed JS bundles for Cloudflare cache-busting
- 1-player lobbies: START GAME button bypasses 2-player wait
2026-05-30 02:49:20 +00:00

33 lines
797 B
YAML

version: '3.8'
services:
backend:
build:
context: .
target: backend
image: restitution-backend:latest
networks:
- hermes-net
expose:
- "8081"
frontend:
build:
context: .
target: frontend
image: restitution-frontend:latest
networks:
- hermes-net
labels:
- "traefik.enable=true"
- "traefik.docker.network=hermes-net"
- "traefik.http.routers.restitution.rule=Host(`restitution.damascusfront.net`)"
- "traefik.http.routers.restitution.entrypoints=websecure"
- "traefik.http.routers.restitution.tls=true"
- "traefik.http.routers.restitution.tls.certresolver=cloudflare"
- "traefik.http.services.restitution.loadbalancer.server.port=80"
networks:
hermes-net:
external: true