2026-08-01 01:08:30 +00:00
|
|
|
# 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
|
2026-08-01 01:15:31 +00:00
|
|
|
|
|
|
|
|
## 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)
|
2026-08-01 02:43:22 +00:00
|
|
|
|
|
|
|
|
## 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)
|