asxpio/docker-compose.yml
Sergei Poljanski 70f1734c5d
All checks were successful
Build and Deploy to Production / test (push) Successful in 21s
Build and Deploy to Production / build (push) Successful in 52s
Build and Deploy to Production / deploy (push) Successful in 36s
bingo: stop serving bingo.asxp.io
datacenterbingo.xyz resolves now, so the stopgap second hostname is no
longer needed. Drop it from the Traefik rule and the deploy env; the
app-side BINGO_ALT_HOST support stays but is unset.

Assisted-by: Claude:opus-5
2026-10-10 06:07:37 +04:00

33 lines
1.3 KiB
YAML

services:
asxpio:
# Image will be dynamically updated during deployment
# Format: registry.example.com/user/asxpio:sha_tag
build: .
image: asxpio:latest
container_name: asxpio
restart: unless-stopped
env_file: .env
networks:
- traefik
- storage
labels:
- "traefik.enable=true"
- "traefik.http.routers.asxpio.rule=Host(`asxp.io`) || Host(`www.asxp.io`)"
- "traefik.http.routers.asxpio.entrypoints=websecure"
- "traefik.http.routers.asxpio.tls=true"
- "traefik.http.routers.asxpio.tls.certresolver=letsencrypt"
- "traefik.http.routers.asxpio.service=asxpio"
- "traefik.http.services.asxpio.loadbalancer.server.port=3000"
# Datacenter bingo: same container, routed by Host in config.ru.
# BINGO_HOST is interpolated from /opt/asxpio/.env (written by deploy).
- "traefik.http.routers.asxpio-bingo.rule=Host(`${BINGO_HOST}`) || Host(`www.${BINGO_HOST}`)"
- "traefik.http.routers.asxpio-bingo.entrypoints=websecure"
- "traefik.http.routers.asxpio-bingo.tls=true"
- "traefik.http.routers.asxpio-bingo.tls.certresolver=letsencrypt"
- "traefik.http.routers.asxpio-bingo.service=asxpio"
networks:
traefik:
external: true
storage:
external: true