From c502ff0e0abdb57483bff97a23615f20f1a9246a Mon Sep 17 00:00:00 2001 From: archipelago Date: Sun, 2 Aug 2026 08:45:35 -0400 Subject: [PATCH] docs(todo): migrate VPS2 IP to domain across registry references MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 98 operational files still carry 146.59.87.168 — the domain was only adopted for the git remote, not for container registry references. Bulk is app manifests' image: lines, plus .gitmodules, both CI workflows, the signed catalog.json, and two Android companion files with compiled constants. The 117 hits in .planning/ are historical records and stay. Not a find-and-replace: the domain serves Gitea over HTTPS:443 while images are pulled from :3000 over plain HTTP, and podman treats host:3000 and domain as different registries — so every node re-pulls under the new name and any node that can't resolve or trust the new host fails to pull. It also invalidates the signed catalog (needs a re-sign ceremony) and the APK ships compiled constants. Rollout order: registry serving on the domain → manifests → catalog re-sign → APK rebuild. Steps 2-4 are actively breaking until step 1 holds. Analysis from the concurrent agent's session before it ended; recorded so it is not lost. Co-Authored-By: Claude Opus 5 (1M context) --- ...ps2-ip-to-domain-in-registry-references.md | 59 +++++++++++++++++++ 1 file changed, 59 insertions(+) create mode 100644 .planning/todos/pending/2026-08-02-migrate-vps2-ip-to-domain-in-registry-references.md diff --git a/.planning/todos/pending/2026-08-02-migrate-vps2-ip-to-domain-in-registry-references.md b/.planning/todos/pending/2026-08-02-migrate-vps2-ip-to-domain-in-registry-references.md new file mode 100644 index 00000000..2efdc326 --- /dev/null +++ b/.planning/todos/pending/2026-08-02-migrate-vps2-ip-to-domain-in-registry-references.md @@ -0,0 +1,59 @@ +--- +created: 2026-08-02T12:30:00.000Z +title: Migrate VPS2 IP (146.59.87.168) to its domain across registry references +area: infra +severity: major +files: + - apps/*/manifest.yml (the bulk — every `image:` line) + - .gitmodules + - .github/workflows/*.yml (both) + - app-catalog/catalog.json (signed — changing it forces a re-sign) + - Android/**/FipsPreferences.kt, Android/**/PartyScreen.kt (compiled constants) +--- + +## Problem + +**98 operational files still carry the bare IP `146.59.87.168`.** The domain +(`source.archipelago-foundation.org`) was only ever adopted for the *git remote* — the IP is +still baked into every **container registry reference**, which is a different thing entirely: + +``` +image: 146.59.87.168:3000/lfg2025/gatewayd:v0.10.0 +``` + +Plus `.gitmodules`, both CI workflow files, `app-catalog/catalog.json`, and the Android +companion (`FipsPreferences.kt`, `PartyScreen.kt`). A further **117 hits live in `.planning/` +docs — those are historical records and must stay as they are.** + +An IP in every manifest is exactly the kind of thing that bites when the VPS moves. It is also +conspicuous in a public repo, so the open-source-readiness work will want it done +(see `docs/OPEN-SOURCE-READINESS-PLAN.md`). + +## Why this is not a find-and-replace + +1. **The registry has to actually answer on the domain.** `source.archipelago-foundation.org` + currently serves Gitea over **HTTPS on 443**, while images are pulled from **:3000 over plain + HTTP**. Podman treats `host:3000` and `domain` as *different registries*, so changing the + string means every node re-pulls every image under the new name — and any node that cannot + resolve or trust the new host fails to pull at all. +2. **It invalidates the signed catalog.** `app-catalog/catalog.json` carries image references, + so changing them breaks the signature and forces a regenerate-and-re-sign — which needs the + release mnemonic, same as a release. +3. **The Android companion ships compiled constants**, so it needs its own APK rebuild to follow. + +## Solution + +Its own plan with a real rollout order — **not** something to slip into a release: + +1. Registry serving on the domain (TLS, and a decision on whether images move to 443 or the + domain also exposes :3000) +2. Manifests +3. Catalog regenerate + re-sign (mnemonic ceremony) +4. APK rebuild + +Sequencing matters because steps 2–4 are useless — and actively breaking — until step 1 holds. + +## Notes + +Analysis produced by the concurrent companion/release agent on 2026-08-02 before its session +ended; recorded here so it is not lost. It had not touched any of the work.