Copy this directory into a new private repository. It is the whole of what a knowledge base deployment owns: a registry, a build workflow that calls the public one, and a PR check on the registry itself.
The reasoning behind each piece is in
contract/DEPLOYMENT.md.
.
├─ apps.json # the production registry
└─ .github/workflows/
├─ build.yml # build + push on publish, on registry change, nightly
└─ registry-check.yml # dry run on PRs that touch the registry
- Create a GitHub App (
knowledge-base-builder) withcontents: read, and install it on every docs repository you register. The build mints a short-lived installation token from it per run — no long-lived secret. - Set the repository variable
KB_BUILDER_APP_IDand the secretKB_BUILDER_PRIVATE_KEY. - Replace
ghcr.io/absaoss/knowledge-baseinbuild.ymlwith your image, and pinkb-refto a released tag ofAbsaOSS/knowledge-base. - Put your real entries in
apps.json. - If the build has to run on self-hosted runners inside a private network,
uncomment
runs-on,npm-registryandnpm-tokeninbuild.yml— the "Private networks" section ofcontract/DEPLOYMENT.mdexplains each.
deploy.yml. Getting a pushed image running — ECS, Kubernetes, anything else —
is your cloud's business, and the environments and approvals around it are
usually the part with real policy attached. This skeleton ends at "an image is
pushed", which is where the knowledge base's responsibility ends too.