11 Commits
Author SHA1 Message Date
zeekayandClaude Opus 4.8 9921a9a896 fix(db): re-inject Prisma enum objects for the SQLite client
SQLite has no Prisma enums, so removing the enum blocks also dropped the enum
*objects* the app imports from @prisma/client (LinkType.DOCUMENT_LINK, etc.),
crashing Next.js prerender ("Cannot read properties of undefined"). A
build-time step (after `prisma generate`) re-injects the 18 enum objects into
the generated client, so no app files change. Verified: local `next build`
now prerenders all 90 pages.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-07-05 00:59:54 -07:00
zeekayandClaude Opus 4.8 0aaaa1fa7e feat(db): migrate Prisma datasource postgres -> sqlite (native, file-backed)
Drops the shared sql-0 postgres dependency in favor of an embedded SQLite
file (DATABASE_URL=file:/data/<db>), WAL-replicated to SeaweedFS by the
operator persistence sidecar — same pattern as esign (Documenso).

Schema changes for the sqlite connector:
- datasource provider postgresql -> sqlite; drop directUrl/shadowDatabaseUrl
- 18 enums -> String (values preserved as string defaults)
- scalar-list fields (String[]/Int[]) -> Json @default("[]") (arrays
  round-trip through Prisma Json at runtime; next.config ignoreBuildErrors
  keeps the type-only churn out of the build)
- strip pg-native @db.* attributes (@db.Text/@db.Timestamp)
- startup: prisma migrate deploy -> prisma db push (pg migration history is
  postgres-specific; db push reconciles the sqlite schema idempotently)

CI: amd64-only (DOKS has no arm64); deploy:false — rollout is operator-managed
via the universe Service CR, never `kubectl set image`.

Verified: `prisma validate` + `prisma db push` materialize all 62 tables on a
fresh sqlite file. Source DB is empty (0 app rows), so cutover is data-safe.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-07-05 00:33:13 -07:00
2952083ef0 build: base on ghcr.io/hanzoai/nodejs:v24.18.0 (Node 24 + sqlite3)
Adopt the canonical Hanzo Node base image. Node 24 uniform across the
fleet; sqlite3 bundled (node:sqlite builtin + native better-sqlite3
toolchain). One base, one way.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-07-04 12:49:21 -07:00
Hanzo Dev 2724995f04 fix: copy entire node_modules/.bin to include Prisma WASM files
The Prisma CLI binary references companion .wasm files
(prisma_schema_build_bg.wasm) that live alongside it in .bin/.
Copying only the prisma binary missed these files.
2026-03-01 19:47:13 -08:00
Hanzo Dev 2a6073e5c2 Fix Prisma migrations: symlink schema/migrations to prisma/migrations
Prisma multi-file schema at prisma/schema/schema.prisma looks for
migrations at prisma/schema/migrations/ by default. Actual migrations
are at prisma/migrations/. Symlink bridges the two.
2026-03-01 09:09:58 -08:00
Hanzo Dev 10473cb76f fix: use correct prisma schema path and bundle prisma CLI in runner
Schema is at prisma/schema/schema.prisma (multi-file schema).
Bundle prisma CLI to avoid slow npx download on every pod start.
2026-03-01 07:44:03 -08:00
Hanzo Dev 0590fd306e fix: increase Node heap size for Docker build
QEMU cross-compilation and large bundles cause OOM during Next.js build.
2026-03-01 07:08:09 -08:00
Hanzo Dev b4aefb200e fix: add dummy env vars during Docker build for module-scope inits
OpenAI and Hanko clients initialize at module scope, crashing Next.js
build when collecting page data. Set dummy values only for build stage.
2026-03-01 06:36:41 -08:00
Hanzo Dev baba5bbaa9 Use npm install instead of npm ci in Dockerfile 2026-03-01 05:54:51 -08:00
Hanzo Dev 583b7667be Fix Dockerfile: add build deps for native modules 2026-03-01 05:51:35 -08:00
Hanzo Dev ce60abfbce Add Dockerfile and CI/CD for K8s deployment
- Add Dockerfile with standalone Next.js output
- Add output: "standalone" to next.config.mjs (DOCKER_OUTPUT env)
- Add GitHub Actions workflow for GHCR build + K8s deploy
2026-03-01 05:48:20 -08:00