Live zone inventory: 19 A + 18 AAAA records, all TTL 3600 (the lower values seen on some answers are cache countdowns). The AAAA scope was understated in the runbook - it is 18 hostnames, not 3. No CAA records, so no CA restriction to update. The /var/lib/nextcloud host mount resolves to 3 MB of regenerable thumbnails, so it is no longer an open unknown.
5.3 KiB
5.3 KiB
DNS change sheet — Cloudron migration (Hostinger → Infomaniak)
Prepared 2026-10-30 from a live zone inventory (zone_inventory.json, 41 records).
Registrar: yoursrs.com (NS for domains.coop). Cloudron cannot manage these records;
every change below is manual. Nothing here is time-sensitive except the TTL lowering.
Counts, so the switch is not underestimated
- 19 A records →
179.199.135.72 - 18 AAAA records →
2a02:4780:6e:83fd::1(Hostinger's range) - 1 MX, 1 SPF TXT, 1 DKIM TXT, 1 DMARC TXT
- No CAA records, so no certificate-authority restriction to update.
- Configured TTL is 3600 s on every record. (Lower these a day early; the 1090–1204 s seen on some answers are cache countdowns, not zone values.)
Records to change at cutover
| 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> |
www has no app behind it in the Cloudron inventory — confirm whether it is an alias,
a redirect, or stale before touching it.
Records that must NOT change, but must be re-verified after the restore
| Name | Type | Value | Why |
|---|---|---|---|
inference.coop |
MX | 10 my.inference.coop. |
Follows the A record; no MX edit needed. |
inference.coop |
TXT (SPF) | v=spf1 a:my.inference.coop ~all |
Hostname-based — survives the IP change. |
cloudron._domainkey |
TXT (DKIM) | v=DKIM1; t=s; p=MIGfMA0… |
Must match the key inside the restored mail app's data. Mismatch + DMARC below = silently discarded mail. |
_dmarc |
TXT | v=DMARC1; p=reject; pct=100 |
Reject policy: misaligned mail is DISCARDED, not junked. |
Sequence (see the main runbook §4)
- A day early: set every A and AAAA TTL to 300 s.
- 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 reaches the old box even after the A switch).
- Verify with the resolver set below, not one resolver.
for h in inference.coop my.inference.coop matrix.inference.coop gateway.inference.coop; do
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