Record the DNS cutover as complete; flag the old box as an unresolved exposure (#5)

This commit was merged in pull request #5.
This commit is contained in:
inference-bot committed 2026-11-04 14:49:04 +00:00
commit 835aed2852
2 files changed
+49 -23

No files matched your search

+15
View File
@@ -56,6 +56,21 @@ answers proves nothing about whether a record exists. At least two listed
records turned out not to exist, and the real record inventory is only visible records turned out not to exist, and the real record inventory is only visible
in the registrar's own list. in the registrar's own list.
## Known open items — recorded, not hidden
These are genuinely unresolved; a tidy document that omits them would be wrong.
- **The old box `179.199.135.72` is still alive and internet-exposed** (22/80/443/587/993
open), holding old data and config. Nothing in DNS points at it, so it serves no
member traffic — but it needs an operator decision: **shut it down or firewall it**.
Do not act on it without the operator's word. See `migration/cloudron-server-migration.md` (addendum).
- **CI is not green.** The Woodpecker agent is healthy but the server answers its
job-collection stream with HTTP 500, so no pipeline can run. See `maintenance/woodpecker-ci.md`.
- **The CI agent image source (`/home/ubuntu/repos/woodpecker-agent`) has no git
remote** — it exists only on the agent host.
- **Member mailbox contents after the migration** are still unconfirmed (needs a
real IMAP login).
## No secrets here ## No secrets here
Audited 2026-11-01, including the full commit history: no credentials, tokens, Audited 2026-11-01, including the full commit history: no credentials, tokens,
+34 -23
View File
@@ -529,36 +529,47 @@ state at cutover, not today.
| Woodpecker CI server | `ci.inference.coop` | `4984f95e-0c0a-4af3-9ce1-4ca4f3e8483d` | | Woodpecker CI server | `ci.inference.coop` | `4984f95e-0c0a-4af3-9ce1-4ca4f3e8483d` |
| Woodpecker CI agent (custom) | `ci-agent.inference.coop` | `5ac63873-cf2c-4ad9-acd6-81dc0e016c83` | | Woodpecker CI agent (custom) | `ci-agent.inference.coop` | `5ac63873-cf2c-4ad9-acd6-81dc0e016c83` |
## The DNS "split" is resolved — no hostname is served by the old box ## The DNS cutover is COMPLETE — no hostname is served by the old box
At one point `chat.inference.coop` and `portal.inference.coop` were observed still At one point `chat.inference.coop` and `portal.inference.coop` were *reported* as
resolving to the **old** box (`179.199.135.72`) while `gateway`/`my`/`docs` were on still resolving to the **old** box (`179.199.135.72`). **That observation was
the **new** box (`179.237.86.116`). **As of 2026-11-04 there is no such split:** stale and the split does not exist.** Verified 2026-11-04 against an external
every hostname — `chat`, `portal`, `gateway`, `my`, `docs`, `ci`, `ci-agent`, resolver (Cloudflare, `@1.1.1.1`): **every** hostname — apex, `my`, `chat`,
`matrix`, `git`, `www` and the apex — resolves to the **new** box. `portal`, `gateway`, `docs`, `ci`, `newsletter`, `git` — resolves to the **new**
box `179.237.86.116` with **both A and AAAA**
(`2001:1600:18:206::89`). No hostname resolves to the old box, and nothing in DNS
points at it. `chat.inference.coop` serves LibreChat and `portal.inference.coop`
returns the portal from the new box.
The zone is **wildcarded**, so a resolving name proves nothing by itself. The The zone is **wildcarded**, so a resolving name proves nothing on its own — but a
decisive fact: a **made-up** hostname (`zzznope.inference.coop`) also answers the made-up hostname (`zzznope.inference.coop`) also answers the **new** box at the
**new** box `179.237.86.116` at the authoritative nameservers (`ns1.yoursrs.com`). authoritative nameservers, so the wildcard itself now points at the new box.
That means the **wildcard itself now points at the new box**, so no name is being
served by the old box via the wildcard either.
## The old box still exists (rollback), and serves nothing ## ⚠️ UNRESOLVED (operator decision): the old box is still alive and internet-exposed
- `179.199.135.72` is **still powered on** and answers on 22/80/443/587/993, **but `179.199.135.72` is **powered on, reachable from the internet, and unaltered.** This
it hosts no running app.** A request with `Host: chat.inference.coop` returns is not "a spare kept for rollback" — it is a **decommissioned server still running
Cloudron's **"app down / Not Found" fallback page**, and its TLS certificate has and still exposed.**
an **empty subject** — the signature of a Cloudron whose vhost's app is stopped,
exactly as documented ("powered on with apps stopped"). - **Open to the internet (verified 2026-11-04):** ports **22, 80, 443, 587, 993**
- **No DNS reference points at it**, so it receives no real traffic. answer. (3306/5432/8080 are closed.)
- **Decommission is still pending** — this is the one open item from the cutover - It answers HTTPS **for any Host header** with a **generic Cloudron-served page**
that has not happened. Its backup schedule must remain **disabled** while it is (its fallback / "app down" page, empty-subject certificate) rather than a real
kept (two boxes on one S3 bucket interleave and prune each other's backups). app — because its apps are stopped.
- **It still holds whatever old data and configuration it had** — the old Cloudron
platform, its app data, and its host config are all present on the disk.
- **Nothing in DNS points to it**, so it serves **no member traffic** — the exposure
is the open ports and the retained data/config, not live traffic.
**Decision needed from the operator:** either **shut it down**, or **firewall it**
(close all but what is genuinely needed) if it is being kept as a rollback. It is
NOT the steward's to act on: **do not shut it down or change anything on it without
the operator's word.** Its backup schedule must stay **disabled** while it is kept
(two boxes on one S3 bucket interleave and prune each other's backups).
## Still unresolved / for the operator ## Still unresolved / for the operator
- **Decommission the old box** (`179.199.135.72`) when rollback is no longer - **The old box's exposure** — see above. Shut down or firewall.
wanted, after confirming the new box's backups are proven.
- **Member mailbox contents** — the long-standing unknown from §7 (whether - **Member mailbox contents** — the long-standing unknown from §7 (whether
members' mail is inside the Cloudron backup) still needs a real IMAP login to members' mail is inside the Cloudron backup) still needs a real IMAP login to
confirm. confirm.