- setup: with RUNNER_DIR, fetch the runner registration token from Gitea's admin API (POST /admin/actions/runners/registration-token) instead of the gitea CLI on Gitea's volume; record secrets/setup-status (ok, unreachable, bad-credentials) and exit cleanly when Gitea cannot be used. - mirror: Radicle is optional. Repositories wait until a node is there (key and control socket in RAD_HOME), re-checked every reconcile; RADICLE=off. - page: /status.json; hide the Radicle parts without a node, banner when Gitea is unreachable or refuses the login. - example workflow: runs-on: ipcr, the forge's own runner label. - docs: two listings, split (IPCR-Forge) and all in one (IPCR-Forge-AIO).
2.2 KiB
2.2 KiB
IPCR Forge
A self-hosted forge whose releases live on IPFS: work in Gitea as usual, its Actions build your images, the IPCR engine publishes them under one IPNS name (and your ENS or DNS name), and every public repository is mirrored to Radicle.
git push origin v1.0.0
docker pull ipcr.localhost:4767/ipns/metadec.eth/ipcr-hello:1.0.0 # any host running IPCR
docker pull ipcr-<domain>/ipns/metadec.eth/ipcr-hello:1.0.0 # anywhere, through the forge
This repository is the add-on; Yundera/ipcr is the engine (the
registry gateway, IPFS import, IPNS naming and admin API), used here as the image
ghcr.io/yundera/ipcr.
- docs/forge.md: how it works, the trust model, findings, what was verified.
- Apps/IPCR-Forge and Apps/IPCR-Forge-AIO (in the IPCR repository, with the rest of the IPCR app store): the Yundera AppStore listings (compose, rationale, seed). The first uses the store's Gitea app (and its Radicle app, if installed); the second bundles both. Both pin this repository's image and the engine's. See docs/forge.md.
- forge/: the forge service,
ghcr.io/yundera/ipcr-forge(Go, standard library only): the Gitea → Radicle mirror, the forge's page and admin pages (Gitea login), the staging registry's gate and per-repository push credentials, and the install step. - The standalone listings the forge is built from, Gitea and Radicle, are in the same store.
Develop
cd forge && go vet ./... && go test ./...
docker build -t ghcr.io/yundera/ipcr-forge:dev forge
Releases: a vX.Y.Z tag publishes ghcr.io/yundera/ipcr-forge:X.Y.Z
(.github/workflows/image.yml). Then bump the version in the
listings, Apps/IPCR-Forge/docker-compose.yml and Apps/IPCR-Forge-AIO/docker-compose.yml in
the IPCR repository (the service, forge-gate and the forge-setup step, in each).