Deploy Capacitor dev hub (capacitor.tail5b443a.ts.net) with path routing #101

Closed
opened 2026-03-17 04:04:08 +00:00 by forgejo_admin · 1 comment

Lineage

plan-pal-e-platform → Backlog (supports sop-capacitor-mobile-lifecycle)

Repo

forgejo_admin/pal-e-platform

User Story

As Lucas testing local dev stacks on phone
I want a Tailscale hostname (capacitor.tail5b443a.ts.net) with path-based routing
So that each project's Docker Compose dev server is accessible via phone without stomping on archbox

Context

Mirrors the playground hub pattern. Playground has playground.tail5b443a.ts.net with paths per project. The capacitor dev hub does the same for Docker Compose dev servers running on the host. Implementation: k3s pod with nginx reverse-proxy + Tailscale funnel operator, routing paths to host ports (5173, 5174, etc.). Port convention defined in sop-capacitor-mobile-lifecycle.

File Targets

Files to create:

  • terraform/capacitor-dev-hub.tf or equivalent k3s manifest — nginx pod + Tailscale funnel
  • nginx config mapping paths to host ports

Acceptance Criteria

  • capacitor.tail5b443a.ts.net resolves via Tailscale
  • /mcd-tracker/ proxies to host:5173
  • /westside/ proxies to host:5174
  • Landing page lists all active projects with links
  • Phone access works (Lucas can tap and see the dev app)

Test Expectations

  • curl https://capacitor.tail5b443a.ts.net/mcd-tracker/ returns the app
  • Run command: curl -s https://capacitor.tail5b443a.ts.net/

Constraints

  • NEVER use archbox hostname — dedicated Tailscale hostname only
  • Follow playground hub pattern (k3s pod + Tailscale funnel operator)
  • nginx must handle path stripping so the SPA router works

Checklist

  • PR opened
  • Funnel reachable from phone
  • No unrelated changes
  • pal-e-platform — project
  • sop-capacitor-mobile-lifecycle — Dev URL section
  • project-capacitor-mobile — consumer table
### Lineage `plan-pal-e-platform` → Backlog (supports `sop-capacitor-mobile-lifecycle`) ### Repo `forgejo_admin/pal-e-platform` ### User Story As Lucas testing local dev stacks on phone I want a Tailscale hostname (capacitor.tail5b443a.ts.net) with path-based routing So that each project's Docker Compose dev server is accessible via phone without stomping on archbox ### Context Mirrors the playground hub pattern. Playground has `playground.tail5b443a.ts.net` with paths per project. The capacitor dev hub does the same for Docker Compose dev servers running on the host. Implementation: k3s pod with nginx reverse-proxy + Tailscale funnel operator, routing paths to host ports (5173, 5174, etc.). Port convention defined in `sop-capacitor-mobile-lifecycle`. ### File Targets Files to create: - `terraform/capacitor-dev-hub.tf` or equivalent k3s manifest — nginx pod + Tailscale funnel - nginx config mapping paths to host ports ### Acceptance Criteria - [ ] `capacitor.tail5b443a.ts.net` resolves via Tailscale - [ ] `/mcd-tracker/` proxies to host:5173 - [ ] `/westside/` proxies to host:5174 - [ ] Landing page lists all active projects with links - [ ] Phone access works (Lucas can tap and see the dev app) ### Test Expectations - [ ] `curl https://capacitor.tail5b443a.ts.net/mcd-tracker/` returns the app - Run command: `curl -s https://capacitor.tail5b443a.ts.net/` ### Constraints - NEVER use archbox hostname — dedicated Tailscale hostname only - Follow playground hub pattern (k3s pod + Tailscale funnel operator) - nginx must handle path stripping so the SPA router works ### Checklist - [ ] PR opened - [ ] Funnel reachable from phone - [ ] No unrelated changes ### Related - `pal-e-platform` — project - `sop-capacitor-mobile-lifecycle` — Dev URL section - `project-capacitor-mobile` — consumer table
Author
Owner

Closing as superseded. The capacitor-dev approach (SPA path-proxying via nginx) was abandoned because SPAs cannot be path-proxied -- Vite assets use absolute paths from /. See feedback_spa_no_subpath_proxy.md.

The namespace and kustomize overlay have been fully removed:

  • kubectl: capacitor-dev namespace deleted (was in CrashLoopBackOff with 500+ restarts)
  • kustomize: overlay removed in pal-e-deployments PR #32 (merged)

Each project now gets its own Tailscale hostname for dev instead of sharing a path-routed hub.

Superseded by #115.

Closing as superseded. The capacitor-dev approach (SPA path-proxying via nginx) was abandoned because SPAs cannot be path-proxied -- Vite assets use absolute paths from `/`. See `feedback_spa_no_subpath_proxy.md`. The namespace and kustomize overlay have been fully removed: - **kubectl**: `capacitor-dev` namespace deleted (was in CrashLoopBackOff with 500+ restarts) - **kustomize**: overlay removed in pal-e-deployments PR #32 (merged) Each project now gets its own Tailscale hostname for dev instead of sharing a path-routed hub. Superseded by #115.
Sign in to join this conversation.
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

Reference
forgejo_admin/pal-e-platform#101
No description provided.