Docs site
docs.steelmoth.com is represented in this repo as an nginx vhost template
at ops/nginx/docs.steelmoth.com.conf. The config redirects HTTP to HTTPS,
preserves ACME challenge handling, then proxies / to the dashboard wiki route
at /docs/wiki and /<page-id> to /docs/wiki/<page-id> on the dashboard
origin at 127.0.0.1:3013. It also proxies /login, /api/auth/*,
/api/v1/*, /_next/*, /manifest.webmanifest, /icon.svg,
/icon-maskable.svg, /steelmoth-logo.png, /apple-touch-icon.png,
/sw.js, /apple-icon*, and /favicon.ico so docs-host auth, PWA install
metadata, official logo assets, and runtime wiki data use the same
dashboard/web-chat stack.
The vhost keeps canonical short links by redirecting /docs/wiki to / and
/docs/wiki/<page-id> to /<page-id>/.
The docs vhost includes the shared dashboard proxy snippet, so live docs access depends on the dashboard service and web-chat API wiki endpoints, not on a separate static document root.
The proxied dashboard route still uses dashboard auth, and the underlying
/v1/wiki/* API is admin-only. The nginx vhost does not make the wiki an
anonymous static site by itself.
For docs-host login continuity, dashboard auth allows redirects only to the
current origin or HTTPS Steelmoth hosts under steelmoth.com,
and steelmoth.ai; login actions on docs.steelmoth.com
redirect back to docs root. The dashboard deploy script
recreates the private dashboard service and the standalone public dashboard
container before comparing CSS fingerprints; when recreating the public
container, it can override AUTH_URL/NEXTAUTH_URL and AUTH_COOKIE_DOMAIN
via STEELMOTH_PUBLIC_DASHBOARD_AUTH_URL and
STEELMOTH_PUBLIC_DASHBOARD_AUTH_COOKIE_DOMAIN.
The dashboard docs host itself is host-aware: layout.tsx enables the
PwaServiceWorker in docs-host mode, and manifest.ts returns a docs-specific
manifest profile (name, description, and Steelmoth moth app icons).
The same service worker also serves the authenticated dashboard host; it
precaches only the static /offline fallback and public icon/logo/brand assets,
uses network-first navigation, and explicitly bypasses API, login, and OAuth
paths. This keeps the private/admin-only wiki installable as a PWA without
persisting protected wiki or API responses in browser caches.
The visible docs/wiki page uses dashboard/public/steelmoth-logo.png, now a
square moth app icon, beside the Steelmoth Wiki title. The wiki header also
exposes the existing dashboard theme toggle so admins can switch between dark
and light display modes while reading the wiki.
Content Source
Section titled “Content Source”The wiki source of truth is docs/system-wiki/. The dashboard reads pages from
the repo through /v1/wiki/*, so public docs exposure should only be enabled
after python3 scripts/check-system-wiki.py passes and the operator decides
the content is safe for public exposure.
Do not publish secret-bearing files, .env*, run artifacts, local auth files,
or operational state. The wiki manifest records excluded source path patterns
for wiki maintenance; the nginx vhost is only a proxy layer and does not
enforce repo-aware exclusions.
Maintenance Notes
Section titled “Maintenance Notes”- Update this page when the docs vhost path, TLS path, dashboard origin, proxied routes, or wiki validation command changes.
- Run nginx syntax validation on the target host after installing or symlinking
ops/nginx/docs.steelmoth.com.conf. - Public exposure still depends on DNS, certificate availability, dashboard availability, web-chat API availability, and host-level nginx layout outside this repo.
Known Unknowns
Section titled “Known Unknowns”- The config currently uses the existing dashboard certificate path until a
dedicated
docs.steelmoth.comorigin certificate is issued.

