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.

Instalar Python Pip y la biblioteca Passlib

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.

Instalar la biblioteca Bcrypt

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.

Instalar el Calendario Radicale en Ubuntu

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.

Instalar el paquete de utilidades de Apache

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

Generar usuarios y contraseña htpasswd

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.

Iniciar y comprobar el estado del servicio radicale

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.

Instalar el servidor web Apache

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.

Configurar el host virtual de Apache para Radicale

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.

Autenticación básica de Radicale 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.

Página de inicio de sesión de Radical

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«.

Crear un nuevo 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‘.

Crear un nuevo calendario

Ahora serás redirigido al panel de usuario de radicale, como se muestra a continuación.

Panel de control del usuario de Radicale

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.

Scroll al inicio