Next.js 16 + React 19 + Prisma 7 + Postgres team planner with Auth.js, multi-workspace RBAC, and five view types (dashboard / list / grid / timeline / calendar / workload).
# 1. install deps
source ~/.nvm/nvm.sh && nvm use 22
pnpm install
# 2. start Postgres (mapped to host :5442 to avoid clashing with local pg)
docker compose -f docker-compose.dev.yml up -d
# 3. migrate + seed
pnpm prisma migrate dev --name init # first time only
pnpm db:seed
# 4. run
pnpm devThe seed prints the default login:
email: admin@planner.local
password: admin
workspace: Thai Dev (thai-dev)
| Var | Default (dev) |
|---|---|
DATABASE_URL |
postgresql://planner:planner@localhost:5442/planner |
AUTH_SECRET |
dev-secret-change-me |
BASE_PATH |
empty (local). Set to /planner when deployed behind a path |
NEXTAUTH_URL |
http://localhost:3000 |
docker build -t planner .
docker compose up
# opens http://localhost:3000/planner# edit k8s/secret.example.yaml -> k8s/secret.yaml with real secrets
kubectl apply -k k8s/
# run migrations (once)
kubectl -n planner create job --from=job/planner-migrate planner-migrate-$(date +%s)The manifests include:
namespace,configmap,secret.examplepostgres-statefulset+postgres-svc(consider managed DB in prod)deployment(3 replicas, probes at/planner/api/health)service(ClusterIP) +ingress(/planner(/|$)(.*)on nginx)hpa(CPU 70%, 3..10)migrate-job(runsprisma migrate deploy)
- Next.js 16 with Turbopack; do not expect parity with older docs.
- Prisma 7 uses
src/generated/prisma/client(output is versioned). - Auth.js v5 beta, JWT sessions, credentials provider only.