migration: fill in the new box addresses, decide IPv6, add box specs
New box: 179.237.86.116 / 2001:1600:18:206::89, 4CPU/12GB/250GB, Ubuntu 26.04 LTS, one free snapshot slot, reverse DNS unset on both addresses. IPv6 exists, so the 18 AAAA records are repointed rather than deleted.
This commit is contained in:
1 parent
d1ff7fb0ff
commit
3a89c77cfc
2 files changed
+64
-47
No files matched your search
@@ -53,20 +53,24 @@ needed to restore are inside the thing being restored.
|
||||
- [ ] Confirm the backup target's S3 access key is available off-box. The agent host has
|
||||
`~/.hermes/security/backup_sites_backup.json` (0600) — check whether it carries the
|
||||
key; if not, retrieve it from the Infomaniak console.
|
||||
- [ ] New host capacity: `df -h`, `free -m`, `lsb_release -a`, `cloudron --version`.
|
||||
Must hold ~6 GB of app data plus Docker images and growth; check swap exists.
|
||||
- [ ] OS: same or newer Ubuntu than the old box. Cloudron install version must be ≥ the
|
||||
old box's (9.0.4).
|
||||
- [x] New host capacity: **4 CPU, 12 GB RAM, 250 GB disk** (given 2026-10-30) — ample for
|
||||
~6 GB of app data plus images. Old box used ~17 GB of 58 GB.
|
||||
- [ ] OS: the new box is **Ubuntu 26.04 LTS**. Confirm Cloudron 9.x supports 26.04 *before*
|
||||
installing — an unsupported release can be refused by the installer. Install version
|
||||
must be ≥ the old box's (9.0.4).
|
||||
- [ ] Confirm the Cloudron subscription can be moved to a new server.
|
||||
- [ ] **Decide the IPv6 question before anything else DNS-related.** The zone carries
|
||||
- [ ] **IPv6: DECIDED — repoint.** The new box has `2001:1600:18:206::89`, so all 18
|
||||
AAAA records move with the A records (§3 originally left this open). The zone carries
|
||||
**AAAA records on 18 hostnames** — everything that has an A record — all pointing to
|
||||
`2a02:4780:6e:83fd::1` (Hostinger's range). Counted 2026-10-30; the full list is in
|
||||
`dns-change-sheet.md`. This is 18 deletions or repoints, not a footnote. If the new box has IPv6, repoint them;
|
||||
if it does not, **delete the AAAA records** as part of the switch. Changing only
|
||||
the A records leaves every IPv6-capable client — including other Matrix
|
||||
homeservers and mail senders — still reaching the old box.
|
||||
- [ ] Ask Infomaniak to set **rDNS/PTR for the new IP to `my.inference.coop`** — mail
|
||||
deliverability depends on it.
|
||||
- [ ] Set **rDNS/PTR → `my.inference.coop` on BOTH `179.237.86.116` and
|
||||
`2001:1600:18:206::89`**. The console lists reverse DNS as unconfigured for both.
|
||||
Not time-sensitive — do it now. If IPv6 sending causes trouble later, disable v6
|
||||
egress for SMTP rather than removing the AAAA.
|
||||
- [ ] Open on the new box: **22, 80, 443, 465, 587, 993, and 25 inbound** (mail delivery
|
||||
— test from outside, e.g. `telnet my.inference.coop 25` once DNS moves; note that
|
||||
many networks block *outbound* 25, so a closed result from inside another server is
|
||||
@@ -169,7 +173,6 @@ needed to restore are inside the thing being restored.
|
||||
- Whether the S3 access key is in the off-box JSON or only inside Cloudron.
|
||||
- Whether any provider API key is bound to our current IP.
|
||||
- Whether the subscription permits a server move.
|
||||
- Whether the new Infomaniak box has IPv6 at all (decides the AAAA action).
|
||||
|
||||
## 8. Pitfalls this server has already produced
|
||||
|
||||
|
||||
+53
-39
@@ -17,43 +17,43 @@ every change below is manual. **Nothing here is time-sensitive except the TTL lo
|
||||
|
||||
| Name | Type | Current | Set to |
|
||||
|---|---|---|---|
|
||||
| `chat-legacy.inference.coop` | A | `179.199.135.72` | `<new Infomaniak IPv4>` |
|
||||
| `chat.inference.coop` | A | `179.199.135.72` | `<new Infomaniak IPv4>` |
|
||||
| `cloud.inference.coop` | A | `179.199.135.72` | `<new Infomaniak IPv4>` |
|
||||
| `dashboard.inference.coop` | A | `179.199.135.72` | `<new Infomaniak IPv4>` |
|
||||
| `docs.inference.coop` | A | `179.199.135.72` | `<new Infomaniak IPv4>` |
|
||||
| `email.inference.coop` | A | `179.199.135.72` | `<new Infomaniak IPv4>` |
|
||||
| `forum.inference.coop` | A | `179.199.135.72` | `<new Infomaniak IPv4>` |
|
||||
| `gateway.inference.coop` | A | `179.199.135.72` | `<new Infomaniak IPv4>` |
|
||||
| `git.inference.coop` | A | `179.199.135.72` | `<new Infomaniak IPv4>` |
|
||||
| `inference.coop` | A | `179.199.135.72` | `<new Infomaniak IPv4>` |
|
||||
| `matrix.inference.coop` | A | `179.199.135.72` | `<new Infomaniak IPv4>` |
|
||||
| `my.inference.coop` | A | `179.199.135.72` | `<new Infomaniak IPv4>` |
|
||||
| `newsletter.inference.coop` | A | `179.199.135.72` | `<new Infomaniak IPv4>` |
|
||||
| `panel.inference.coop` | A | `179.199.135.72` | `<new Infomaniak IPv4>` |
|
||||
| `portal.inference.coop` | A | `179.199.135.72` | `<new Infomaniak IPv4>` |
|
||||
| `search.inference.coop` | A | `179.199.135.72` | `<new Infomaniak IPv4>` |
|
||||
| `status.inference.coop` | A | `179.199.135.72` | `<new Infomaniak IPv4>` |
|
||||
| `vault.inference.coop` | A | `179.199.135.72` | `<new Infomaniak IPv4>` |
|
||||
| `www.inference.coop` | A | `179.199.135.72` | `<new Infomaniak IPv4>` |
|
||||
| `chat-legacy.inference.coop` | AAAA | `2a02:4780:6e:83fd::1` | `<new IPv6 — or delete every AAAA>` |
|
||||
| `chat.inference.coop` | AAAA | `2a02:4780:6e:83fd::1` | `<new IPv6 — or delete every AAAA>` |
|
||||
| `cloud.inference.coop` | AAAA | `2a02:4780:6e:83fd::1` | `<new IPv6 — or delete every AAAA>` |
|
||||
| `dashboard.inference.coop` | AAAA | `2a02:4780:6e:83fd::1` | `<new IPv6 — or delete every AAAA>` |
|
||||
| `docs.inference.coop` | AAAA | `2a02:4780:6e:83fd::1` | `<new IPv6 — or delete every AAAA>` |
|
||||
| `email.inference.coop` | AAAA | `2a02:4780:6e:83fd::1` | `<new IPv6 — or delete every AAAA>` |
|
||||
| `forum.inference.coop` | AAAA | `2a02:4780:6e:83fd::1` | `<new IPv6 — or delete every AAAA>` |
|
||||
| `gateway.inference.coop` | AAAA | `2a02:4780:6e:83fd::1` | `<new IPv6 — or delete every AAAA>` |
|
||||
| `git.inference.coop` | AAAA | `2a02:4780:6e:83fd::1` | `<new IPv6 — or delete every AAAA>` |
|
||||
| `inference.coop` | AAAA | `2a02:4780:6e:83fd::1` | `<new IPv6 — or delete every AAAA>` |
|
||||
| `matrix.inference.coop` | AAAA | `2a02:4780:6e:83fd::1` | `<new IPv6 — or delete every AAAA>` |
|
||||
| `my.inference.coop` | AAAA | `2a02:4780:6e:83fd::1` | `<new IPv6 — or delete every AAAA>` |
|
||||
| `newsletter.inference.coop` | AAAA | `2a02:4780:6e:83fd::1` | `<new IPv6 — or delete every AAAA>` |
|
||||
| `panel.inference.coop` | AAAA | `2a02:4780:6e:83fd::1` | `<new IPv6 — or delete every AAAA>` |
|
||||
| `portal.inference.coop` | AAAA | `2a02:4780:6e:83fd::1` | `<new IPv6 — or delete every AAAA>` |
|
||||
| `search.inference.coop` | AAAA | `2a02:4780:6e:83fd::1` | `<new IPv6 — or delete every AAAA>` |
|
||||
| `status.inference.coop` | AAAA | `2a02:4780:6e:83fd::1` | `<new IPv6 — or delete every AAAA>` |
|
||||
| `vault.inference.coop` | AAAA | `2a02:4780:6e:83fd::1` | `<new IPv6 — or delete every AAAA>` |
|
||||
| `chat-legacy.inference.coop` | A | `179.199.135.72` | `179.237.86.116` |
|
||||
| `chat.inference.coop` | A | `179.199.135.72` | `179.237.86.116` |
|
||||
| `cloud.inference.coop` | A | `179.199.135.72` | `179.237.86.116` |
|
||||
| `dashboard.inference.coop` | A | `179.199.135.72` | `179.237.86.116` |
|
||||
| `docs.inference.coop` | A | `179.199.135.72` | `179.237.86.116` |
|
||||
| `email.inference.coop` | A | `179.199.135.72` | `179.237.86.116` |
|
||||
| `forum.inference.coop` | A | `179.199.135.72` | `179.237.86.116` |
|
||||
| `gateway.inference.coop` | A | `179.199.135.72` | `179.237.86.116` |
|
||||
| `git.inference.coop` | A | `179.199.135.72` | `179.237.86.116` |
|
||||
| `inference.coop` | A | `179.199.135.72` | `179.237.86.116` |
|
||||
| `matrix.inference.coop` | A | `179.199.135.72` | `179.237.86.116` |
|
||||
| `my.inference.coop` | A | `179.199.135.72` | `179.237.86.116` |
|
||||
| `newsletter.inference.coop` | A | `179.199.135.72` | `179.237.86.116` |
|
||||
| `panel.inference.coop` | A | `179.199.135.72` | `179.237.86.116` |
|
||||
| `portal.inference.coop` | A | `179.199.135.72` | `179.237.86.116` |
|
||||
| `search.inference.coop` | A | `179.199.135.72` | `179.237.86.116` |
|
||||
| `status.inference.coop` | A | `179.199.135.72` | `179.237.86.116` |
|
||||
| `vault.inference.coop` | A | `179.199.135.72` | `179.237.86.116` |
|
||||
| `www.inference.coop` | A | `179.199.135.72` | `179.237.86.116` |
|
||||
| `chat-legacy.inference.coop` | AAAA | `2a02:4780:6e:83fd::1` | `2001:1600:18:206::89` |
|
||||
| `chat.inference.coop` | AAAA | `2a02:4780:6e:83fd::1` | `2001:1600:18:206::89` |
|
||||
| `cloud.inference.coop` | AAAA | `2a02:4780:6e:83fd::1` | `2001:1600:18:206::89` |
|
||||
| `dashboard.inference.coop` | AAAA | `2a02:4780:6e:83fd::1` | `2001:1600:18:206::89` |
|
||||
| `docs.inference.coop` | AAAA | `2a02:4780:6e:83fd::1` | `2001:1600:18:206::89` |
|
||||
| `email.inference.coop` | AAAA | `2a02:4780:6e:83fd::1` | `2001:1600:18:206::89` |
|
||||
| `forum.inference.coop` | AAAA | `2a02:4780:6e:83fd::1` | `2001:1600:18:206::89` |
|
||||
| `gateway.inference.coop` | AAAA | `2a02:4780:6e:83fd::1` | `2001:1600:18:206::89` |
|
||||
| `git.inference.coop` | AAAA | `2a02:4780:6e:83fd::1` | `2001:1600:18:206::89` |
|
||||
| `inference.coop` | AAAA | `2a02:4780:6e:83fd::1` | `2001:1600:18:206::89` |
|
||||
| `matrix.inference.coop` | AAAA | `2a02:4780:6e:83fd::1` | `2001:1600:18:206::89` |
|
||||
| `my.inference.coop` | AAAA | `2a02:4780:6e:83fd::1` | `2001:1600:18:206::89` |
|
||||
| `newsletter.inference.coop` | AAAA | `2a02:4780:6e:83fd::1` | `2001:1600:18:206::89` |
|
||||
| `panel.inference.coop` | AAAA | `2a02:4780:6e:83fd::1` | `2001:1600:18:206::89` |
|
||||
| `portal.inference.coop` | AAAA | `2a02:4780:6e:83fd::1` | `2001:1600:18:206::89` |
|
||||
| `search.inference.coop` | AAAA | `2a02:4780:6e:83fd::1` | `2001:1600:18:206::89` |
|
||||
| `status.inference.coop` | AAAA | `2a02:4780:6e:83fd::1` | `2001:1600:18:206::89` |
|
||||
| `vault.inference.coop` | AAAA | `2a02:4780:6e:83fd::1` | `2001:1600:18:206::89` |
|
||||
|
||||
`www` has no app behind it in the Cloudron inventory — confirm whether it is an alias,
|
||||
a redirect, or stale before touching it.
|
||||
@@ -70,8 +70,9 @@ a redirect, or stale before touching it.
|
||||
## Sequence (see the main runbook §4)
|
||||
|
||||
1. A day early: set every A and AAAA TTL to 300 s.
|
||||
2. At cutover: point A records at the new IP; repoint or **delete** every AAAA record
|
||||
(decide in advance — an IPv6-capable client or homeserver left on Hostinger's address
|
||||
2. At cutover: point A records at **`179.237.86.116`**; repoint every AAAA record to **`2001:1600:18:206::89`**
|
||||
(the new box has IPv6, so this is a repoint, not a delete — but it must happen in
|
||||
the same pass: an IPv6-capable client or homeserver left on Hostinger's address
|
||||
reaches the old box even after the A switch).
|
||||
3. Verify with the resolver set below, not one resolver.
|
||||
|
||||
@@ -80,3 +81,16 @@ for h in inference.coop my.inference.coop matrix.inference.coop gateway.inferenc
|
||||
dig +short A $h @1.1.1.1; dig +short A $h @8.8.8.8; dig +short AAAA $h @1.1.1.1
|
||||
done
|
||||
```
|
||||
|
||||
## The new box (given 2026-10-30)
|
||||
|
||||
- **IPv4** `179.237.86.116` · **IPv6** `2001:1600:18:206::89`
|
||||
- 4 CPU · 12 GB RAM · **250 GB disk** · unlimited traffic
|
||||
- **1 snapshot slot free** — take a snapshot *after* a clean restore and *before* the DNS
|
||||
switch, so a bad restore is a revert rather than a rebuild.
|
||||
- Location Plan-les-Ouates, Switzerland (same provider as the backup target, so the
|
||||
restore reads from inside Infomaniak's network).
|
||||
- Ubuntu **26.04 LTS** — confirm Cloudron 9.x supports it before installing.
|
||||
- **Reverse DNS is listed as "configure" for BOTH addresses.** Set PTR → `my.inference.coop`
|
||||
on the IPv4 *and* the IPv6. A sending IP without matching PTR is the classic cause of
|
||||
fresh-IP mail landing in spam, and DMARC here is `p=reject` on our own domain.
|
||||
Reference in new issue
Block a user