Files
analiticaNucleo/DEPLOYMENT.md
josedario87 8e46838244
All checks were successful
deploy-analiticaNucleo / deploy (push) Successful in 36s
fix: agregar SUPABASE_SERVICE_ROLE_KEY al workflow y desactivar navigateFallback del SW
- Agregar SUPABASE_SERVICE_ROLE_KEY al workflow de Gitea Actions
- Usar variable correcta en docker-compose.yml
- Desactivar navigateFallback en workbox para evitar error de precached-url
- Actualizar documentación con los 3 secretos necesarios
2025-10-05 13:45:36 -06:00

3.1 KiB

Guía de Despliegue - Analítica Núcleo

Este proyecto se despliega automáticamente usando Gitea Actions en cada push a la rama master.

Configuración en Gitea

Secretos (Settings → Secrets)

Los siguientes secretos deben configurarse en el repositorio de Gitea:

Secret Descripción Ejemplo
SUPABASE_URL URL de tu instancia Supabase https://xxx.supabase.co
SUPABASE_ANON_KEY Clave anónima de Supabase (cliente) eyJhbGc... (JWT)
SUPABASE_SERVICE_ROLE_KEY Clave de servicio de Supabase (servidor) sb_secret_... o eyJhbGc...

Cómo agregar secretos en Gitea:

  1. Ve a tu repositorio en Gitea
  2. Navega a Settings → Secrets
  3. Haz clic en Add Secret
  4. Agrega cada uno de los secretos listados arriba

Infraestructura

Stack Docker

El proyecto se despliega como un stack de Docker Compose llamado analiticanucleo que contiene:

  • nuxt-app: Aplicación Nuxt.js con SSR deshabilitado

Traefik

La aplicación está configurada para usar Traefik como reverse proxy:

  • Dominio: analitica.nucleoriofrio.com
  • Puerto interno: 3000 (no expuesto públicamente)
  • TLS: Habilitado con Let's Encrypt
  • Red: principal (red externa compartida)

Workflow de Despliegue

El workflow .gitea/workflows/deploy.yml se ejecuta automáticamente en cada push a master y:

  1. Crea el archivo .env con los secretos
  2. Verifica/crea la red Docker principal
  3. Detiene el stack existente (si existe)
  4. Construye la nueva imagen Docker
  5. Inicia el stack actualizado
  6. Muestra logs y estado de los servicios

Archivos del Proyecto

.
├── Dockerfile                    # Imagen Docker multi-stage con Node 22
├── docker-compose.yml            # Configuración del stack con labels de Traefik
├── .gitea/workflows/deploy.yml   # Workflow de CI/CD
└── nuxt4-app/                    # Código de la aplicación Nuxt
    ├── nuxt.config.ts            # Configuración de Nuxt (ssr: false)
    └── nuxt.config.workaround.ts # Workaround para @nuxt/ui v4 con ssr: false

Notas Técnicas

Workaround para @nuxt/ui v4

Debido a un issue conocido con @nuxt/ui v4 y ssr: false, se implementó un plugin de Vite (nuxt.config.workaround.ts) que marca como externos los módulos de servidor (@nuxt/kit, @tailwindcss/*, etc.) para evitar que se incluyan en el bundle del cliente.

Build

El build utiliza:

  • Node.js 22 Alpine
  • Vite 7
  • Nuxt 4
  • Sharp para procesamiento de imágenes

Troubleshooting

El build falla con errores de importación

Asegúrate de que el archivo nuxt.config.workaround.ts está presente y correctamente importado en nuxt.config.ts.

La aplicación no es accesible

  1. Verifica que Traefik esté corriendo
  2. Verifica que la red principal existe: docker network ls
  3. Verifica los logs del contenedor: docker logs analiticanucleo-nuxt-app
  4. Verifica las labels de Traefik: docker inspect analiticanucleo-nuxt-app

Variables de entorno no se aplican

Verifica que los secretos estén configurados correctamente en Gitea y que el workflow los esté pasando al archivo .env.