Files
ProjectE/BASELINE.md
T
Hermes bb64be5d56 T9/Phase 7: deploy 4-container compose + Caddy reverse proxy
- docker-compose.yml: 4 services (db, api, spa, worker), Next.js removed
- Dockerfile.api: Bun base, install, run
- Dockerfile.worker: Bun base, install, run
- Dockerfile.spa: multi-stage (Bun build -> Caddy serve), fixed lockfile + workspace stubs
- Caddyfile: serve SPA + reverse-proxy /api/* + /mcp, SPA fallback routing
- Old Node worker stopped, replaced with new Bun worker
- Old Next.js server on :3000 stopped
- BASELINE.md: Phase 7 Deploy section added
- DEPLOY.md: deploy/rollback/debug guide added
2026-08-01 02:43:22 +00:00

3.7 KiB

Project E — UI Redesign Baseline

Date: 2026-07-31
Server hostname: projecte (10.0.0.204)
Branch: redesign/ui-v2 (from integration/ux-28-gaps, commit c1e0a08)
Bun version: 1.3.14
DB schema snapshot: .migration-baseline-schema.sql (1372 lines)

Disk before cleanup

  • 20G total, 11G used, 9.1G free
  • node_modules: 415M (root) + 294K (apps/web)
  • .next build outputs: 109M
  • Total repo size: 575M

Disk after cleanup

  • 20G total, 12G used, 9.0G free
  • Repo size: 48M (node_modules, .next, tsbuildinfo removed)
  • ~527 MB freed from build artifacts

Container state after T0

Container Status
project-e-db Running (healthy) — PostgreSQL 16
project-e-worker Running — Node.js worker
project-e-web Stopped & removed — Next.js (big-bang per user decision)

URL status

What T1 (Phase 1 Scaffold) needs to do next

  1. Create the Vite SPA scaffold in apps/web/ (replacing the old Next.js app)
  2. Create the Hono API scaffold in apps/api/
  3. Set up Bun workspace in root package.json
  4. Wire up the new docker-compose.yml for the new stack
  5. Reference .migration-baseline-schema.sql for the DB schema the new API must preserve
  6. Use bun (v1.3.14) for all package management and runtime
  7. Keep db and worker containers running

T1 — Phase 1 Scaffold (completed)

Legacy code moved

  • Old Next.js apps/web/apps/web-legacy/ (preserved for T2-T8 reference)

New apps created

App Path Tech Port
SPA apps/web/ Vite 5 + React 19 + TanStack Router/Query + shadcn/ui :3000 (dev)
API apps/api/ Hono 4 + Bun :3001
Worker apps/worker/ Bun + Drizzle

Shared infrastructure

  • db/client.ts — shared Drizzle client (postgres-js driver)
  • db/ — root-level directory (shared by api + worker)
  • bunfig.toml — Bun package manager config
  • Root package.json — Bun workspaces monorepo (apps/*, packages/*)

Docker

  • Dockerfile.api — Bun base, copies apps/api + db + packages
  • Dockerfile.worker — Bun base, copies apps/worker + db + packages
  • Dockerfile.spa — Multi-stage: Bun build → Caddy serve
  • Caddyfile — Serves dist on :80, reverse-proxies /api/* and /mcp to api:3000
  • docker-compose.yml — 4 services: db, api, spa, worker (old web service removed)

Phase 7 — Deploy (completed)

Deploy time: 2026-08-01T02:40Z
Commit: fc59431140329bd93223dfae3c72406d9e02646e
Branch: redesign/ui-v2

Image SHAs

Image SHA256
projecte-api fc46878d1618bb3a0d6a43d645a21cad14caa1bb6eaf773e4e32579a268adc10
projecte-spa 1cced4e61fb35d31df53225b3c8f5863a3d581b82ed961c13286bd5e3f940f48
projecte-worker 7fc57170100f6cf6b12439835f5700383c7c4570eecf3c4ab3f06fa739d10d07

Compose file SHA

bb21417829c866048509f81881304e81b5e29430270a278e0b3a77caa68f8b1b

Verification results

Check Result
docker compose ps — all 4 services running, db healthy
curl :3000/api/health — 200 + {"status":"ok"}
curl :3000/ — 200 + HTML
Login (user@example.com) — token received
/api/domains — 2 domains returned
/mcp — endpoint reachable (requires API key)
All 13 page routes return 200 (13/13)

Container state

Container Status Ports
project-e-db Running (healthy) :5432
project-e-api Running :3001
project-e-spa Running :3000
project-e-worker Running

URL