[{"data":1,"prerenderedAt":216},["ShallowReactive",2],{"seo-verification":3,"blog-alojar-authelia-en-un-vps-ma-es":6,"promo-bar-likely":215},{"google":4,"bing":5},"EycwPY2XMyTkVzas3n1ygeNJFGAH513qrMjfDljzsMQ","",{"key":7,"data":8},"blog-alojar-authelia-en-un-vps-ma-es",{"id":9,"slug":10,"slugs":11,"title":15,"excerpt":16,"readTime":17,"views":18,"isPinned":19,"noindex":19,"publishedAt":20,"updatedAt":21,"category":22,"categories":28,"featuredImage":30,"bgImage":31,"posterImage":32,"relatedSolution":33,"intro":35,"sections":36,"ctaTitle":149,"ctaBody":150,"ctaButton":151,"ctaUrl":152,"relatedPosts":153},162,"alojar-authelia-en-un-vps",{"fr":12,"en":13,"ar":14,"es":10},"self-host-authelia-vps","self-host-authelia-on-a-vps-mfa-and-sso-for-your-whole-stack","استضافة-authelia-على-vps-مصادقة-ثنائية-ودخول-موحد-لمنظومتك","Alojar Authelia en un VPS: MFA y SSO para todo tu stack","Despliega Authelia en VPS con Docker Compose: TOTP, WebAuthn\u002Fpasskey, OIDC, migración LLDAP, monitoreo Prometheus y comparativa con Authentik.",10,4,false,"2026-07-04T00:00:00+00:00","2026-09-24T12:27:51+00:00",{"id":23,"name":24,"slug":25,"color":26,"icon":27},8,"Seguridad y monitorización","securite-monitoring","bg-rose-500\u002F10 text-rose-400","security",[29],{"id":23,"name":24,"slug":25,"color":26,"icon":27},null,"\u002Fblog\u002Fcovers\u002Fbg.svg","\u002Fblog\u002Fcovers\u002Fself-host-authelia-vps-poster.svg",{"categorySlug":27,"appSlug":34},"authelia","Authelia es una pasarela de autenticación de código abierto escrita en Go que se interpone ante tus servicios auto-alojados a través de tu reverse proxy. En un único contenedor ligero (~30 MB), centraliza la autenticación, impone MFA y puede actuar como proveedor OIDC para un verdadero SSO en todo tu stack. Esta guía cubre la instalación completa, reglas de acceso por grupos, métodos MFA disponibles — incluidos los passkeys WebAuthn —, migración a LLDAP, actualizaciones sin sorpresas y monitoreo.",[37,41,53,56,87,91,94,97,100,103,106,143,146],{"type":38,"title":39,"body":40},"h2","Por qué una pasarela de autenticación en el reverse proxy","Sin una pasarela centralizada, cada servicio gestiona su propio login: Grafana tiene su base de usuarios, Nextcloud la suya, Portainer la suya. El resultado: contraseñas distintas en todos lados, sin MFA coherente y una superficie de ataque multiplicada. Authelia resuelve esto interceptando el flujo HTTP: tu reverse proxy (Nginx, Traefik, Caddy) le envía cada solicitud antes de reenviarla, y Authelia decide — según la identidad, el grupo, la ruta solicitada y el nivel de MFA requerido — si la solicitud debe pasar. La aplicación protegida solo ve una solicitud autenticada con cabeceras de identidad inyectadas (`Remote-User`, `Remote-Groups`).",{"type":42,"title":43,"items":44},"ul","Qué te aporta Authelia auto-alojada",[45,46,47,48,49,50,51,52],"Autenticación centralizada para todos tus servicios sin modificar su código","MFA nativo: TOTP (Google Authenticator, Aegis), WebAuthn\u002Fpasskey (llaves físicas, Touch ID, Windows Hello), Duo","Proveedor OIDC en producción desde v4.34: tus apps compatibles con OIDC delegan la auth a Authelia","Control de acceso granular por dominio, ruta, grupo de usuarios y nivel de autenticación","Integración nativa con Traefik (forwardAuth), Nginx (auth_request), Caddy (forward_auth)","Soporte LDAP\u002FActive Directory para gestión de equipos, compatible con LLDAP","Binario Go único (~30 MB), imagen Docker ligera, bajo consumo de memoria","Logs JSON estructurados y métricas Prometheus para observabilidad",{"type":38,"title":54,"body":55},"Requisitos previos","Antes de desplegar Authelia, verifica que tu entorno esté listo. Necesitas un VPS con Linux con Docker y Docker Compose instalados, un reverse proxy existente (Traefik v2\u002Fv3 o Nginx), un nombre de dominio con certificado TLS válido (Let's Encrypt recomendado), y una instancia Redis accesible por Authelia para almacenar sesiones (obligatorio en producción). Para el almacenamiento de usuarios, puedes empezar con un archivo YAML local o conectar un servidor LDAP como LLDAP. Authelia también requiere una clave JWT, una clave de cifrado de sesión y un secreto OIDC si activas ese modo: genéralos con `openssl rand -hex 32`.",{"type":57,"title":58,"steps":59},"steps","Desplegar Authelia con Docker Compose",[60,63,66,69,72,75,78,81,84],{"title":61,"body":62},"Crear la estructura de directorios","Crea `\u002Fopt\u002Fauthelia\u002Fconfig\u002F` para los archivos de configuración y `\u002Fopt\u002Fauthelia\u002Fdata\u002F` para el almacenamiento SQLite y las claves. Establece los permisos: `mkdir -p \u002Fopt\u002Fauthelia\u002F{config,data} && chown -R 1000:1000 \u002Fopt\u002Fauthelia`.",{"title":64,"body":65},"Escribir el archivo configuration.yml","Crea `\u002Fopt\u002Fauthelia\u002Fconfig\u002Fconfiguration.yml`. Define `default_redirection_url`, `jwt_secret`, `session.secret`, `storage.encryption_key`, configura el backend de autenticación (archivo o LDAP), Redis para las sesiones y la política de acceso por defecto (`deny` recomendado).",{"title":67,"body":68},"Crear el archivo users_database.yml (backend archivo)","Para un inicio rápido, crea `\u002Fopt\u002Fauthelia\u002Fconfig\u002Fusers_database.yml` con tus usuarios. Las contraseñas deben estar hasheadas con Argon2id: `docker run --rm authelia\u002Fauthelia:latest authelia crypto hash generate argon2 --password 'TuContraseña'`. Copia el hash generado en el archivo.",{"title":70,"body":71},"Configurar Redis para las sesiones","Añade Redis a tu `docker-compose.yml`. En `configuration.yml`, define `session.redis.host: redis` y `session.redis.port: 6379`. Redis es indispensable para que las sesiones sobrevivan a los reinicios de Authelia.",{"title":73,"body":74},"Escribir el docker-compose.yml","Define los servicios `authelia` y `redis`, y si usas Traefik añade las etiquetas apropiadas. Monta `\u002Fopt\u002Fauthelia\u002Fconfig` de solo lectura y `\u002Fopt\u002Fauthelia\u002Fdata` de lectura-escritura. Expón el puerto 9091 internamente, nunca directamente a Internet.",{"title":76,"body":77},"Configurar Traefik con forwardAuth","Crea un middleware de Traefik apuntando a `http:\u002F\u002Fauthelia:9091\u002Fapi\u002Fauthz\u002Fforward-auth`. Aplica este middleware a los routers de los servicios a proteger. Para Nginx, usa `auth_request \u002Fauthelia` con las directivas `proxy_pass` adecuadas.",{"title":79,"body":80},"Configurar el dominio de sesión","En `configuration.yml`, define `session.domain` con tu dominio raíz (ej: `midominio.com`) para que la cookie se comparta entre subdominios. Esta es la causa más frecuente de bucles de redirección.",{"title":82,"body":83},"Arrancar y validar","Arranca con `docker compose up -d`. Revisa los logs: `docker compose logs -f authelia`. Accede a `https:\u002F\u002Fauth.midominio.com` para ver el portal de login. Prueba accediendo a un servicio protegido: debes ser redirigido al portal y devuelto al servicio tras autenticarte.",{"title":85,"body":86},"Activar el proveedor OIDC (opcional)","Desde v4.34, el proveedor OIDC está listo para producción. Añade la sección `identity_providers.oidc` a tu configuración con tus clientes (Nextcloud, Grafana, Gitea…). Cada cliente tiene un `id`, un `secret` (hasheado con Argon2id) y sus `redirect_uris` autorizadas.",{"type":88,"title":89,"body":90},"tip","Usar Authelia como proveedor OIDC para un SSO real","El modo proveedor OIDC convierte Authelia en un SSO real: el usuario se conecta una vez en el portal Authelia, y todas las aplicaciones configuradas como clientes OIDC recuperan la identidad sin volver a pedir contraseña. Nextcloud, Grafana, Gitea, Portainer, Outline… todas soportan OIDC. Configura cada cliente con `client_id`, `client_secret`, y apunta la URL de descubrimiento a `https:\u002F\u002Fauth.midominio.com\u002F.well-known\u002Fopenid-configuration`. El scope `groups` permite transmitir los grupos Authelia a las aplicaciones cliente para la gestión de roles.",{"type":38,"title":92,"body":93},"Reglas de control de acceso: ejemplos concretos","La sección `access_control` es el corazón de la lógica de Authelia. Desde v4.37, las políticas han sido rediseñadas. Acceso público sin auth: `{domain: 'status.midominio.com', policy: bypass}`. Acceso MFA fuerte restringido a admins: `{domain: 'portainer.midominio.com', subject: 'group:admins', policy: two_factor}`. Ruta de API sin auth (webhooks): `{domain: 'n8n.midominio.com', resources: ['^\u002Fwebhook\u002F.*'], policy: bypass}`. El resto de N8N con MFA simple: `{domain: 'n8n.midominio.com', policy: one_factor}`. `default_policy: deny` garantiza que todo lo no listado queda bloqueado. El orden de las reglas importa: se aplica la primera que coincida.",{"type":38,"title":95,"body":96},"MFA: TOTP, WebAuthn\u002Fpasskey y Duo","Authelia soporta tres métodos de segundo factor, cada uno con sus ventajas.\n\n**TOTP** (Contraseña de un solo uso basada en tiempo) es el método más universal: el usuario escanea un código QR con una app como Aegis (Android), Raivo (iOS) o Bitwarden Authenticator. Un código de 6 dígitos cambia cada 30 segundos. Simple de desplegar, compatible con todos los dispositivos, pero vulnerable al phishing si el código se intercepta.\n\n**WebAuthn\u002Fpasskey** es el método más robusto, soportado nativamente por Authelia desde v4.36. El usuario registra una llave física (YubiKey, Nitrokey) o un autenticador de plataforma (Touch ID en macOS, Windows Hello, Face ID en iOS). La criptografía de clave pública hace el phishing imposible: la clave privada nunca sale del dispositivo. Authelia implementa la especificación WebAuthn Level 2 completa, incluyendo passkeys sincronizadas vía iCloud Keychain o Google Password Manager.\n\n**Duo** delega el segundo factor al servicio cloud Duo Security: push móvil, SMS o llamada telefónica. Práctico para equipos que ya usan Duo, pero introduce dependencia en un servicio externo.\n\nPara la mayoría de stacks auto-alojados, la combinación recomendada es TOTP como método base y WebAuthn como método preferido para usuarios con YubiKey o dispositivo Apple\u002FWindows reciente.",{"type":38,"title":98,"body":99},"Migración a LLDAP: gestión de equipos","El backend archivo (`users_database.yml`) sirve para un usuario o familia pequeña, pero se vuelve difícil de gestionar con más de 5-10 usuarios. LLDAP (Light LDAP) es una implementación LDAP ligera escrita en Rust, con una interfaz web simple, que se integra perfectamente con Authelia.\n\nDespliega LLDAP añadiendo su servicio a tu `docker-compose.yml` con las variables `LLDAP_JWT_SECRET` y `LLDAP_LDAP_BASE_DN` (ej: `dc=midominio,dc=com`). Crea tus grupos en la interfaz LLDAP (`admins`, `users`, `devops`…), luego modifica `configuration.yml` para cambiar del backend `file` al backend `ldap`.\n\nAtención al breaking change de v4.35: el campo se llamaba `authentification_backend` (con error tipográfico) antes de v4.35 y fue corregido a `authentication_backend`. Verifica tu configuración si migras desde una versión anterior.",{"type":38,"title":101,"body":102},"Actualizar Authelia: evitar los breaking changes","Authelia sigue un versionado semántico estricto y documenta sus breaking changes por versión. Los cambios notables:\n\n**v4.34**: el proveedor OIDC pasa a producción. Si lo usabas en modo experimental, verifica los cambios de nombre de opciones.\n\n**v4.35**: corrección `authentification_backend` → `authentication_backend` — cualquier configuración con el nombre antiguo impide el arranque con un error de validación.\n\n**v4.37**: rediseño de políticas `access_control` — la sintaxis de las reglas se volvió más explícita. Consulta el changelog oficial antes de actualizar desde v4.36 o anterior.\n\n**v4.38.x** (versión actual): estabilización, sin breaking changes mayores desde v4.37.\n\nProcedimiento de actualización recomendado: (1) lee el changelog desde tu versión actual; (2) haz backup de `\u002Fopt\u002Fauthelia\u002Fconfig\u002F` y `\u002Fopt\u002Fauthelia\u002Fdata\u002F`; (3) prueba la configuración nueva con `docker run --rm -v \u002Fopt\u002Fauthelia\u002Fconfig:\u002Fconfig authelia\u002Fauthelia:4.38.x authelia validate-config` antes de reiniciar; (4) actualiza el tag en `docker-compose.yml` y reinicia.",{"type":38,"title":104,"body":105},"Monitoreo: logs y métricas Prometheus","Authelia expone sus métricas Prometheus en `\u002Fmetrics` (puerto configurable, por defecto 9959). Actívalas en `configuration.yml` con `telemetry.metrics.enabled: true` y `telemetry.metrics.address: 'tcp:\u002F\u002F0.0.0.0:9959'`. No expongas este puerto públicamente: límitalo a tu stack de monitorización interno (Prometheus\u002FGrafana).\n\nMétricas clave a vigilar: `authelia_authn_requests_total` (intentos de autenticación, etiquetados por éxito\u002Ffallo), `authelia_authn_duration_seconds` (latencia), y las métricas de Redis para la salud de las sesiones. Para los logs, Authelia soporta formato JSON estructurado (`log.format: json`), ideal para ingestión en Loki o un SIEM. Usa `log.level: info` en producción (evita `debug`, que registra headers completos). Los logs de autenticación incluyen la IP origen, nombre de usuario, servicio objetivo y resultado — muy útiles para detectar ataques de fuerza bruta antes de que tengan éxito.",{"type":107,"title":108,"columns":109,"rows":113},"comparison","Authelia vs Authentik: ¿cuál elegir?",[110,111,112],"Criterio","Authelia","Authentik",[114,118,122,126,130,134,137,139],[115,116,117],"Huella Docker","~30 MB (binario Go)","~1,5 GB (Python\u002FDjango + worker)",[119,120,121],"RAM mínima","~50 MB","~512 MB recomendados",[123,124,125],"Proveedor OIDC","Sí, desde v4.34","Sí, maduro y rico",[127,128,129],"Proveedor SAML","No","Sí",[131,132,133],"Interfaz de administración","Solo configuración YAML","Interfaz web completa",[135,128,136],"Proxy de aplicaciones","Sí (túneles Authentik)",[138,128,129],"Aprovisionamiento SCIM",[140,141,142],"Caso de uso ideal","Stack ligero, reverse proxy puro, config as code","IAM completo, SSO empresarial, necesidades SAML\u002FSCIM",{"type":38,"title":144,"body":145},"Solución de errores frecuentes","**Bucle de redirección infinito.** El usuario rebota entre el servicio y el portal Authelia. Causa más frecuente: `session.domain` no coincide con el dominio del servicio. Si el servicio está en `app.misite.com` y `session.domain` es otro dominio, la cookie de sesión nunca se envía. Verifica también que el middleware `forwardAuth` está bien aplicado y que `default_redirection_url` apunta a una URL válida.\n\n**Cookie domain mismatch.** `session.domain` debe ser el dominio padre común (`misite.com`), no un subdominio. Verifica con DevTools (Application > Cookies) que `authelia_session` tiene el dominio correcto.\n\n**Redis inalcanzable.** Authelia arranca pero las sesiones no persisten. Verifica que el contenedor Redis está en la misma red Docker, que `host` en `configuration.yml` coincide con el nombre del servicio (no `localhost`), y que Redis no está protegido por contraseña no configurada en Authelia.\n\n**Configuración inválida al arrancar.** Desde v4.35, el esquema de configuración se valida estrictamente. Usa `authelia validate-config` antes de cualquier reinicio. Los errores más comunes: `authentification_backend` (typo antiguo), indentación YAML incorrecta, o `client_secret` OIDC que debe hashearse con Argon2id desde v4.37.\n\n**MFA no solicitado a pesar de `two_factor` en las reglas.** Verifica que el usuario ha registrado un segundo factor en su perfil. Sin dispositivo MFA registrado, Authelia puede aplicar un fallback a `one_factor` según `default_2fa_method`.",{"type":88,"title":147,"body":148},"Consejo final: empieza simple, evoluciona progresivamente","Despliega primero Authelia con el backend archivo, una única regla `two_factor` para tus servicios más expuestos y TOTP como método MFA. Una vez estable, migra a LLDAP para la gestión de equipos, activa el proveedor OIDC para el SSO, luego añade WebAuthn para usuarios con llave física o dispositivo que soporte passkeys. Esta progresión evita depurar varios componentes nuevos simultáneamente y te permite validar cada capa de forma independiente.","Despliegue Authelia en su VPS con un clic","Añada MFA y SSO a toda su stack autoalojada sin modificar ni una sola aplicación. ServOrbit provisiona una instancia Authelia lista para usar — configuración generada, usuario administrador creado, integración con el reverse proxy preparada.","Desplegar Authelia","\u002Fvps-cloud?template=authelia",[154,173,192],{"id":155,"slug":156,"slugs":157,"title":161,"excerpt":162,"readTime":163,"views":164,"isPinned":19,"noindex":19,"publishedAt":165,"updatedAt":166,"category":167,"categories":168,"featuredImage":30,"bgImage":31,"posterImage":170,"relatedSolution":171},131,"desplegar-vaultwarden-en-un-vps",{"fr":158,"en":159,"ar":160,"es":156},"deploy-vaultwarden-vps","self-host-your-password-manager-deploy-vaultwarden-on-vps","استضف-مدير-كلمات-المرور-بنفسك-انشر-vaultwarden-على-vps","Vaultwarden en VPS: gestor de contraseñas autoalojado","Autoaloja Vaultwarden en un VPS: contraseñas ilimitadas, compatibilidad con Bitwarden, bóvedas de equipo y TOTP, con coste mensual fijo y menos de 50 MB de RAM.",15,3,"2026-06-24T00:00:00+00:00","2026-11-04T16:30:25+00:00",{"id":23,"name":24,"slug":25,"color":26,"icon":27},[169],{"id":23,"name":24,"slug":25,"color":26,"icon":27},"\u002Fblog\u002Fcovers\u002Fdeploy-vaultwarden-vps-poster.svg",{"categorySlug":27,"appSlug":172},"vaultwarden",{"id":174,"slug":175,"slugs":176,"title":180,"excerpt":181,"readTime":18,"views":182,"isPinned":19,"noindex":19,"publishedAt":183,"updatedAt":184,"category":185,"categories":186,"featuredImage":30,"bgImage":31,"posterImage":188,"relatedSolution":189},108,"proteger-vps-con-crowdsec",{"fr":177,"en":178,"ar":179,"es":175},"securiser-vps-crowdsec","securing-your-vps-with-crowdsec","تأمين-خادمك-الافتراضي-vps-باستخدام-crowdsec","Proteger su VPS con CrowdSec","Despliegue CrowdSec en su VPS para bloquear los ataques gracias a una detección de comportamiento y a una blocklist comunitaria compartida.",2,"2026-03-04T00:00:00+00:00","2026-09-07T11:26:10+00:00",{"id":23,"name":24,"slug":25,"color":26,"icon":27},[187],{"id":23,"name":24,"slug":25,"color":26,"icon":27},"\u002Fblog\u002Fcovers\u002Fsecuriser-vps-crowdsec-poster.svg",{"categorySlug":190,"appSlug":191},"ciberseguridad-bastion","crowdsec",{"id":193,"slug":194,"slugs":195,"title":199,"excerpt":200,"readTime":18,"views":201,"isPinned":19,"noindex":19,"publishedAt":202,"updatedAt":184,"category":203,"categories":209,"featuredImage":30,"bgImage":31,"posterImage":211,"relatedSolution":212},161,"alojar-dockge-en-un-vps",{"fr":196,"en":197,"ar":198,"es":194},"self-host-dockge-vps","how-to-self-host-dockge-on-a-vps-visual-docker-compose-manager","استضافة-dockge-على-vps-مدير-مرئي-لـ-docker-compose","Alojar Dockge en un VPS: gestor visual de Docker Compose","Despliegue Dockge en su VPS: un gestor visual open source y ligero para crear, editar y supervisar sus stacks Docker Compose desde el navegador.",1,"2026-07-03T00:00:00+00:00",{"id":204,"name":205,"slug":206,"color":207,"icon":208},7,"Autoalojamiento","self-hosting","bg-indigo-500\u002F10 text-indigo-400","cloud",[210],{"id":204,"name":205,"slug":206,"color":207,"icon":208},"\u002Fblog\u002Fcovers\u002Fself-host-dockge-vps-poster.svg",{"categorySlug":213,"appSlug":214},"despliegue-de-aplicaciones-devops","dockge",true,1794270520427]