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
34 lines
1.3 KiB
YAML
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
|