Cómo instalar el Calendario Radicale (CalDAV y CardDAV) en Ubuntu 20.04
Radicale es un servidor gratuito y de código abierto de CalDAV (calendarios, listas de tareas) y CardDav (contactos). Pretende ser una aplicación de servidor (CalDAV y CardDav) pequeña y ligera, pero potente y que funciona desde el primer momento. Radicale te permite compartir calendarios y listas de contactos a través de CalDAV, CardDAV y HTTPS. Y lo más importante, puede ser seguro a través de la conexión TLS y la autenticación. Además, funciona con muchos clientes CalDAV y CardDAV como gnome-calendar, evolution, Mozilla thunderbird, DAVx (para android), etc.
Radicale viene con una configuración sencilla, y es fácil de configurar e instalar. Radicale está escrito en Python, y funciona en sistemas operativos como Linux, BSD, macOS y Windows.
En este tutorial, aprenderás a instalar y configurar Radicale en Ubuntu 20.04.
Requisitos previos
- Un Ubuntu 20.04. Asegúrate de que los paquetes y repositorios están actualizados.
- Un usuario root o con privilegios de root. Se utilizará para instalar nuevos paquetes y editar la configuración del sistema.
Instalación de la biblioteca Passlib y Bcrypt
Al principio, instalarás algunas dependencias de los paquetes para la instalación de radicale. Instalarás el módulo python-pip, python-passlib, y luego instalarás el módulo python bcrypt desde el PyPI (repositorio de python).
1. Ejecuta el siguiente comando apt para instalar el módulo python-pip y python-passlib en el sistema Ubuntu.
sudo apt install python3-pip python3-passlib
Escribe‘Y’ y pulsa‘Enter’ para instalar todos esos paquetes.
2. Si la instalación se ha completado, ejecuta el siguiente comando pip para instalar el módulo bcrypt de Python.
sudo pip3 install bcrypt
Ahora verás la siguiente salida.
Instalación y configuración de Radicale
Por defecto, los paquetes de radicale están disponibles en el repositorio de Ubuntu.
1. Ejecuta el siguiente comando apt para instalar radicale en el sistema Ubuntu.
sudo apt install radicale
Escribe‘Y‘ y pulsa‘Enter’ para instalar los paquetes de radicale.
2. Una vez completada la instalación, editarás la configuración por defecto de radicale que está disponible en‘/etc/radicale/config‘.
Edita la configuración de radicale utilizando el comando nano que aparece a continuación.
sudo nano /etc/radicale/config
3. En la sección [servidor ], cambia la configuración por defecto con la siguiente configuración.
[server]
host = 127.0.0.1:5232
max_connections = 20
max_content_length = 100000000
timout = 30
El servidor radicale se ejecutará sólo en la dirección IP local porque pondremos el servidor web Apache como proxy inverso al frente del mismo.
4. A continuación, comenta la configuración SSL como se indica a continuación, ya que el cifrado SSL se realizará a través del proxy inverso Apache.
# SSL flag, enable HTTPS protocol
#ssl = False
# SSL certificate path
#certificate = /etc/ssl/certs/ssl-cert-snakeoil.pem
# SSL private key
#key = /etc/ssl/private/ssl-cert-snakeoil.key
5. Después, pasa a la sección ‘[auth]’ y cambia la configuración por defecto como sigue
[auth]
type = htpasswd
htpasswd_filename = /etc/radicale/users
htpasswd_encryption = bcrypt
El tipo de autenticación que vamos a utilizar es‘htpasswd’ con la encriptación fuerte‘bcrypt‘, y se almacenará una lista de usuarios en el archivo ‘/etc/radicale/users‘.
6. A continuación, en la configuración inferior verás la sección ‘[ storage]’. Cambia la configuración como se indica a continuación para habilitar el backend de almacenamiento de radicale.
[storage]
type = multifilysystem
filesystem_folder = /var/lib/radicale/collections
filesystem_locking = True
El backend de almacenamiento por defecto para radicale es ‘multifilesystem’, y todos los datos de los usuarios están disponibles en el directorio ‘/var/lib/radicale/collections’.
Ahora pulsa‘Ctrl+x‘ y escribe ‘y’, luego pulsa el botón‘Enter‘ para guardar y salir.
Generar usuarios para Radicale
En este punto, la configuración de radicale está completada. Y por ahora, vas a crear un nuevo usuario y contraseña para radicale, que se puede generar con el comando ‘htpasswd’ (que forma parte del paquete ‘apache2-utils’).
1. Ejecuta el siguiente comando apt para instalar el paquete ‘apache2-utils‘.
sudo apt install apache2-utils
Escribe‘Y’ y pulsa‘Enter’ para continuar la instalación.
2. A continuación, genera un nuevo usuario (para este ejemplo es el usuario ‘johndoe’) y una contraseña ejecutando el comando htpasswd que aparece a continuación.
sudo htpasswd -B -c /etc/radicale/users johndoe
Ahora escribe y repite la contraseña para el usuario ‘johndoe‘.
Opciones importantes que debes conocer:
- Opción-B – Esto obligará a utilizar el cifrado fuerte ‘bcrypt’, no el predeterminado ‘md5’.
- Opción -c – El archivo de contraseñas que quieres crear. El nombre de usuario y las contraseñas están disponibles en ese archivo.
Para añadir otro usuario, sólo tienes que ejecutar el comando de arriba y cambiar el nombre de usuario por el tuyo.
Opcionalmente, comprueba el archivo de contraseñas generado‘/etc/radicale/users‘ utilizando el comando cat como se indica a continuación.
cat /etc/radicale/users
3. Tras generar el archivo de usuarios y contraseñas, activa el servicio radicale para que se inicie automáticamente al arrancar.
sudo systemctl enable radicale
4. Ahora inicia el servicio radicale y comprueba el estado del servicio ejecutando el siguiente comando.
sudo systemctl start radicale
sudo systemctl status radicale
Si el servicio radicale está activo y en funcionamiento, verás una salida similar a la de abajo. De lo contrario, verás el estado del servicio radicale como «fallido» en la parte inferior de los mensajes de registro.
Configurar Apache como proxy inverso para Radicale
En esta fase, instalarás y configurarás el Apache como proxy inverso para el radicale.
1. Instala los paquetes de Apache ejecutando el siguiente comando apt.
sudo apt install apache2
Ahora escribe‘Y’ y pulsa‘Enter’ para continuar la instalación.
2. Una vez completada la instalación, ejecuta el siguiente comando para habilitar algún módulo de proxy para Apache y habilitar el módulo mod_ssl.
sudo a2enmod proxy proxy_ajp proxy_http rewrite deflate headers proxy_balancer proxy_connect proxy_html ssl
3. Ahora cambia el directorio de trabajo a‘/etc/apache2/sites-available‘ y crea una nueva configuración de host virtual‘radicale.conf‘.
cd /etc/apache2/sites-available/
sudo nano radicale.conf
Copia y pega la siguiente configuración y asegúrate de cambiar el nombre del dominio por el tuyo propio.
<VirtualHost *:80>
ServerName cal.domain-name.io
ServerAdmin [email protected]
ErrorLog ${APACHE_LOG_DIR}/cal-dmain-name.io.error.log
CustomLog ${APACHE_LOG_DIR}/cal-dmain-name.io.access.log combined
ProxyRequests Off
<Proxy *>
Order deny,allow
Allow from all
</Proxy>
RewriteEngine On
RewriteRule ^/radicale$ /radicale/ [R,L]
<Location "/radicale/">
AuthType Basic
AuthName "Radicale - Password Required"
AuthUserFile "/etc/radicale/users"
Require valid-user
ProxyPass http://localhost:5232/ retry=0
ProxyPassReverse http://localhost:5232/
RequestHeader set X-Script-Name /radicale
RequestHeader set X-Remote-User expr=%{REMOTE_USER}
</Location>
<Location />
Order allow,deny
Allow from all
</Location>
</VirtualHost>
Guarda la configuración pulsando la tecla‘Ctrl+x‘ y escribe‘y’, luego pulsa‘Enter‘.
Con esta configuración, el radicale estará disponible en la ruta del dominio ‘dominio.com/radicale’, no en la ruta raíz del nombre del dominio.
4. A continuación, ejecuta el siguiente comando para activar la configuración del host virtual ‘radicale.conf‘.
sudo a2ensite radicale.conf
5. Después, verifica la configuración de Apache y asegúrate de que no hay ningún error, y reinicia el servicio de Apache para aplicar la nueva configuración del host virtual.
sudo apachectl configtest
sudo systemctl restart apache2
Si tu configuración de Apache es correcta, verás el mensaje«Sintaxis correcta» después de ejecutar el comando «apachectl». Y a continuación se muestra la salida similar que obtendrás.
Generar SSL Letsencrypt
En esta etapa, asegurarás la instalación de radicale utilizando el SSL Letsencrypt.
1. Ejecuta el siguiente comando para instalar el plugin certbot y certbot-apache.
sudo apt install certbot python-certbot-apache
2. Una vez completada la instalación, genera un nuevo Letsencrtypt SSL para el nombre de dominio de radicale utilizando el siguiente comando de certbot.
sudo certbot --apache -d domain-name.io -d www.domain-name.io
Y se te harán algunas preguntas a continuación.
- Una dirección de correo electrónico: cuando el certificado SSL caduque, se te avisará a este correo.
- Condiciones de servicio de Letsencrypt: escribe«A» para aceptarlas.
- Compartir el correo electrónico con la EFF: puedes elegir «N» para no.
- Redirigir automáticamente HTTP a HTTPS: elige el número ‘ 2 ‘ para activar la redirección automática.
Una vez completado el proceso, verás que los certificados SSL están disponibles en el directorio ‘/etc/letsencrypt/live/domain.com’. Y el host virtual de Apache ha cambiado con la configuración adicional de letsencrypt.
Verifica la instalación
Abre tu navegador web y escribe la instalación de la URL radicale en la barra de direcciones.
https://cal.domain-name.io/radicale/
Ahora se te pedirá el usuario y la contraseña para la autenticación básica de Apache.
Escribe tu usuario y contraseña, y haz clic en el botón«Iniciar sesión«.
Y obtendrás la página de inicio de sesión de Radicale como se indica a continuación.
Escribe tu usuario y contraseña para Radicale y haz clic en el botón ‘Siguiente‘.
Una vez que hayas iniciado la sesión, haz clic en el enlace«Crear una nueva agenda o calendario«.
Cambia el título, la descripción, el tipo y el color por los tuyos, y luego haz clic en el botón ‘Crear‘.
Ahora serás redirigido al panel de usuario de radicale, como se muestra a continuación.
Conclusión
¡Enhorabuena! Ahora has instalado con éxito Radicale en Ubuntu 20.04 Server. Para la siguiente etapa, puedes conectarte a tu nuevo servidor radicale de forma segura utilizando los clientes CalDAV/CardDAV desde tu ordenador o smartphone android.