Skip to content

Conversation

@eswan18
Copy link
Owner

@eswan18 eswan18 commented Feb 8, 2026

Summary

  • Add output: "standalone" to Next.js config for containerized deployment
  • Split IDP URLs: IDP_PUBLIC_URL (browser redirects, JWT issuer) vs IDP_BASE_URL (server-to-server), enabling internal K8s DNS for backend calls
  • Add K8S env var check to skip dotenv loading in cluster (env vars come from configmaps/secrets)
  • Remove @vercel/analytics (no longer needed after migrating off Vercel)
  • Disable automaticVercelMonitors in Sentry config
  • Add multi-stage Dockerfile (node:22-alpine, non-root user, port 3000)
  • Add Cloud Build config that builds separate staging/prod images with different NEXT_PUBLIC_IDP_BASE_URL values baked in
  • Add full K8s manifest set (base + staging + prod + ArgoCD) following the cluster's Kustomize overlay pattern

Test plan

  • All 163 unit tests pass
  • TypeScript check passes
  • Lint passes (0 errors, 9 pre-existing warnings)
  • Docker build succeeds (will be verified by first Cloud Build run)
  • Staging deployment works end-to-end (ArgoCD sync, health check, OAuth flow)

🤖 Generated with Claude Code

@vercel
Copy link

vercel bot commented Feb 8, 2026

The latest updates on your projects. Learn more about Vercel for GitHub.

Project Deployment Actions Updated (UTC)
forecasting Error Error Feb 8, 2026 6:15am

@eswan18 eswan18 force-pushed the feat/gke-deployment branch from 9060966 to 435734a Compare February 8, 2026 06:12
- Add output: 'standalone' to next.config.mjs for containerized deployment
- Split IDP URLs: IDP_BASE_URL for server-to-server, NEXT_PUBLIC_IDP_BASE_URL
  for browser-facing redirects and JWT issuer validation (pods can't resolve
  Tailscale MagicDNS hostnames)
- Skip dotenv loading when K8S=1 is set (env vars come from configmaps/secrets)
- Remove @vercel/analytics (migrating away from Vercel)
- Disable automaticVercelMonitors in Sentry config
- Create multi-stage Dockerfile with non-root user
- Create cloudbuild.yaml with separate staging/prod builds (for NEXT_PUBLIC_ vars)
- Create K8s manifests: base, staging, prod, and ArgoCD config

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
@eswan18 eswan18 force-pushed the feat/gke-deployment branch from 435734a to 68dec0f Compare February 8, 2026 06:13
@eswan18 eswan18 merged commit 8b521a5 into main Feb 8, 2026
1 of 3 checks passed
@eswan18 eswan18 deleted the feat/gke-deployment branch February 8, 2026 06:13
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant