Autogestión – Instalar calendarserver en Debian Wheezy

Uno de los servicios más conocidos de la empresa cuyo lema es “Sé bueno” es el calendario. Este permite que controlemos las veces que vamos al dentista o en que día y hora quedamos con ese señorito de compañía. Incluso podemos hacer listas de la compra! Qué locura. Pero se echa de menos cuando no puedes hacerlo.

Estas cosas se pueden hacer de manera sencilla en local, pero se complican un poco si queremos que se sincronicen varios dispositivos. Por eso aprenderemos a instalar, en cinco minutos, un servidor de calendario o caldav. Porqué nos pone la #autogestión

En concreto usaremos calendarserver, uno de tantos servidores caldav. Este viene de la mano de la empresa privativa Apple, aunque es software libre. Otros conocidos son radicale y DAViCal.

Diría que el más usado es DAViCAL, y es el que habría usado yo. Pero sólo permite ser usado con postgres y yo uso mariadb. Así que me decidí por calendarserver. Es sencillo de configurar y permite usar cualquier formato de BBDD que queramos, incluido sqlite. Al lío.

Instalando calendarserver

En Debian Wheezy nos logueamos cómo root e introducimos el siguiente comando en la consola:

aptitude install calendarserver

Cómo siempre, es de una dificultad abrumadora. Una vez instalado, pasamos a la configuración.

Configurando el servidor

Por defecto no mete los archivos de configuración en /etc/, por lo que tendremos que copiarlos a mano.

cp /usr/share/doc/calendarserver/examples/accounts.xml /etc/caldavd/
cp /usr/share/doc/calendarserver/examples/sudoers.plist /etc/caldavd/

En el archivo /etc/default/calendarserver des-comentamos la linea start_calendarserver=yes y podemos iniciar el servidor. Podemos ver que funciona en la dirección http://localhost:8008/calendars/users/admin/calendar/.

Hecho esto, sólo queda crear las cuentas en el archivo /etc/caldavd/accounts.xml. Un ejemplo de configuración es el siguiente:


<accounts realm="One Realm">
  <user>
    <uid>root</uid>
    <password>passwordQueGustemosParaRoot</password>
    <name>Super User</name>
  </user>
  <user>
    <uid>usuario1</uid>
    <password>passwordUsuario</password>
    <name>usuario1</name>
  </user>
  <group>
    <uid>users</uid>
    <password>users</password>
    <name>Users Group</name>
    <members>
      <member type="users">usuario1</member>
    </members>
  </group>
  <location>
    <uid>mercury</uid>
    <password>mercury</password>
    <name>Mecury Conference Room, Building 1, 2nd Floor</name>
  </location>
</accounts>

Una vez modificado, sólo queda reiniciar el servidor y configurar un cliente.

Configurando el cliente

El tema del cliente de caldav está un poco limitado. En gnu/linux los más usados son también clientes de correo, cómo evolution o thunderbird con el plugin lightning o sunbird. Pueden valer, pero a mi no me gustan. Por eso buscando por ahí, encontré khal que además es un cliente cli. Avisan que es experimental, pero a mi no me ha dado ningún problema. Este cliente depende a su vez de otro programa, llamado vdirsync. Explicaré rápidamente cómo instalar y configurar para usar el calendario.

pip install --user vdirsyncer
mdkir ~/.vdirsyncer
wget https://github.com/untitaker/vdirsyncer/blob/master/example.cfg -O ~/.vdirsyncer/config

El último paso es opcional, pero así tenemos un archivo de configuración con un punto de partida. Aquí podéis ver uno más sucinto:

[general]
[pair bob_calendar]
a = bob_calendar_local
b = bob_calendar_remote
collections = bob
[storage bob_calendar_local]
type = filesystem
path = ~/.vdirsyncer/calendars/
fileext = .ics
[storage bob_calendar_remote]
type = caldav
url = $url:8443/calendars/users/
auth = guess
username = bob
password = unPasswordComplejo
#fingerprint de nuestro ssl, si es autofirmado                                    
verify = false
verify_fingerprint = $fingerprint

Metemos en el crontab algo cómo esto: 0/30 * * * * vdirsyncer sync 2> /dev/null. Y ya tenemos vdirsync configurado. Sólo hace falta decirle a khal que lo use.

mkdir ~/.khal
nano ~/.khal/config

Y metemos esto en el config.

[calendars]
[[bob]]
path = ~/.vdirsyncer/calendars/bob/
color = green
[locale]
local_timezone= Europe/Berlin
default_timezone= Europe/Berlin
timeformat= %H:%M
dateformat= %d.%m.
longdateformat= %d.%m.%Y
datetimeformat= %d.%m. %H:%M
longdatetimeformat= %d.%m.%Y %H:%M
[sqlite]
path = ~/.khal/khal.db

Esto es sólo un vistazo rápido a todas las opciones que ofrecen tanto calendarserver cómo khal. Siempre se puede profundizar más. Y así, le hemos dado un vistazo rápido a todo lo relacionado con caldav.

1 Comment

Leave a Reply

Your email address will not be published. Required fields are marked *

To create code blocks or other preformatted text, indent by four spaces:

    This will be displayed in a monospaced font. The first four 
    spaces will be stripped off, but all other whitespace
    will be preserved.
    
    Markdown is turned off in code blocks:
     [This is not a link](http://example.com)

To create not a block, but an inline code span, use backticks:

Here is some inline `code`.

For more help see http://daringfireball.net/projects/markdown/syntax