Pocket-ID: Autenticación sencilla con Passkeys para tus servicios autoalojados 🚀
Descubre cómo desplegar Pocket-ID, un servidor de autenticación OIDC ligero y sin contraseñas basado en Passkeys, ideal para integrarlo fácilmente en tus servicios autoalojados. Olvídate de las contraseñas para siempre con este tutorial paso a paso
Si, como yo, tienes diversos servicios autoalojados y buscas simplificar la gestión de usuarios sin sacrificar seguridad, te interesa conocer Pocket-ID. Es un proveedor de autenticación ligero, que soporta exclusivamente métodos modernos de autenticación sin contraseña (Passkeys), reduciendo enormemente la complejidad al ofrecer una experiencia más cómoda y segura.
¿Qué es Pocket-ID?
Pocket-ID es un proveedor de identidad compatible con OpenID Connect (OIDC), diseñado para autoalojarse, que elimina completamente el uso de contraseñas tradicionales. Usa Passkeys, claves criptográficas vinculadas a dispositivos del usuario que permiten autenticarse de forma segura, sencilla y rápida.
Desde que lo descubrí, lo he implementado en mis servicios por la simplicidad, seguridad y facilidad que aporta. Además, puedo tener las Passkeys en mi Vaultwarden o usar las llaves físicas de Yubikey, facilitando así el uso de la que mejor me convenga en cada momento.
Ventajas de usar Pocket-ID en tu homelab
- 🔐 Autenticación sin contraseñas: Elimina riesgos asociados a robos o pérdida de credenciales.
- 🚀 Sencillez de despliegue: Usa Docker y Docker Compose para desplegar rápidamente.
- 🛡️ Privacidad total: Tenerlo autoalojado implica mantener control absoluto sobre tus datos.
- 🔗 Integración sencilla mediante OIDC, apto para servicios como Miniflux, Forgejo, y más.
- 📦 Mínimos requisitos: Ideal para entornos domésticos o pequeñas empresas.
¿Por qué lo he implementado?
Principalmente por comodidad y seguridad. Pocket-ID simplifica notablemente la administración de usuarios, elimina los problemas típicos asociados a contraseñas olvidadas y, además, al ser open-source puedo alojarlo fácilmente en mi servidor, asegurando máxima privacidad.
Cómo desplegar Pocket-ID usando Docker Compose 📦
Desplegar Pocket-ID es tan simple como preparar este archivo docker-compose.yml
:
services:
pocket-id:
image: ghcr.io/pocket-id/pocket-id
container_name: pocket-id
restart: always
environment:
- APP_URL=https://auth.midominio.es
- TRUST_PROXY=true
- MAXMIND_LICENSE_KEY=
- PUID=${USERID}
- PGID=${GROUPID}
networks:
- tunnel
volumes:
- "./data:/app/data"
# Optional healthcheck
healthcheck:
test: "curl -f http://localhost:1411/healthz"
interval: 2m
timeout: 30s
retries: 2
start_period: 10s
logging:
driver: "json-file"
options:
max-size: "10m"
max-file: "5"
networks:
tunnel:
external: true
name: cloudflare
Fichero docker-compose para levantar Pocket-ID
Aspectos importantes:
- Pocket-ID usará el puerto
1411
. - Usa SQLite (por defecto) para un despliegue sencillo.
- La variable
APP_URL
debe apuntar a tu dominio válido con HTTPS.
Inicia Pocket-ID con: docker-compose up -d
¡Listo! Ya puedes acceder a la interfaz desde https://auth.midominio.es
(o la que hayas puesto en tu caso, claro 😅.
Configura el servicio
Una vez accedemos al servicio, nos guiará para crear nuestra primera clave de acceso. Podremos usar tanto una llave física (como las de Yubikey) como generarla nosotros, usando Vaultwarden o, si lo hacemos desde el móvil por ejemplo, mediante la huella y el servicio que nos ofrece Google (en Android) o Apple (en iOS).
Una vez creada, podremos agregar más llaves (cosa que os recomiendo, para no tener sólo una y que, en caso de que la perdamos, no podamos acceder más), crear usuarios, grupos... y cosas como configurar un servicio SMTP para enviar correos de verificación, cambiar la apariencia de la página web, conectar un servidor LDAP para gestionar los usuarios, etc.
Crea el primer cliente OIDC: Integración rápida con Miniflux mediante Pocket-ID 🔗
Aquí tienes un ejemplo práctico de cómo integrar Miniflux con Pocket-ID usando OIDC:
1. Crear cliente OIDC en Pocket-ID
En Pocket-ID crea un nuevo cliente con estos datos:
- Redirect URI:
https://miniflux.midominio.es/oauth2/oidc/callback
- Al guardarlo obtendrás
CLIENT_ID
yCLIENT_SECRET
2. Conecta Miniflux
En Miniflux, si lo tienes con Docker (como es mi caso) deberás añadir las variables de entorno:
OAUTH2_PROVIDER=oidc
OAUTH2_CLIENT_ID=
OAUTH2_CLIENT_SECRET=
OAUTH2_REDIRECT_URL=https://miniflux.midominio.es/oauth2/oidc/callback
OAUTH2_OIDC_DISCOVERY_ENDPOINT=https://auth.midominio.es
OAUTH2_OIDC_PROVIDER_NAME=PocketID
Variables de entorno de Miniflux para añadir la integración OIDC
Una vez lo tengas, reinicias el servicio y entras en él con tus credenciales, te vas a Configuración y verás que te sale la opción Vincular mi cuenta de PocketID. Si has puesto bien los datos, al darle te redirigirá a Pocket-ID, te pedirá los permisos y ya estará listo. Cierra sesión en Miniflux y verás como en la pantalla de login ahora te sale la opción Iniciar sesión con tu cuenta de PocketID. Al pulsar sobre ella... entrarás sin haber escrito un solo carácter 🎉.
Conclusiones y recomendaciones personales 💡
Pocket-ID se ha convertido en mi solución preferida frente a herramientas más complejas como Keycloak o Authelia, especialmente por su simplicidad, seguridad y enfoque exclusivo en Passkeys. Resulta ideal si, como yo, buscas simplificar al máximo la gestión de identidades en tus servicios autoalojados sin renunciar a privacidad ni seguridad.
Si aún no te has decidido, dale una oportunidad y te aseguro que no querrás volver atrás.
Y tú, ¿qué opinas? ¿Te animas a probar Pocket-ID? ¡Déjame tus comentarios!
¡Nos leemos en la siguiente entrada! 🚀
Si te ha gustado la entrada, o te ha sido útil y quieres ayudarme a pagar los gastos que conlleva el servidor y mantener así el blog libre completamente de anuncios, puedes hacer una donación pulsando sobre el siguiente botón: