Neko Pages¶
Neko Pages is Nekotopia's community directory — the equivalent of a Yellow Pages for the Torus mesh. Publish your service here and other connected members can find it; opt out and you stay private.
Where it lives
Sidebar: Neko Pages. Section ID: hosted-services-section. Loader: loadHostedServices(). Public-facing browse view: torus.html.
Two ways to list a service¶
Neko Pages aggregates listings from two sources:
- Manual listings — anything you add via the + Add Listing button on this page. A free-form name, FQDN, type, URL, and description. Useful for HTTP(S) apps, BBS systems, retro web servers, or any FQDN you want members to discover.
- Torus ZTNA listings — Torus ZTNA apps where you've ticked List on Neko Pages in the Torus ZTNA section appear here automatically as read-only rows. To remove one, untick the box in the ZTNA section.
The dashboard shows both with a Source badge (Manual / Torus ZTNA) so you can tell them apart.
DNS — pick the right zone¶
Listings are most useful when the FQDN is one Torus members can actually resolve. The four-zone taxonomy maps your listing to where its IP lives:
<name>.edge.nekotopia.io— points at your mesh IP (all tiers). Reachable only from inside Torus.<name>.dist.nekotopia.io— points at your nSolo IP (Plus + Pro). Resolvable publicly + on Torus.<name>.core.nekotopia.io— points into your nColo prefix (Pro only). Resolvable publicly + on Torus.
All four zones (including platform *.ring.nekotopia.io) resolve automatically inside Torus — the WireGuard config has the Torus DNS server baked in.
Before you add a listing, register the hostname in DNS Manager under the zone that matches the IP your service runs on. Without a DNS record, the FQDN you put in Neko Pages won't resolve for anyone.
Creating a manual listing¶
Click + Add Listing. Fields:
- Name — display label (e.g. "My Web App"). Shown next to the entry in the directory.
- FQDN — fully qualified domain name. Use the zone that matches your service's IP class (see above):
<name>.edge.nekotopia.iofor a mesh-IP service,<name>.dist.nekotopia.iofor nSolo,<name>.core.nekotopia.iofor nColo. - Type —
https/http/ssh/tcp. Drives the icon shown in Neko Pages. - URL — clickable link (defaults to
https://<fqdn>). - Description — one-liner shown under the entry. Keep it short.
Cap: 20 manual listings per user. Duplicate FQDNs (per owner) are rejected.
Removing a listing¶
- Manual — Edit / Delete buttons on the row.
- Torus ZTNA — click Manage in ZTNA, then untick List on Neko Pages on the ZTNA app card.
What members see in the public directory¶
The browse view at torus.html aggregates:
- Manual Neko Pages listings (from this section)
- Torus ZTNA apps with List on Neko Pages enabled
- Ring DNS entries flagged for directory inclusion
Each row shows: service icon, name, owner, status (Online/Offline from the branch health monitor), description, and connection info. IP/port for ZTNA-published apps is intentionally hidden — members reach you via Teleport, not directly.
Constraints¶
- Manual listings only — Neko Pages itself doesn't reverse-proxy anything for you. It's a directory, not a gateway. To gateway, use Torus ZTNA (Teleport-fronted apps) or Jumphost tunnel / nSolo Inbound (public ingress through nSolo).
- 20 manual listings max per user.
- One FQDN per listing per user.