DNS manager¶
Publish your own hostnames against IPs Nekotopia has allocated to you. The platform auto-manages the boring stuff (ip-X-X-X-X.<region>.nekotopia.io defaults, your mesh hostname, PTR records for every allocated IP); you only see DNS Manager when you have something you can customise.
Where it lives
Sidebar: DNS manager (under Edge & DNS). Section ID: dns-manager-section. Loader: loadDnsManager().
What's auto-managed (you don't touch this)¶
The moment you're allocated a Torus mesh IP, nSolo IP, or nColo prefix, the platform writes the corresponding DNS records on your behalf:
| Allocation | Auto-record |
|---|---|
| Torus mesh IP (every member) | <username>.edge.nekotopia.io → your mesh IP (internal, dnsmasq only) |
| nSolo IP (Plus + Pro) | ip-X-X-X-X.<region>.nekotopia.io forward A + PTR (public, Route53) |
| nColo prefix (Pro) | Forward A + PTR for every IP in the prefix (public, Route53) |
When you release any of these, the records are removed automatically.
The platform infrastructure (*.ring.nekotopia.io — wiki, necho, browse, wrp, jump, gateway, …) is operator-owned and lives in a separate platform zone. See Ring DNS.
What you can customise¶
The DNS Manager UI shows one card per allocation. Inside each card you can:
- Add a custom forward hostname — pick a memorable name (e.g.
myapp.dist.nekotopia.io) pointing at the same IP. Submitted records are committed straight to Route53 + dnsmasq. - Override the reverse PTR — tick the Use as PTR checkbox on any custom forward record to make the PTR point at it instead of the default
ip-X-X-X-X.<region>.nekotopia.io. Useful for outbound mail (SPF/reverse-match), reputation services, anything that does PTR lookups.
The PTR is mutually exclusive per IP — only one custom record at a time can hold it. Ticking one auto-clears the others. Unticking the last one restores the regional default.
The three editable zones¶
| Zone | Who | Holds | Visibility |
|---|---|---|---|
dist.nekotopia.io |
Plus + Pro (with nSolo) | Records pointing at your nSolo IP | Public + Torus |
core.nekotopia.io |
Pro only (with nColo) | Records pointing into your nColo prefix | Public + Torus |
(edge.nekotopia.io is auto-managed and not editable in the UI.) |
The card for each zone only appears when you have the matching allocation. Basic members with no nSolo/nColo see an empty state pointing to the Torus tiers page.
Adding a record¶
In the per-allocation card, type a hostname in the inline form (the suffix .dist.nekotopia.io or .core.nekotopia.io is appended automatically) and click + Add. The record is created and committed in one step — no separate draft → commit flow. Live in Route53 + dnsmasq within a few seconds.
Editing / deleting¶
Inline buttons in the records table. Edits go back through the same draft → commit flow. Deleting a propagated record also removes it from Route53 (where applicable).
What's resolvable where¶
Inside Torus (DNS = your hub's dnsmasq):
ring.nekotopia.io → yes
edge.nekotopia.io → yes (member mesh IPs)
dist.nekotopia.io → yes (member nSolo IPs)
core.nekotopia.io → yes (member nColo IPs)
Outside Torus (public DNS / Route53):
ring.nekotopia.io → no
edge.nekotopia.io → no
dist.nekotopia.io → yes
core.nekotopia.io → yes
Reachability is a separate question:
- edge only — mesh-only. You need to be on Torus to actually hit those IPs.
- dist — you can resolve it from anywhere on the internet; whether you can reach the IP depends on what's listening (typically nothing unless you also have nSolo Inbound).
- core — same as dist, but the underlying IP is inside your routed nColo prefix, so anything in your prefix that's listening is reachable.
Hostname rules¶
- Lowercase, alphanumeric + dash, max ~32 chars
- Reserved prefixes (blocked across all zones):
www,mail,smtp,pop,imap,ftp,ns,ns1,ns2,dns,admin,root,test,dev,staging,prod,localhost,local,nekotopia,torus,teleport,api,app,cdn,static. Theip-X-X-X-Xpattern is also reserved (used for platform-managed defaults). - One zone per record —
myapp.dist.nekotopia.ioandmyapp.core.nekotopia.ioare different records; you can hold both if your tier permits - Duplicate (same name + type + zone) is rejected at create
Tier downgrades¶
If you drop a tier, records in zones you've lost are archived, not silently deleted. The downgrade confirmation modal lists exactly which records will be archived. They survive in archived_dns.json for 90 days; if you re-upgrade within that window, the DNS Manager shows a per-zone Restore archived records disclosure. Restoring re-validates each record against your current allocations — stale values (e.g. you got a different nColo prefix this time) fail with a clear error rather than creating zombie records.
See also¶
- Ring DNS — the platform-infra zone and the dnsmasq machinery behind it
- Neko Pages — listing services you publish under your DNS hostnames
- nSolo / nColo — the IP allocations that the dist and core zones point at