- Implementación de un sistema de gestión de identidades y acceso centralizado mediante contenedores Docker.
- Configuración de protocolos estándar como OAuth2, OpenID Connect, SAML y LDAP para habilitar el Single Sign-On.
- Optimización de la arquitectura eliminando dependencias como Redis en versiones recientes para simplificar el despliegue.
- Integración de capas de seguridad avanzadas incluyendo autenticación multifactor y proxies inversos.
Gestionar una cuenta diferente para cada aplicación termina convirtiéndose en un problema de seguridad y administración. Authentik permite centralizar esas identidades y utilizar un único sistema de acceso para servicios internos, aplicaciones web y plataformas alojadas en tu propia infraestructura.
Se trata de una solución de código abierto para la gestión de identidades y accesos que puede funcionar como proveedor OAuth 2.0, OpenID Connect, SAML, LDAP, SCIM o proxy de autenticación. Gracias a Docker Compose, puedes desplegarla sin instalar manualmente todas sus dependencias.
La instalación oficial con Docker Compose está pensada para laboratorios domésticos, pruebas y entornos de producción pequeños. Para instalaciones con alta disponibilidad, muchos usuarios o requisitos empresariales más exigentes conviene separar PostgreSQL y plantear una arquitectura distribuida.
Qué es Authentik y cuándo conviene instalarlo

Authentik actúa como el proveedor de identidad central de tu infraestructura. En lugar de gestionar usuarios y contraseñas independientemente en cada aplicación, los servicios delegan la autenticación en Authentik.
Cuando una persona intenta acceder a una aplicación protegida, Authentik comprueba su identidad, aplica las políticas configuradas y decide si puede continuar. También permite añadir autenticación multifactor, grupos, roles y restricciones contextuales.
Puede integrarse directamente con aplicaciones compatibles con OAuth 2.0, OIDC, SAML o LDAP. Para servicios que no incorporan estos protocolos, dispone de proveedores proxy y Outposts capaces de proteger aplicaciones mediante un proxy inverso.
Authentik resulta especialmente útil cuando administras varias aplicaciones autogestionadas, quieres aplicar MFA desde un único lugar o necesitas controlar los accesos mediante grupos. Una vez instalado, por ejemplo, podrás conectar Authentik con Jellyfin utilizando LDAP u OpenID Connect.
Arquitectura actual de Authentik
Desde la versión 2025.10, Authentik ya no necesita Redis. Las tareas, la caché, las sesiones del Outpost integrado y las conexiones WebSocket utilizan PostgreSQL.
El archivo oficial de Docker Compose despliega tres servicios principales:
- PostgreSQL: conserva usuarios, políticas, sesiones, proveedores, flujos y el resto de la configuración.
- Servidor: proporciona la interfaz web, la API, los flujos de autenticación y el Outpost proxy integrado.
- Worker: ejecuta tareas en segundo plano, notificaciones, correos y trabajos administrativos.
La desaparición de Redis simplifica el despliegue, aunque PostgreSQL asume más responsabilidades. En una instalación pequeña no necesitas modificar manualmente sus conexiones, pero en entornos con mucha actividad conviene supervisar la base de datos y sus recursos.
Requisitos para instalar Authentik con Docker
Antes de comenzar, prepara un servidor Linux con los siguientes requisitos mínimos:
- Dos núcleos de CPU.
- 2 GB de memoria RAM.
- Docker Engine y Docker Compose v2.
- Espacio persistente para PostgreSQL y los archivos de Authentik.
- Acceso a los puertos 9000 y 9443, o a los puertos personalizados elegidos.
- Un dominio y un proxy inverso si vas a publicarlo en Internet.
Comprueba que Docker y Compose están disponibles:
docker --version
docker compose version
La sintaxis moderna es docker compose, con un espacio. Si solamente funciona el antiguo comando docker-compose, conviene actualizar el complemento de Compose antes de continuar.
Cómo instalar Authentik con Docker Compose

