Commit Graph

7 Commits

Author SHA1 Message Date
Andrés Eduardo García Márquez 823ad242d2 fix(deploy): add App__BaseUrl env var for activation URLs
CI/CD Pipeline / deploy (push) Successful in 1m27s Details
CI/CD Pipeline / smoke-tests (push) Failing after 39s Details
CI/CD Pipeline / e2e-tests (push) Has been skipped Details
CI/CD Pipeline / rollback (push) Has been skipped Details
The activation URL was incorrectly pointing to localhost:4200 in production
because App:BaseUrl configuration was missing. Added the environment variable
to both K3s and Docker Compose deployments.

Fixes: Activation URL shows http://localhost:4200 instead of production domain

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-09 13:35:36 -05:00
Andrés Eduardo García Márquez 22c6f37c4d chore(deploy): update deployment config and add utility scripts
Docker:
- docker-compose.yml: optimize resource allocation
- start.sh: improve startup sequence
- docker-mssql/: add standalone SQL Server config for local dev

Kubernetes (K3s):
- hpa.yaml: adjust autoscaling thresholds
- kustomization.yaml: add new resource references
- secrets.yaml: update secret structure

Utility scripts:
- start.backend.sh: fix environment variables
- start.db.sh: database initialization script
- start.db.simple.sh: simplified DB startup
- generate-docs.sh: PlantUML diagram generation

Misc:
- index.html: landing page redirect
2026-01-09 07:44:43 -05:00
Andrés Eduardo García Márquez c15702746a ci: optimize deployment workflow for k3s
- Single job instead of 3 (no artifact overhead)
- Build directly on k3s node (avoids image transfer)
- Parallel Docker builds with BuildKit
- Auto-create namespace if missing
- Automatic rollback on failure
- Health check via domain
2026-01-08 13:34:38 -05:00
Andrés Eduardo García Márquez 3e66b63ac7 fix(docker): alpine compatibility and k3s deployment fixes
- Add linux-musl-x64 runtime identifier for Alpine builds
- Install ICU libs for SQL Server globalization support
- Fix nginx upstream to use k8s service name (student-api)
- Sync package-lock.json with package.json
2026-01-08 11:53:28 -05:00
Andrés Eduardo García Márquez 4af01f1008 fix(docker): update to .NET 10 SDK for k3s deployment
- Update Dockerfile.api to use dotnet/sdk:10.0-alpine
- Update runtime to aspnet:10.0-alpine
- Add deploy-k3s.sh script for manual deployments
2026-01-08 11:30:24 -05:00
Andrés Eduardo García Márquez a98862add8 feat: add CI/CD pipeline, password recovery, and QA improvements
- Add Gitea Actions workflow for automated k3s deployment
- Implement password recovery with recovery codes (no email needed)
- Fix unenroll mutation (missing studentId parameter)
- Fix dashboard handling for expired sessions
- Add optimized Docker builds with caching
- Add k3s all-in-one deployment manifest
- Add QA test report and recommendations
2026-01-08 10:49:32 -05:00
Andrés Eduardo García Márquez c0a47c2ba6 feat(deploy): add Docker and Kubernetes deployment
Docker:
- Multi-stage Dockerfile for API (.NET 10)
- Multi-stage Dockerfile for frontend (Angular + Nginx)
- docker-compose.yml with resource optimization
- Nginx reverse proxy configuration
- Health checks for all services

Kubernetes (k3s):
- Namespace and ConfigMap
- SQL Server StatefulSet with PVC
- API Deployment with HPA
- Frontend Deployment
- Services and Ingress
- Network policies for security
- Secrets management

Resource optimization:
- SQL Server Express with 1GB RAM limit
- API with 512MB limit
- Frontend with 128MB limit
2026-01-07 23:00:41 -05:00