diff --git a/README.md b/README.md index 3f1a335..ecbb7c8 100644 --- a/README.md +++ b/README.md @@ -15,12 +15,10 @@ registry gateway, IPFS import, IPNS naming and admin API), used here as the imag `ghcr.io/yundera/ipcr`. - **[docs/forge.md](docs/forge.md)**: how it works, the trust model, findings, what was verified. -- **[Apps/IPCR-Forge](https://github.com/Yundera/ipcr/tree/main/Apps/IPCR-Forge)** and - **[Apps/IPCR-Forge-AIO](https://github.com/Yundera/ipcr/tree/main/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](docs/forge.md#two-listings-split-and-all-in-one). +- **[Apps/IPCR-Forge-AIO](https://github.com/Yundera/ipcr/tree/main/Apps/IPCR-Forge-AIO)** (in the IPCR repository, + with the rest of the IPCR app store): the Yundera AppStore listing (compose, rationale, seed). It + bundles Gitea, Radicle and IPCR, and pins this repository's image and the engine's. See + [docs/forge.md](docs/forge.md#one-listing-all-in-one). - **[forge/](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. @@ -36,5 +34,5 @@ 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](.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). +listing, `Apps/IPCR-Forge-AIO/docker-compose.yml` in the IPCR repository (the service, `forge-gate` +and the `forge-setup` step). diff --git a/docs/forge.md b/docs/forge.md index 0ccc254..4d7f0bb 100644 --- a/docs/forge.md +++ b/docs/forge.md @@ -6,8 +6,7 @@ naming, the admin API). The engine knows nothing about Gitea, Radicle or this fo the engine's image (`ghcr.io/yundera/ipcr`) and the contract listed in its [design notes](https://github.com/Yundera/ipcr/blob/main/docs/design.md#contract-with-add-ons). -How the forge (store listings: [Apps/IPCR-Forge](https://github.com/Yundera/ipcr/tree/main/Apps/IPCR-Forge) -and [Apps/IPCR-Forge-AIO](https://github.com/Yundera/ipcr/tree/main/Apps/IPCR-Forge-AIO), in the IPCR repository) +How the forge (store listing: [Apps/IPCR-Forge-AIO](https://github.com/Yundera/ipcr/tree/main/Apps/IPCR-Forge-AIO), in the IPCR repository) goes from `git push` to `docker pull`, why it is shaped this way, and what was learned building it. The listings' own security argument is in [rationale.md](https://github.com/Yundera/ipcr/blob/main/Apps/IPCR-Forge-AIO/rationale.md). @@ -62,39 +61,22 @@ anyone: docker pull ipcr.localhost:4767/ipns////:`. ## Findings @@ -448,5 +430,5 @@ New in v3 (tested locally with Gitea 1.27.3 and rad 1.10.1, 2026-10-04): - **act_runner** is pinned at 0.6.1, proven with Gitea 1.27.3. Upstream has moved on. - **Radicle → Gitea:** patches opened on Radicle could become pull requests. Not built. - **Store install:** test through the store, not only as a hand install. -- **Split listing:** the store has no dependencies between apps; removing the Gitea app leaves the - forge reporting `unreachable` on its page, nothing more. +- **Split-listing code:** `RUNNER_DIR` and the missing-Gitea / missing-Radicle states served only the + retired split listing; remove them in a cleanup.