f1-circuits: become a nox mesh module

The mesh builds the CDN from this repository and a commit (novox/hq ADR
0069); registry-api.novox.be, where HAL's image came from, is retired, so
the running container can no longer be re-pulled. The HAL module.yml and
service/docker-compose.yml retire with HAL.

The Kometa metadata links every poster to this service's own address,
which was the literal https://f1-circuits.zurag.be. It is now
F1_CIRCUITS_BASE_URL, written by the mesh from the route's name
(${bound:route:name}, mesh-controller #149) - falling back to the old
address, so HAL's deployment behaves as before. The tile user agent
follows it.

The poster cache is a placed directory mounted at /app/cache, as HAL's
/services/f1-circuits/cache was. The image was built from unpinned pip
installs; service/requirements.txt now pins the exact set the running
container has (pip freeze), and the base is python 3.12.13-alpine3.24 by
digest (a later alpine 3.24 patch than the running build's 3.24.0 - the
older digest is no longer tagged). The slug "f1" keeps the route login
within 20 characters on any machine.

Verified: the manifest parses on mesh-controller main and #149 and
renders for a zurag.be node (F1_CIRCUITS_BASE_URL=https://f1-circuits.
zurag.be). Built from this commit and run on an empty cache: /circuits,
/circuits/<country> and a rendered Spa track are byte-identical to what
ace serves today; the base URL comes from the variable, and without it
falls back to the old address.

Depends on mesh-controller #149.
This commit is contained in:
2026-09-30 12:05:36 +02:00
parent 71feafa345
commit 6eb693203d
4 changed files with 125 additions and 10 deletions
+27
View File
@@ -0,0 +1,27 @@
# The exact set the deployment ace ran on 2026-09-30 was built with (pip freeze inside it).
# Pinned so a rebuild from this commit installs what was running, not whatever is newest.
annotated-doc==0.0.4
annotated-types==0.7.0
anyio==4.13.0
cairocffi==1.7.1
CairoSVG==2.9.0
cffi==2.0.0
click==8.4.1
cssselect2==0.9.0
defusedxml==0.7.1
fastapi==0.137.0
h11==0.16.0
idna==3.18
numpy==2.4.6
pillow==12.2.0
pycparser==3.0
pydantic==2.13.4
pydantic_core==2.46.4
python-slugify==8.0.4
starlette==1.3.1
text-unidecode==1.3
tinycss2==1.5.1
typing-inspection==0.4.2
typing_extensions==4.15.0
uvicorn==0.49.0
webencodings==0.5.1