Radicale: Servidor de calendario, notas y contactos autohospedado
Introducción
Radicale es un servidor de calendario, notas y contactos compatible con CalDAV y CardDAV, diseñado para ser ligero y fácil de usar. En este artículo, veremos cómo instalarlo utilizando Docker y configurar adecuadamente sus archivos esenciales.
Instalación
Para instalar Radicale utilizando Docker, seguimos estos pasos:
-
Clonar el repositorio oficial
git clone https://github.com/tomsquest/docker-radicale cd docker-radicale -
Editar el archivo
docker-compose.ymlEl archivo dedocker-compose.ymldebe incluir la siguiente configuración:services: radicale: image: tomsquest/docker-radicale container_name: Radicale ports: - 5232:5232 init: true read_only: true security_opt: - no-new-privileges:true cap_drop: - ALL cap_add: - SETUID - SETGID - CHOWN - KILL deploy: resources: limits: memory: 256M pids: 50 healthcheck: test: curl -f http://127.0.0.1:5232 || exit 1 interval: 30s retries: 3 restart: unless-stopped volumes: - ./data:/data - ./config:/config networks: default: name: Radicale_NETEn este caso, la carpeta
configes esencial, ya que contendrá el archivo de configuración. -
Crear el archivo de configuración Para configurar el servicio, debemos crear la carpeta
configy el archivoconfigdentro de ella:mkdir config touch config/configLuego, agregamos el siguiente contenido en
config/config:[server] hosts = 0.0.0.0:5232 [auth] type = htpasswd htpasswd_filename = /config/users htpasswd_encryption = bcrypt [storage] filesystem_folder = /data/collections [web] type = internalEsta configuración está basada en una autenticación mediante
htpasswd. Sin embargo, hay más parámetros disponibles para una configuración más avanzada. Puedes consultar una versión más completa del archivo de configuración en el siguiente enlace: Archivo de configuración completo en Gitea -
Crear el archivo de usuarios Para gestionar los accesos, necesitamos un archivo de usuarios. Lo creamos así:
touch config/usersDentro de
config/users, añadimos un usuario con contraseña encriptada con bcrypt. Un ejemplo:user1:$2y$10$7dxxxxxxxxE/iuBXWZuFxxxxxxxxxxxUB798xxxxxxxxxxQWPodemos generar el hash bcrypt usando el siguiente comando en local:
htpasswd -bnBC 10 "user1" "contraseña" | tr -d ':O también podemos generarlo en línea en AskApache Htpasswd Generator, seleccionando bcrypt como algoritmo de encriptación.
-
Levantar el contenedor Una vez creados los archivos de configuración, podemos iniciar el contenedor:
docker-compose up -dEsto iniciará el servicio en segundo plano.
Si es necesario, podemos detener el contenedor y modificar los archivos antes de reiniciarlo con:
docker-compose down
docker-compose up -d
Hacer público el acceso a Radicale
Si deseas hacer que Radicale sea accesible públicamente para poder conectarte a tus calendarios desde cualquier lugar, puedes utilizar Caddy como proxy inverso.
La configuración de Caddy sería la siguiente:
# Radicale
radicale.tudominio.es {
reverse_proxy http://192.168.1.8:5232 {
}
}
Donde http://192.168.1.8:5232 es la IP y el puerto del servidor Radicale. Si has elegido otro puerto o IP, cámbialo en consecuencia.
Una vez que accedas a tu nueva URL pública, podrás iniciar sesión con el usuario y la contraseña configurados previamente (la contraseña en texto plano que elegiste, no la versión encriptada con bcrypt). Desde ahí, podrás crear calendarios y sincronizarlos con distintas aplicaciones compatibles con CalDAV/CardDAV.
Conclusión
Con estos pasos, Radicale queda instalado y configurado correctamente en un entorno Docker. Ahora podemos acceder a su interfaz web o configurar clientes compatibles con CalDAV/CardDAV para sincronizar nuestros calendarios y contactos.