Crear la carpeta de instalación
Crea una carpeta dedicada y entra en ella. El nombre de esta carpeta también puede influir en los nombres que Docker asigna al proyecto y a sus volúmenes.
mkdir -p /opt/authentik
cd /opt/authentik
Si tu usuario no puede escribir en /opt, utiliza una carpeta dentro de su directorio personal o ejecuta solamente las operaciones necesarias con los permisos adecuados.
Descargar el archivo oficial de Compose
Descarga el archivo mantenido por Authentik:
wget https://docs.goauthentik.io/compose.yml
También puedes utilizar:
curl -O https://docs.goauthentik.io/compose.yml
Es preferible partir del archivo oficial completo y modificarlo después de comprobar que la instalación funciona. Crear un Compose reducido desde cero puede dejar fuera volúmenes, comprobaciones de salud o variables necesarias.
El archivo descargado referencia una versión concreta de Authentik. No sustituyas esa versión por latest: esta etiqueta quedó congelada en la versión 2025.2 y ya no recibe actualizaciones.
Generar las claves de PostgreSQL y Authentik
Authentik necesita una contraseña para PostgreSQL y una clave secreta propia. Puedes generarlas con OpenSSL y guardarlas directamente en el archivo .env:
echo "PG_PASS=$(openssl rand -base64 36 | tr -d '\n')" >> .env
echo "AUTHENTIK_SECRET_KEY=$(openssl rand -base64 60 | tr -d '\n')" >> .env
Protege este archivo porque contiene credenciales críticas para toda la instalación:
chmod 600 .env
No vuelvas a generar estas variables cada vez que arranques el servicio. La clave secreta debe mantenerse estable y guardarse junto con las copias de seguridad necesarias para recuperar la instancia.
Configurar puertos personalizados
De forma predeterminada, Authentik expone el puerto 9000 para HTTP y el 9443 para HTTPS. Si alguno está ocupado, añade al archivo .env otros puertos disponibles:
COMPOSE_PORT_HTTP=9001
COMPOSE_PORT_HTTPS=9444
Estas variables cambian los puertos publicados en el anfitrión. No necesitas modificarlas si los valores predeterminados están libres.
Configurar el correo electrónico
El correo no es obligatorio para arrancar Authentik, pero sí resulta recomendable para enviar alertas, verificaciones y mensajes de recuperación. Una configuración SMTP básica puede tener esta estructura:
AUTHENTIK_EMAIL__HOST=smtp.ejemplo.com
AUTHENTIK_EMAIL__PORT=587
AUTHENTIK_EMAIL__USERNAME=usuario
AUTHENTIK_EMAIL__PASSWORD=contraseña
AUTHENTIK_EMAIL__USE_TLS=true
AUTHENTIK_EMAIL__USE_SSL=false
[email protected]
Utiliza las opciones TLS o SSL correspondientes a tu proveedor. Normalmente no deben activarse ambas simultáneamente.
Iniciar los contenedores
Descarga las imágenes y levanta la instalación:
docker compose pull
docker compose up -d
No es necesario arrancar PostgreSQL manualmente antes que el resto. El archivo oficial incluye las dependencias y comprobaciones necesarias para que Compose gestione el orden de inicialización.
Comprueba el estado mediante:
docker compose ps
Los servicios server, worker y postgresql deben aparecer iniciados. Durante el primer arranque pueden tardar unos minutos mientras se prepara PostgreSQL y se ejecutan las migraciones.
No montes los archivos /etc/timezone ni /etc/localtime del anfitrión dentro de los contenedores. Authentik realiza sus operaciones internas en UTC y alterar esta configuración puede provocar errores en OAuth y SAML.
Cómo completar la configuración inicial
Abre en el navegador la dirección del servidor:
http://IP_DEL_SERVIDOR:9000
Authentik abrirá el flujo de configuración inicial para establecer la contraseña de akadmin, su cuenta administrativa predeterminada.
Si la redirección no funciona, abre directamente la ruta siguiente, respetando la barra final:
http://IP_DEL_SERVIDOR:9000/if/flow/initial-setup/
Elige una contraseña única y activa MFA después de entrar. También conviene crear una segunda cuenta administrativa de emergencia y guardar sus credenciales en un lugar seguro.
Desde el panel podrás empezar a crear:
- Usuarios y grupos para organizar las identidades.
- Aplicaciones que aparecerán en el portal del usuario.
- Proveedores OAuth, OIDC, SAML, LDAP o Proxy.
- Flujos y etapas para definir cómo se produce la autenticación.
- Políticas y vinculaciones para controlar quién accede a cada recurso.
Cómo publicar Authentik mediante un proxy inverso
Para una instalación accesible desde Internet debes colocar Authentik detrás de un proxy inverso con HTTPS. Puedes utilizar Caddy, Traefik, Nginx o Nginx Proxy Manager.
El proxy debe dirigir el dominio público hacia el puerto HTTP de Authentik, normalmente 9000, y conservar como mínimo estas cabeceras:
HostX-Forwarded-ProtoX-Forwarded-ForConnection: UpgradeUpgrade: WebSocket
Authentik utiliza conexiones WebSocket para comunicarse con los Outposts. Si el proxy no permite la actualización de conexión, la interfaz puede abrir correctamente mientras determinadas funciones proxy fallan.
Cuando el proxy se encuentre fuera de las redes privadas reconocidas por Authentik, añade su rango mediante AUTHENTIK_LISTEN__TRUSTED_PROXY_CIDRS. Limita el valor a las direcciones utilizadas realmente por el proxy.
No expongas directamente el puerto 9000 a Internet si ya utilizas un proxy. Limita su acceso mediante el cortafuegos o enlázalo únicamente a la interfaz necesaria.
Riesgo del socket de Docker y gestión de Outposts
El Compose oficial monta de manera predeterminada el socket de Docker dentro del worker:
/var/run/docker.sock:/var/run/docker.sock
Este acceso permite que Authentik despliegue y administre Outposts automáticamente. Sin embargo, cualquier contenedor con control sobre el socket dispone de privilegios muy elevados sobre el anfitrión.
Para reducir el riesgo puedes:
- Colocar un Docker Socket Proxy entre el worker y Docker.
- Eliminar el montaje y desplegar los Outposts manualmente.
- Restringir el acceso administrativo a Authentik.
- Mantener Docker, Authentik y el sistema operativo actualizados.
El servidor también incorpora un Outpost proxy integrado, suficiente para numerosos despliegues sencillos sin necesidad de crear otro contenedor.
Cómo comprobar que Authentik funciona correctamente
Consulta primero el estado general:
docker compose ps
Si un servicio se reinicia o no alcanza un estado saludable, revisa sus registros:
docker compose logs -f server
docker compose logs -f worker
docker compose logs -f postgresql
También puedes comprobar la configuración efectiva cargada por Authentik:
docker compose run --rm worker ak dump_config
Evita publicar esta salida completa porque puede revelar información sobre la infraestructura. Revisa especialmente la conexión con PostgreSQL, los puertos, el correo y las redes de confianza.
Cómo hacer copias de seguridad de Authentik
La base de datos PostgreSQL es el componente más importante. Contiene los usuarios, grupos, políticas, flujos, aplicaciones, proveedores y demás configuración persistente.
Puedes crear un volcado lógico mediante:
docker compose exec -T postgresql pg_dump -U authentik -d authentik -cC > authentik-postgres-backup.sql
Comprueba que el archivo se haya creado y guárdalo en otro equipo o sistema de almacenamiento. Una copia situada únicamente en el mismo disco no protege frente a la pérdida del servidor.
Además de PostgreSQL, revisa los directorios persistentes utilizados:
/data: iconos, fondos, archivos subidos e informes CSV./certs: certificados externos almacenados en el sistema de archivos./custom-templates: modificaciones personalizadas de la interfaz./blueprints: blueprints personalizados utilizados por la instancia.
Documenta también la versión instalada, conserva el archivo .env protegido y prueba periódicamente que las copias pueden restaurarse.
Cómo actualizar Authentik con Docker Compose
Antes de actualizar, lee las notas de la versión y crea una copia de seguridad de PostgreSQL. Authentik no admite volver de forma segura a una versión anterior después de aplicar las migraciones.
Las actualizaciones deben seguir el orden de las versiones principales. Por ejemplo, una instancia antigua no debería saltar directamente desde una versión 2025.2 hasta 2026.8. Primero debe instalarse la última revisión de cada versión intermedia indicada en la documentación.
Para actualizar dentro de la secuencia correspondiente:
wget -O compose.yml https://docs.goauthentik.io/compose.yml
docker compose pull
docker compose up -d
Después comprueba los registros y confirma que las migraciones hayan terminado. El servidor y todos los Outposts deben utilizar la misma versión de Authentik.
Errores frecuentes al instalar Authentik con Docker

