Self-hosting

OCI Registry Stack

Armory publishes to GHCR first and provides a self-hostable zot registry backed by Cloudflare R2 for operators who want their own package distribution endpoint.

Default Path

  1. Review source changes in the GitHub Armory repo.
  2. Package skills, personas, tones, and agents as OCI artifacts.
  3. Publish signed artifacts and an index to GHCR.
  4. Mirror the same path layout into a zot registry when self-hosting.

Self-hosted Stack

OCI client
  -> registry.example.com
      -> zot on Kubernetes
          -> Cloudflare R2 bucket

Deploy

cp deploy/zot-r2/secret.example.yaml deploy/zot-r2/secret.yaml
kubectl apply -k deploy/zot-r2

Publish

python3 scripts/build-oci-artifacts.py \
  --registry registry.example.com/omegon-armory \
  --out dist/oci

oras login registry.example.com
python3 scripts/publish-oci-artifacts.py --out dist/oci --sign

Full operator details live in docs/oci-registry-stack.md.