Introducción
Keycloak es una solución de gestión de identidad y acceso de código abierto que te permite gestionar la autenticación y autorización de usuarios. Autoalojar Keycloak en un Servidor Privado Virtual (VPS) te ofrece control total sobre tu proceso de autenticación, lo que lo convierte en una opción popular entre desarrolladores y entusiastas de homelab. En esta guía, recorreremos los pasos para instalar Keycloak en un VPS, centrándonos especialmente en el uso de Docker para simplificar el despliegue.
Elegir el Proveedor de VPS Adecuado
Al seleccionar un VPS para autoalojar Keycloak, considera el rendimiento, los precios y los recursos disponibles. Aquí tienes una comparación de algunos de los principales proveedores de VPS que puedes considerar para tu despliegue de Keycloak:
| Proveedor | Precio Mensual | RAM | Núcleos de CPU | Almacenamiento |
|---|---|---|---|---|
| Contabo VPS | 5.99 EUR | 4 GB | 2 | 300 GB SSD |
| Hetzner Cloud | 4.15 EUR | 2 GB | 1 | 20 GB SSD |
| DigitalOcean | 6 USD | 1 GB | 1 | 25 GB SSD |
| Vultr | 6 USD | 1 GB | 1 | 25 GB SSD |
| Linode (Akamai) | 5 USD | 2 GB | 1 | 50 GB SSD |
Puedes encontrar una comparación completa de VPS para obtener información más profunda.
Requisitos Previos
Antes de comenzar, asegúrate de tener lo siguiente:
- Un VPS con recursos adecuados (se recomienda al menos 2 GB de RAM).
- Un nombre de dominio apuntando a la dirección IP de tu VPS (opcional pero recomendado).
- Conocimientos básicos de la línea de comandos de Linux y SSH.
Instalando Keycloak en el VPS
Paso 1: Accede a Tu VPS
Conéctate a tu VPS a través de SSH. Reemplaza tu-usuario y tu-ip con tu nombre de usuario y la dirección IP de tu VPS.
ssh tu-usuario@tu-ip
Paso 2: Instalar Docker
Instalar Keycloak usando Docker simplifica el proceso de configuración y gestión. Así es como se instala Docker en un servidor Ubuntu:
sudo apt update
sudo apt install -y apt-transport-https ca-certificates curl software-properties-common
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add -
sudo add-apt-repository "deb [arch=amd64] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable"
sudo apt update
sudo apt install -y docker-ce
Para verificar la instalación:
docker --version
Paso 3: Iniciar Keycloak Usando Docker
Para ejecutar Keycloak como un contenedor de Docker, ejecuta los siguientes comandos:
sudo docker pull jboss/keycloak
sudo docker run -d -p 8080:8080 --name keycloak \
-e KEYCLOAK_USER=admin \
-e KEYCLOAK_PASSWORD=password \
jboss/keycloak
En este comando, KEYCLOAK_USER y KEYCLOAK_PASSWORD se establecen para crear un usuario administrador. Asegúrate de cambiar estos por credenciales seguras.
Paso 4: Acceder a Keycloak
Después de que el contenedor se inicie, accede a Keycloak navegando a http://tu-ip-vps:8080/auth en tu navegador web. Usa las credenciales que configuraste para iniciar sesión.
Paso 5: Configurando Keycloak
En el primer inicio de sesión, puedes comenzar a configurar tus reinos, clientes y usuarios. Keycloak ofrece una documentación extensa para ayudar con estas configuraciones.
Mejores Prácticas para Autoalojar Keycloak
- Asegura Tu VPS: Actualiza tu sistema regularmente y utiliza un firewall para restringir el acceso.
- Habilita HTTPS: Usa Let’s Encrypt para crear un certificado SSL gratuito y configura Keycloak para que funcione a través de HTTPS.
- Haz Copias de Seguridad de los Datos: Haz copias de seguridad regularmente de tu base de datos de Keycloak y de la configuración del contenedor.
Preguntas Frecuentes
1. ¿Puedo ejecutar Keycloak sin Docker?
Sí, puedes instalar Keycloak sin Docker. Puedes descargar el servidor independiente desde el sitio web de Keycloak y seguir las instrucciones de instalación proporcionadas para tu sistema operativo. Sin embargo, usar Docker ofrece un despliegue y gestión más fáciles, con menos conflictos de dependencias.
2. ¿Cómo escalo Keycloak en un VPS?
Para escalar Keycloak en un VPS, puedes desplegar múltiples instancias de Keycloak detrás de un balanceador de carga. Considera usar Docker Compose o Kubernetes para orquestar múltiples contenedores. Cada instancia debe compartir la misma base de datos para mantener la consistencia de las sesiones. Asegúrate de que tu VPS tenga suficientes recursos para manejar la carga adicional de manera efectiva.
3. ¿Qué bases de datos puede usar Keycloak?
Keycloak admite varias bases de datos, incluyendo PostgreSQL, MySQL, MariaDB e incluso H2 para fines de desarrollo. Para entornos de producción, se recomienda PostgreSQL o MySQL debido a su robustez y escalabilidad. Puedes configurar la conexión a la base de datos en standalone.xml o a través de variables de entorno en Docker.
Siguiendo estas instrucciones, puedes autoalojar con éxito Keycloak en un VPS y tomar control de tu gestión de identidad y acceso. Para más información sobre el autoalojamiento de aplicaciones, considera explorar comunidades como r/selfhosted o repositorios como awesome-selfhosted para obtener recursos y orientación adicionales.