La página de configuración inicial no aparece
Comprueba que los tres servicios estén ejecutándose y revisa los registros. También puedes reiniciar el conjunto:
docker compose restart
Después abre directamente /if/flow/initial-setup/. Como último recurso, la contraseña de akadmin puede establecerse desde el servidor:
docker compose exec server ak changepassword akadmin
PostgreSQL no acepta la contraseña
Comprueba que PG_PASS exista en .env y que el archivo se encuentre en la misma carpeta que compose.yml. No cambies la contraseña sin actualizar también la configuración de conexión y la credencial almacenada por PostgreSQL.
El puerto 9000 ya está ocupado
Define otro puerto publicado en .env:
COMPOSE_PORT_HTTP=9001
Recrea después los contenedores mediante docker compose up -d y accede utilizando el nuevo puerto.
El proxy devuelve un error 502
Comprueba que el proxy pueda alcanzar el servidor de Authentik. Si ambos están en Docker, deben compartir una red o utilizar una dirección accesible. Verifica también que Authentik haya terminado sus migraciones.
Aparecen errores CSRF o redirecciones incorrectas
Normalmente se deben a las cabeceras Host o X-Forwarded-Proto. Revisa la plantilla oficial correspondiente a tu proxy y evita cambiar arbitrariamente el dominio durante una sesión.
Los Outposts aparecen desconectados
Comprueba las conexiones WebSocket, la resolución del dominio y el acceso al socket de Docker. Si eliminaste su montaje por seguridad, tendrás que desplegar los Outposts manualmente.
OAuth o SAML falla por diferencias de tiempo
Elimina cualquier montaje de /etc/timezone o /etc/localtime dentro de los contenedores. Mantén sincronizado el reloj del anfitrión mediante NTP y deja que Authentik trabaje internamente en UTC.
El worker se reinicia continuamente
Revisa los registros del worker y de PostgreSQL. Una contraseña incorrecta, una base de datos no disponible, permisos insuficientes o una variable mal escrita pueden impedir que procese las tareas.
Instalar Authentik con Docker Compose permite crear un sistema centralizado de identidad y acceso sin configurar manualmente cada dependencia. El procedimiento correcto consiste en utilizar el Compose oficial, generar claves persistentes, proteger PostgreSQL, completar el flujo inicial y publicar el servicio mediante un proxy compatible con WebSockets.
La instalación es solamente el primer paso. Para mantenerla segura debes activar MFA, restringir el acceso administrativo, proteger el socket de Docker, realizar copias verificables y actualizar Authentik respetando siempre la secuencia de versiones.
Soy un apasionado de la tecnología que ha convertido sus intereses «frikis» en profesión. Llevo más de 10 años de mi vida utilizando tecnología de vanguardia y trasteando todo tipo de programas por pura curiosidad. Ahora me he especializado en tecnología de ordenador y videojuegos. Esto es por que desde hace más de 5 años que trabajo redactando para varias webs en materia de tecnología y videojuegos, creando artículos que buscan darte la información que necesitas con un lenguaje entendible por todos.
Si tienes cualquier pregunta, mis conocimientos van desde todo lo relacionado con el sistema operativo Windows así como Android para móviles. Y es que mi compromiso es contigo, siempre estoy dispuesto a dedicarte unos minutos y ayudarte a resolver cualquier duda que tengas en este mundo de internet.