Next.js 14 · SSR · CI/CD GitHub · Cloud Secret Manager · europe-west1
{ "apphosting": { "backendId": "nutritrack-backend", "rootDir": "/", "ignore": [ "node_modules", ".git", ".next", "firebase-debug.log", "firebase-debug.*.log", "functions", "*.test.ts" ] } }
# Cloud Run service config runConfig: cpu: 1 memoryMiB: 512 minInstances: 1 # evitar cold starts maxInstances: 20 concurrency: 80 # Variables de entorno env: - variable: NEXT_PUBLIC_FIREBASE_API_KEY secret: firebase-api-key-prod availability: [BUILD, RUNTIME] - variable: NEXT_PUBLIC_APP_URL value: "https://app.nutritrack.pro" availability: [BUILD, RUNTIME] - variable: DATABASE_URL secret: database-url-prod availability: [RUNTIME] - variable: STRIPE_SECRET_KEY secret: stripe-secret-key-prod availability: [RUNTIME]
| Variable | Tipo | Nombre en Secret Manager | Disponibilidad | Descripción |
|---|---|---|---|---|
| NEXT_PUBLIC_FIREBASE_API_KEY | Secret | firebase-api-key-prod | BUILDRUNTIME | Clave pública Firebase SDK |
| NEXT_PUBLIC_APP_URL | Literal | — (valor directo) | BUILDRUNTIME | URL pública de la app |
| DATABASE_URL | Secret | database-url-prod | RUNTIME | Conexión a base de datos |
| STRIPE_SECRET_KEY | Secret | stripe-secret-key-prod | RUNTIME | API key pagos Stripe |
main en nutritrack/nutritrack-pro. Firebase App Hosting escucha el webhook de GitHub automáticamente tras backends:create.BUILD del apphosting.yaml y secretos resueltos desde Cloud Secret Manager antes de npm run build.apphosting:rollouts:create --git-commit d1e8a44 repliega al commit estable anterior en segundos.