- Use github.repository_owner in workflow - Image format: REGISTRY_URL/owner/APP_NAME:latest - Works automatically with Gitea registry - Template-friendly: forks use their own owner - Update documentation with new format
106 lines
3.1 KiB
Markdown
106 lines
3.1 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.
|
|
|
|
1. **En Authentik:**
|
|
- Crea una aplicación para tu dominio
|
|
- Crea/usa un Proxy Provider (Forward auth)
|
|
- Asocia la aplicación al Outpost
|
|
|
|
2. **En `docker-compose.yml`:**
|
|
- Actualiza el middleware `authentik-outpost@docker` con el nombre correcto de tu outpost
|
|
|
|
3. **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
|