Remove base64 decoding from kubeconfig setup step.
Now accepts KUBE_CONFIG secret as plain text directly instead of base64 encoded.
This simplifies secret configuration in Gitea UI - users can paste kubeconfig
content directly without requiring base64 encoding.
Changes:
- deploy-prod.yml: Remove 'base64 -d' from kubeconfig setup
- deploy-alpha.yml: Remove 'base64 -d' from kubeconfig setup
Secret Configuration:
Old: KUBE_CONFIG should be base64 encoded
New: KUBE_CONFIG should be plain text kubeconfig content
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude <noreply@anthropic.com>
Update both production and alpha deployment workflows:
Changes:
- Updated Node.js version from 22 to 20 (match project dependencies)
- Changed build command from Angular 'npm run build --prod' to Next.js 'npm run build'
- Added environment variables for API URLs (PROD_API_URL, ALPHA_API_URL)
- Added NODE_ENV=production build argument for Docker
- Improved Docker image tagging strategy (separate prod/alpha namespaces)
- Enhanced kubeconfig validation with better error handling
- Added deployment status messaging for better workflow visibility
- Removed hardcoded config checking that exposed secrets
- Added rollout status timeout (5m) for safer deployments
- Improved step descriptions for clarity
Benefits:
- Workflow now properly builds Next.js standalone output
- Better separation of prod and alpha deployments
- Improved error reporting and troubleshooting
- Safer kubeconfig handling (no secrets exposure)
- More reliable deployment with timeout checks
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude <noreply@anthropic.com>
GID 1000 is already in use by the node:20-alpine base image.
Changed non-root user to use UID/GID 101 which is commonly available.
This fixes the Docker build error:
'addgroup: gid 1000 in use'
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude <noreply@anthropic.com>
Update Dockerfile for Next.js 15 migration with production-optimized build:
- Multi-stage build separating compilation from runtime
- Next.js standalone output mode (~150-200MB final image)
- Non-root user (nextjs:1000) for security hardening
- Health check endpoint for orchestration monitoring
- Node.js 20 Alpine runtime for minimal footprint
Add .dockerignore to exclude development files from build context,
reducing build time and image size.
Update README with comprehensive Docker deployment documentation including
environment variable configuration and image features.
OpenSpec: Implements fix-dockerfile-nextjs proposal (26/30 tasks completed)
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude <noreply@anthropic.com>
- Marked 89/167 tasks as completed
- Added completion status by phase
- Documented deferred tasks for post-MVP
- Added migration summary with deliverables
Core MVP complete:
- All critical authentication and portfolio features done
- Production build successful
- Documentation complete
- Tag PROD-v1.0.0 deployed
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude <noreply@anthropic.com>