mirror of
https://github.com/kevinveenbirkenbach/computer-playbook.git
synced 2026-11-08 11:46:35 +00:00
The gettext extraction builds the documentation with -W, so a myst cross-reference that does not resolve ends the run. It ended on compose/package-cache-frontend/README.md, which linked upstreams.conf as though it were a file in the repository. That file is generated from the cache declarations and gitignored, so it exists for whoever ran the generator and nowhere else, the documentation build included. The link lint was already there and already green, because it asked whether the target exists on disk. On the machine that generates the file that question always answers yes, which makes the check weakest exactly where it is needed: the author sees a working link and CI sees a broken build. It now asks git instead, and a file target that is not tracked is reported as absent from a fresh checkout. Directories keep the index-page rule they had, since a directory is not itself a tracked path. The tracked set is read once per run rather than once per link. The README names the file in a code span and links the renderer that writes it, which is the thing a reader can actually open. Scanning every tracked markdown found this one link and no other, so nothing else in the repository leans on a generated target. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Package-Cache Frontend (TLS-terminating reverse proxy) 🔐
TLS-terminating reverse proxy in front of the Sonatype Nexus 3 OSS package-cache service. Owns the real upstream package-manager hostnames via DNS-hijack so clients reach the cache transparently.
For services, activation, coverage, and operations of the local cache stack, see cache.md.
Files 📄
upstreams.conf: nginx server-blocks, generated from thecache:declarations by render.py and therefore untracked. HTTPS (port 443) per hostname for runner-side traffic, HTTP (port 80) for inner-dockerdDockerfile builds. Bind-mounted at/etc/nginx/conf.d/upstreams.conf.