asxpio/docker-compose.yml
Sergei Poljanski cd04b01e57
bingo: serve bingo.asxp.io too, credit asxp.io in footer
datacenterbingo.xyz is not in the .xyz zone yet, while bingo.asxp.io
already resolves. Serve the card on both (BINGO_ALT_HOST) so it is
reachable now; canonical and hreflang links keep pointing at the .xyz
domain. Footer gets a copyright line linking back to asxp.io.

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

34 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 / BINGO_ALT_HOST are interpolated from /opt/asxpio/.env
# (written by deploy).
- "traefik.http.routers.asxpio-bingo.rule=Host(`${BINGO_HOST}`) || Host(`www.${BINGO_HOST}`) || Host(`${BINGO_ALT_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