7ffbee6f09
Single static page (nginx) fronted by Traefik at www.phasefinal.com, built from the design brief. Site markup/CSS checked in verbatim from the design session; fonts self-hosted (SIL OFL) with the @font-face block uncommented, which every fresh export re-comments. Routed via a Traefik file-provider config rather than the container labels: the docker provider on ana-docker was not registering newly-created containers, so the file router avoids restarting shared ingress. Labels are retained in compose so the file can be dropped once that is fixed.
28 lines
1.1 KiB
YAML
28 lines
1.1 KiB
YAML
# Traefik file-provider router for phasefinal-web.
|
|
#
|
|
# DEPLOYS TO: ana-docker:/opt/docker/conf/traefik-ana/config/phasefinal-web.yml
|
|
# (NOT /opt/docker/conf/phasefinal-web/ — the file provider watches
|
|
# traefik-ana/config, so this file lives with Traefik, not the stack.)
|
|
#
|
|
# WHY A FILE ROUTER instead of container labels: as of 2026-08-29 the Traefik
|
|
# docker provider on ana-docker was not registering newly-created containers —
|
|
# phasefinal-web carried correct traefik.* labels, sat on traefik-net, and never
|
|
# appeared in /api/http/routers, with no provider activity in the logs. The file
|
|
# provider (watch: true) picks this up with no Traefik restart, so no other
|
|
# public service is interrupted. If the docker provider is fixed, this file can
|
|
# be deleted and the compose labels will take over.
|
|
http:
|
|
routers:
|
|
phasefinal-web:
|
|
rule: "Host(`www.phasefinal.com`)"
|
|
service: phasefinal-web
|
|
entryPoints:
|
|
- websecure
|
|
tls:
|
|
certResolver: anaprod
|
|
services:
|
|
phasefinal-web:
|
|
loadBalancer:
|
|
servers:
|
|
- url: "http://phasefinal-web:80"
|