Cuando instalo roundcube uno de los plugins que siempre me quedo a medias por no poder hacerlo funcionar es el de calendario. Así que hago este post, que aunque de momento no he conseguido hacer funcionar la conexión creo que me queda poco. Cuando lo consiga actualizo el post para que quede la configuración correcta.
Lo primero como es de suponer es necesario tener instalado roundcube. Un post completito de como hacerlo lo puedes encontrar aquí.
Primero descargamos el plugin en un directorio, por ejemplo /root y copiamos los plugins:
# cd /root # mkdir roundcube_3rd_party_plugins # cd roundcube_3rd_party_plugins # git clone https://git.kolab.org/diffusion/RPK/roundcubemail-plugins-kolab.git # cd roundcubemail-plugins-kolab # cp -R calendar libcalendaring libkolab /var/www/roundcube/plugins/ # chown -R www-data:www-data /var/www/roundcube/plugins/
Antes de seguir será necesario arreglar un problema que nos encontraremos con la apariencia del calendario. Crearemos un enlace simbólico en el directorio de skins de nuestra instancia de roundcube. Luego será necesario instalar nodejs y less, ejecutar un script y copiar el css.
# ln -s /var/www/roundcube/skins . # curl -fsSL https://deb.nodesource.com/setup_20.x | bash - # apt update && apt -y install nodejs # npm install less # ./less-build.sh # cp plugins/libkolab/skins/elastic/libkolab.min.css /var/www/roundcube/plugins/libkolab/skins/elastic/libkolab.css
Ahora en el fichero de config añadimos los tres plugins y definimos la configuración de la configuración del servidor calDav
# vi /var/www/roundcube/config/config.inc.php $config['plugins'] = [ ... 'calendar', 'libcalendaring', 'libkolab', ]; // configuración para nextcloud //$config['calendar_caldav_server'] = "https://[nextcloud_url]/remote.php/dav"; //$config['calendar_caldav_url'] = 'https://[nextcloud_url]/remote.php/dav/calendars/%u/%n'; // configuración para caldav $config['calendar_caldav_server'] = "https://mail.capa8.net/radicale"; $config['calendar_caldav_url'] = 'https://mail.capa8.net/radicale/%u';
Como usuario www-data vamos a instalar la dependencia de php
# mkdir /var/www/.cache # chown -R www-data:www-data /var/www/.cache # su - www-data -s /bin/bash $ cd roundcubemail-1.6.11 $ composer require sabre/vobject $ exit
Lo siguiente será crear las tablas y dar permisos al usuario para que pueda trabajar sobre estas tablas:
# cp plugins/calendar/drivers/database/SQL/postgres.initial.sql /var/lib/postgresql/ # su - postgres # psql roundcube_db < postgres.initial.sql # psql roundcube_db roundcube_db=# GRANT SELECT, INSERT, UPDATE, DELETE ON ALL TABLES IN SCHEMA public TO roundcube_user; GRANT roundcube_db=# GRANT USAGE, SELECT, UPDATE ON ALL SEQUENCES IN SCHEMA public TO roundcube_user; GRANT
Importante! asegurate que se crean correctamente con \dt+ (si no lo hacen, crealas manualmente copiando y pegando el contenido del fichero sql)
Fuente: roundcubeforum
A partir de aquí la apariencia funciona correctamente pero no conecta con el servidor radicale de modoboa...
Nota: El servidor que estoy instalando está detrás de un frontal de nginx, así que a la configuración de modoboa en parameters>radicale he tenido que poner http://mail.capa8.net/radicale/ (cambiar el https por http). Sin cambiar esto, no podía crear calendarios
Nota: He conseguido que el calendario permita crear calendarios, pero tiene pinta que lo está haciendo en la base de datos local, no en el radicale