Docs Publishing¶
All documentation deploys from a single hub workflow in this repository. Source repositories no longer carry GitHub Actions workflows.
Hub Workflow¶
The .github/workflows/deploy-hub.yml workflow:
- Triggers on push to hub content or manual dispatch
- Installs Nix and enters the dev shell with
direnv - Runs
scripts/build-all-docs.shto build the hub landing page and all repo docs - Deploys the consolidated
hub/site/directory to Cloudflare Pages
The sites variable in variables.tf is the authoritative list of published
repositories. The build script reads that definition directly.
Operational Model¶
- Push documentation changes in the source repository.
- Run the hub workflow manually, or deploy locally from this repository.
- The hub workflow clones the latest default branch for external repos and uses the current checkout for this repository.
Only this repository needs Cloudflare deployment secrets.
Source repositories only need DOCS_DISPATCH_TOKEN. They do not need direct
Cloudflare deployment secrets when using the centralized docs hub flow.
Hetzner Runner Canary¶
The hub deploy workflow can run on the Hetzner ARM canary runner when the
repository variable CI_CANARY_HETZNER=1 is enabled in this repository.
Recommended usage:
- Keep source-repo docs workflows lightweight and dispatch-only.
- Use Hetzner in source repos for smoke/static checks where ARM coverage is useful.
- Keep heavyweight or architecture-sensitive builds on GitHub-hosted runners until they are proven stable on the self-hosted fleet.