Files
perfil/README.md
josedario87 fc46ae7a53 Fix Traefik network and Authentik middleware configuration
- Add traefik-network to container networks (CRITICAL FIX)
- Change middleware to authentik-forward-auth@file
- Update traefik.docker.network to traefik-network
- Document network requirements
- Update Authentik configuration instructions
2025-10-12 22:39:49 -06:00

119 lines
3.6 KiB
Markdown

# Plantilla Nuxt + Authentik Proxy
Plantilla base para aplicaciones Nuxt 4 con autenticación mediante Authentik Proxy Outpost.
## Estructura del Proyecto
```
.
├── nuxt4/ # Aplicación Nuxt 4
├── docker-compose.yml # Configuración de despliegue
└── .gitea/ # Gitea Actions CI/CD
```
## Características
- ✅ Nuxt 4
- ✅ Autenticación con Authentik Proxy Outpost
- ✅ Docker y Docker Compose
- ✅ CI/CD con Gitea Actions
- ✅ Traefik para proxy reverso y SSL
- ✅ Claude Code hooks para monitoreo de Actions
- ✅ Sin configuración OAuth necesaria (todo manejado por el proxy)
## Desarrollo Local
```bash
cd nuxt4
npm install
npm run dev
```
## Claude Code Hooks
Este proyecto incluye hooks de Claude Code para monitorear automáticamente las Gitea Actions.
### Configuración Rápida:
1. **Crear token de Gitea:**
- Ve a tu instancia de Gitea → Settings → Applications
- Genera un token con permisos `repo`
2. **Configurar token:**
```bash
echo "export GITEA_TOKEN='tu_token_aqui'" >> ~/.bashrc
source ~/.bashrc
```
3. **Listo!** Cuando Claude Code haga `git push`, automáticamente:
- Monitoreará la Gitea Action
- Te notificará cuando termine con información detallada
- Te mostrará un link directo a los logs
📖 Ver documentación completa en [`.claude/hooks/README.md`](.claude/hooks/README.md)
## Despliegue
El proyecto incluye Gitea Actions que automáticamente:
1. Construye la imagen Docker
2. La sube al registro
3. Despliega usando docker-compose
### Variables Requeridas en Gitea
Para configurar el despliegue automático, ve a tu repositorio en Gitea:
- **Secrets**: `Settings > Actions > Secrets`
- **Variables**: `Settings > Actions > Variables`
**Secrets (valores sensibles):**
- `REGISTRY_USERNAME` - Usuario del registro Docker
- `REGISTRY_PASSWORD` - Contraseña del registro Docker
**Variables (valores públicos):**
- `REGISTRY_URL` - URL del registro Docker (ej: `gitea.nucleoriofrio.com`)
- El owner del repositorio se agrega automáticamente
- Imagen final: `REGISTRY_URL/owner/APP_NAME:latest`
- `APP_NAME` - Nombre de la aplicación (ej: `mi-app`) - usado para container, imagen y Traefik
- `APP_DOMAIN` - Dominio de la aplicación (ej: `miapp.ejemplo.com`)
- `NUXT_PUBLIC_APP_URL` - URL pública de la app (ej: `https://miapp.ejemplo.com`)
📄 Ver ejemplo completo en [`.env.example`](.env.example)
### Configuración de Authentik Proxy Outpost
Esta plantilla requiere un **Authentik Proxy Outpost** ya configurado en Traefik.
**Requisitos previos:**
- Red `traefik-network` creada y Traefik corriendo en ella
- Authentik Forward Auth middleware configurado en Traefik (ej: en `dynamic/middlewares.yml`)
- Proxy Provider de tipo Forward Auth en Authentik
**Pasos:**
1. **En Authentik:**
- Crea una aplicación para tu dominio
- Crea/usa un Proxy Provider de tipo **Forward auth (single application)**
- Asocia la aplicación al Outpost
2. **Redes requeridas:**
- `principal` - Red de tu infraestructura
- `traefik-network` - Red donde corre Traefik
3. **Middleware en Traefik:**
- El `docker-compose.yml` usa `authentik-forward-auth@file`
- Verifica que este middleware esté definido en tu configuración de Traefik
- Si tu middleware tiene otro nombre, actualiza el `docker-compose.yml`
4. **Headers disponibles en la app:**
- `X-authentik-username`: nombre de usuario
- `X-authentik-email`: email del usuario
- `X-authentik-name`: nombre completo
- `X-authentik-groups`: grupos (separados por `|`)
- `X-authentik-uid`: ID único
Tu aplicación Nuxt puede leer estos headers para obtener información del usuario autenticado.
## Licencia
MIT