From d677f6f958bfe496391f56cc2c20e029a9cffaec Mon Sep 17 00:00:00 2001 From: archipelago Date: Thu, 30 Jul 2026 18:46:39 -0400 Subject: [PATCH] docs: capture todo - migrate source references to HTTPS domain --- ...grate-source-references-to-https-domain.md | 30 +++++++++++++++++++ 1 file changed, 30 insertions(+) create mode 100644 .planning/todos/pending/2026-07-30-migrate-source-references-to-https-domain.md diff --git a/.planning/todos/pending/2026-07-30-migrate-source-references-to-https-domain.md b/.planning/todos/pending/2026-07-30-migrate-source-references-to-https-domain.md new file mode 100644 index 00000000..0098a0d3 --- /dev/null +++ b/.planning/todos/pending/2026-07-30-migrate-source-references-to-https-domain.md @@ -0,0 +1,30 @@ +--- +created: 2026-07-30T22:19:31.770Z +title: Migrate all source references to https://source.archipelago-foundation.org (stop exposing VPS2 IP) +area: security +severity: blocker +files: + - scripts/self-update.sh + - scripts/first-boot-containers.sh + - scripts/create-release.sh + - scripts/create-release-manifest.sh + - scripts/image-versions.sh + - scripts/generate-app-catalog.sh + - scripts/deploy-bitcoin-knots.sh + - scripts/validate-app-manifest.sh + - .gitea/workflows/demo-images.yml + - release-manifest.json +--- + +## Problem + +Dorian (2026-07-30, critical): the Gitea source host is referenced everywhere as raw `http://146.59.87.168:3000` — plain HTTP, VPS2's bare IP exposed in shipped artifacts (release-manifest.json, self-update.sh, first-boot scripts run on every node) and CI workflows. Should be `https://source.archipelago-foundation.org` so the IP isn't baked into anything and transport is TLS. + +State verified 2026-07-30: DNS already resolves (A → 146.59.87.168), openresty serves HTTPS with a valid cert, and Gitea works through it (`git ls-remote https://source.archipelago-foundation.org/lfg2025/archy.git` succeeds). The local `gitea-ai` remote was already switched to the HTTPS domain. Remaining work is the reference migration + verification. + +## Solution + +- Replace `http://146.59.87.168:3000` with `https://source.archipelago-foundation.org` across the files listed (grep for `146.59.87.168` repo-wide; ~10 files incl. release/OTA/self-update/first-boot paths). +- CAREFUL: self-update.sh and release-manifest.json drive OTA on live nodes — a wrong URL bricks updates. Verify each rewritten URL responds (curl) before commit; test self-update flow on a dev node before fleet rollout; keep migration non-destructive per repo invariants. +- Check whether older deployed nodes need the IP kept as a fallback during transition (nodes updating FROM an old release still hit the IP URL — the new manifest must be reachable at the old URL too until the fleet has rolled past it). +- Also audit for the raw IP in docs/ and any node-side configs.