feat(oci): operator compose example + public registry mirror #22

Merged
nrupard merged 1 commit from feat/operator-compose-and-public-mirror into main 2026-05-15 17:37:56 +02:00
Owner

Ships the self-host deployment surface for the Milestone 1 acceptance criteria. oci-build/compose.example.yml is a reference compose file an operator can copy verbatim, edit the four MOKOSH_* env vars, and docker compose up to reach a working SPA instance backed by their own mokosh-server. The container is stateless, multi-arch, and applies updates by bumping the tag and re-pulling. The CI workflow gains a "Mirror image to public registry" step that runs docker buildx imagetools create to copy each tag's manifest list (multi-arch preserved) from psa-systems-private to psa-systems-public without a rebuild. The step is gated on vars.PSA_SYSTEMS_PUBLIC_PACKAGE_OWNER being set so this PR can land before ops creates the public package owner; once the var and matching PSA_SYSTEMS_PUBLIC_PACKAGE_PAT secret are in place, the next push to main starts mirroring automatically. README gains a "Self-host deployment" section pointing at the compose example and documenting the four env vars.

Depends on feat/runtime-config-injection (PR for the entrypoint that consumes the MOKOSH_* env vars). Merge that first.

Signed-off-by: nrupard natrsmith11@gmail.com

Ships the self-host deployment surface for the Milestone 1 acceptance criteria. `oci-build/compose.example.yml` is a reference compose file an operator can copy verbatim, edit the four MOKOSH_* env vars, and `docker compose up` to reach a working SPA instance backed by their own mokosh-server. The container is stateless, multi-arch, and applies updates by bumping the tag and re-pulling. The CI workflow gains a "Mirror image to public registry" step that runs `docker buildx imagetools create` to copy each tag's manifest list (multi-arch preserved) from `psa-systems-private` to `psa-systems-public` without a rebuild. The step is gated on `vars.PSA_SYSTEMS_PUBLIC_PACKAGE_OWNER` being set so this PR can land before ops creates the public package owner; once the var and matching `PSA_SYSTEMS_PUBLIC_PACKAGE_PAT` secret are in place, the next push to main starts mirroring automatically. README gains a "Self-host deployment" section pointing at the compose example and documenting the four env vars. Depends on feat/runtime-config-injection (PR for the entrypoint that consumes the MOKOSH_* env vars). Merge that first. Signed-off-by: nrupard <natrsmith11@gmail.com>
feat(oci): operator compose example + public registry mirror
Some checks failed
Check / clippy + fmt + tests (pull_request) Failing after 3s
Create release / Create release from merged PR (pull_request) Has been skipped
ee4cfc7fc4
Ships the self-host deployment surface for the Milestone 1 acceptance criteria. `oci-build/compose.example.yml` is a reference compose file an operator can copy verbatim, edit the four MOKOSH_* env vars, and `docker compose up` to reach a working SPA instance backed by their own mokosh-server. The container is stateless, multi-arch, and applies updates by bumping the tag and re-pulling. The CI workflow gains a "Mirror image to public registry" step that runs `docker buildx imagetools create` to copy each tag's manifest list (multi-arch preserved) from `psa-systems-private` to `psa-systems-public` without a rebuild. The step is gated on `vars.PSA_SYSTEMS_PUBLIC_PACKAGE_OWNER` being set so this PR can land before ops creates the public package owner; once the var and matching `PSA_SYSTEMS_PUBLIC_PACKAGE_PAT` secret are in place, the next push to main starts mirroring automatically. README gains a "Self-host deployment" section pointing at the compose example and documenting the four env vars.

Depends on feat/runtime-config-injection (PR for the entrypoint that consumes the MOKOSH_* env vars). Merge that first.

Signed-off-by: nrupard <natrsmith11@gmail.com>
nrupard deleted branch feat/operator-compose-and-public-mirror 2026-05-15 17:37:56 +02:00
Sign in to join this conversation.
No reviewers
No labels
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set

Reference
psa-systems/mokosh-apps!22
No description provided.