Remove unused files and code: - Delete test/debug endpoints (test.get.ts, public.get.ts, user.get.ts, debug-config backup) - Remove unused OAuth wrapper (oauth-authentik.ts) - Clean up debug console.log statements - Simplify code comments Fix TypeScript errors: - Add @types/node dependency - Create index.d.ts with User interface extension - Fix UButton color props (red→error, gray→neutral) - Add type assertions in protected.get.ts Update documentation: - Enhance README.md as template documentation - Update SETUP.md with correct API routes (/api/auth/* instead of /auth/*) - Add NUXT_OAUTH_AUTHENTIK_SERVER_URL_INTERNAL documentation - Update endpoint documentation This commit prepares the repository to be used as a template for future Nuxt 4 + Authentik OAuth projects.
100 lines
3.0 KiB
Markdown
100 lines
3.0 KiB
Markdown
# Nuxt 4 + Authentik OAuth + PWA Template
|
|
|
|
Template de aplicación Nuxt 4 con autenticación OAuth/OIDC usando Authentik y funcionalidad PWA (Progressive Web App).
|
|
|
|
## 🚀 Características
|
|
|
|
- ✅ **Nuxt 4** - Framework Vue.js de última generación
|
|
- ✅ **Autenticación OAuth/OIDC** - Integración con Authentik
|
|
- ✅ **PWA** - Funciona offline con Service Workers
|
|
- ✅ **Docker** - Despliegue con Docker Compose
|
|
- ✅ **Traefik** - Configurado para reverse proxy
|
|
- ✅ **Gitea Actions** - CI/CD automático incluido
|
|
- ✅ **TypeScript** - Tipado estático
|
|
- ✅ **Nuxt UI** - Componentes UI modernos
|
|
|
|
## 📋 Requisitos Previos
|
|
|
|
- Docker y Docker Compose
|
|
- Authentik corriendo (en la misma red Docker)
|
|
- Traefik como reverse proxy
|
|
- Gitea (opcional, para CI/CD)
|
|
|
|
## 🛠️ Instalación Rápida
|
|
|
|
1. **Clona el repositorio**
|
|
```bash
|
|
git clone https://tu-repo.git
|
|
cd seguidor-lotes
|
|
```
|
|
|
|
2. **Configura variables de entorno** (ver `SETUP.md` para detalles)
|
|
|
|
3. **Despliega**
|
|
```bash
|
|
docker-compose up -d
|
|
```
|
|
|
|
## 📖 Documentación Completa
|
|
|
|
Ver [SETUP.md](./SETUP.md) para:
|
|
- Configuración detallada de Authentik
|
|
- Variables de entorno requeridas
|
|
- Configuración de Gitea Actions
|
|
- Troubleshooting
|
|
- Personalización
|
|
|
|
## 🏗️ Estructura del Proyecto
|
|
|
|
```
|
|
├── .gitea/
|
|
│ └── workflows/ # CI/CD workflows
|
|
├── nuxt4-app/
|
|
│ ├── app/
|
|
│ │ ├── components/ # Componentes Vue
|
|
│ │ ├── middleware/ # Middleware de autenticación
|
|
│ │ └── pages/ # Páginas de la aplicación
|
|
│ ├── server/
|
|
│ │ └── api/ # API endpoints
|
|
│ │ ├── auth/ # Rutas de autenticación OAuth
|
|
│ │ └── protected.get.ts # Ejemplo de API protegida
|
|
│ ├── public/ # Assets estáticos y PWA icons
|
|
│ ├── nuxt.config.ts # Configuración de Nuxt
|
|
│ └── Dockerfile # Dockerfile para producción
|
|
├── docker-compose.yml # Configuración de Docker Compose
|
|
└── SETUP.md # Guía de configuración detallada
|
|
```
|
|
|
|
## 🔐 Autenticación
|
|
|
|
El template implementa OAuth 2.0 / OpenID Connect con:
|
|
- Login con Authentik
|
|
- Protección de rutas con middleware
|
|
- Protección de APIs con `requireUserSession`
|
|
- Información de usuario (email, nombre, grupos)
|
|
- Logout completo
|
|
|
|
## 🎨 Personalización
|
|
|
|
1. **Cambiar nombre de la app**: Edita `nuxt4-app/nuxt.config.ts`
|
|
2. **Añadir páginas protegidas**: Usa `definePageMeta({ middleware: 'auth' })`
|
|
3. **Crear APIs protegidas**: Usa `requireUserSession(event)` en tus handlers
|
|
4. **Customizar UI**: Modifica componentes en `app/components/`
|
|
|
|
## 🐛 Troubleshooting
|
|
|
|
Problemas comunes y soluciones en [SETUP.md - Sección 10](./SETUP.md#10-troubleshooting)
|
|
|
|
## 📝 Licencia
|
|
|
|
MIT
|
|
|
|
## 🤝 Contribuir
|
|
|
|
Este es un template base. Siéntete libre de:
|
|
1. Fork el proyecto
|
|
2. Crear una rama para tu feature
|
|
3. Commit tus cambios
|
|
4. Push a la rama
|
|
5. Abrir un Pull Request
|