Guía Completa para Instalar y Configurar Authentik con Docker

Última actualización: 31/08/2026

  • 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.
Cómo instalar Authentik con Docker Compose paso a paso

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

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.

Cómo conectar Authentik con Jellyfin mediante LDAP
Related article:
Cómo conectar Authentik con Jellyfin mediante LDAP

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.

Contenido exclusivo - Clic Aquí  Los mejores programas antimalware

Cómo instalar Authentik con Docker Compose

Cómo instalar Authentik con Docker

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.

Contenido exclusivo - Clic Aquí  Cómo abrir un archivo SUN

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:

  • Host
  • X-Forwarded-Proto
  • X-Forwarded-For
  • Connection: Upgrade
  • Upgrade: 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.
Contenido exclusivo - Clic Aquí  Guía completa para crear imágenes con Google Fotos

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

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.