Skip to content

infra: align Pebble origins with Nebutra platform hosts (docs/api/status/auth/sso) #41

Description

@TsekaLuk

Summary

Align Pebble product URLs and ROADMAP “product origin” language with live Nebutra infrastructure. Platform topology is SoT; pebble.nebutra.com / *.pebble.nebutra.com in ROADMAP are aspirational and currently lack DNS.

Index (updated): docs/reference/infra-index.md
(If not yet on main, use the file in-tree.)

Live platform topology

Cloudflare (edge :443)
  → Vercel (Git-native frontend: landing, docs)
  → ECS 106.15.4.31 (origin: app / auth / api / sso / router / forge)
Host Role Port
docs.nebutra.com Docs (Vercel) 443
api.nebutra.com API (CF → ECS) 443
status.nebutra.com Status 443
app.nebutra.com App RP 443
auth.nebutra.com Login / session 443
sso.nebutra.com OIDC issuer (no path prefix, do not casually migrate) 443
www.nebutra.com / landing Brand 443
pebble.nebutra.com No DNS today; optional later brand CNAME only
Staging pebble subdomain None — use env/secrets/projects

Auth constraints (platform)

  • Session held on auth.nebutra.com
  • app.nebutra.com is RP; unauthenticated → auth…/sign-in?returnTo=…
  • AUTH_COOKIE_DOMAIN=.nebutra.com; both ends BETTER_AUTH_SECRET must match
  • sso.nebutra.com = OIDC issuer URL only (never add path)

Recommended mapping (Pebble)

Capability Stop using (drift) Prefer
Docs / help https://pebble.nebutra.com/docs https://docs.nebutra.com/…
Feedback / diagnostics product-host paths https://api.nebutra.com/… (same host for token + upload)
Status status.pebble.nebutra.com https://status.nebutra.com
Staging staging.pebble.nebutra.com env / project isolation, not a host
Optional brand full pebble origin stack CNAME pebble.nebutra.com → CF only

Do not build a parallel api.pebble / status.pebble / staging.pebble stack for v1.

API path decision (needs platform pick)

  • Flat: api.nebutra.com/v1/feedback, /diagnostics/*, or
  • Prefixed: api.nebutra.com/pebble/v1/…

Local / SSH ports (unchanged)

Service Port
Local pebble-runtime 17777 (127.0.0.1)
pebble serve / pairing 6768
SSH 22
Public product surface 443 (80 → 443)
ssh -L 17777:127.0.0.1:17777 user@host
ssh -L 6768:127.0.0.1:6768 user@host

Client hardcodes to replace

  • feature-wall-tiles.ts / feature-wall-workflows.ts → docs base
  • telemetry.ts → privacy URL
  • SidebarSettingsHelpMenu.tsx → docs URL
  • updater-changelog-selection.ts → changelog host
  • package.json homepage

Prefer build-time config: DOCS_ORIGIN, API_ORIGIN, STATUS_ORIGIN.

Acceptance

  • docs/reference/infra-index.md reflects platform SoT (topology, auth, ports, mapping)
  • ROADMAP product-origin section points at infra-index for live alignment
  • Platform freezes API path style (flat vs /pebble)
  • Pebble client defaults to live hosts (or configurable origins)
  • feedback/diagnostics work on api.nebutra.com without POST redirects
  • No requirement for pebble-specific staging subdomain

Non-goals

  • Redesigning Better Auth / OIDC issuer URL
  • Exposing ECS origin IP publicly
  • Orca pairing / LAN (separate product issue)

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions