Files
ProjectE/BASELINE.md
T

101 lines
3.7 KiB
Markdown
Raw Normal View History

# 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
- http://10.0.0.204:3000 — **DOWN** (until Phase 7 deploys the new SPA)
## 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
- http://10.0.0.204:3000 — **LIVE** (SPA served by Caddy, API reverse-proxied)