Comment installer Radicale pour gérer vos contacts et calendriers sur Raspberry Pi ?

Certains n’aiment pas avoir leurs informations accessibles par des entreprises comme Google, Apple ou autre. Que ce soit pour les emails, les contacts ou les calendriers, plusieurs solutions existent. Cet article va vous permettre d’héberger vous même une partie de ces informations et d’en contrôler les accès grâce à Radicale.

Radicale est une solution permettant donc de stocker vos contacts et calendriers sur votre propre système et de les mettre à disposition via les protocoles CalDAV, CardDAV et WebDAV. Vous pouvez gérer plusieurs carnets ou calendriers et mettre en place des contrôles d’accès. Vous pouvez aussi y stocker vos cartes de contacts (vCard), Todo, etc.

La liste des outils supportés par Radicale sont :

  • Mozilla Lightning
  • GNOME Evolution
  • KDE KOrganizer
  • aCal, CalDAV-Sync et CardDAV-Sync pour Google Android
  • CalDavZAP
  • CardDavMATE
  • Apple iPhone
  • Apple iCal
  • syncEvolution

[EDIT] La GDR2 de Nokia ajoute le support CalDAV et CardDAV dans les Lumia sous WP8.

Pour mettre ce service en place :

  1. Mettre à jour le système
     apt-get update && apt-get -y upgrade
  2. Radicale est disponible via PyPi donc nous allons installer pip :
     apt-get install python-pip
  3. Lancer l’installation de Radicale
    pip install radicale
  4. Pour exécuter le serveur rien de plus simple :
    radicale
  5. Vous pouvez maintenant utiliser votre client pour vous connecter au serveur. Si vous devez y accéder depuis Internet et non votre réseau local, alors il faudra ouvrir le port 5232 sur votre box et surement utiliser un outil pour trouver votre machine (voir cet article).
    Vous retrouvez toutes les instructions en fonction des clients sur cette page.
    Voici un exemple pour iCal sous Mac OS :
    1. C’est pour la configuration de base : pas de protection par mot de passe, pas de certificat SSL, etc.
    2. Pour configurer de manière plus technique et sécurisée, il suffit de créer un répertoire /etc/radicale, puis d’y créer un fichier config. La configuration par défaut est la suivante :
      [server]
      # CalDAV server hostnames separated by a comma
      # IPv4 syntax: address:port
      # IPv6 syntax: [address]:port
      # IPv6 adresses are configured to only allow IPv6 connections
      hosts = 0.0.0.0:5232
      # Daemon flag
      daemon = False
      # File storing the PID in daemon mode
      pid =
      # SSL flag, enable HTTPS protocol
      ssl = False
      # SSL certificate path
      certificate = /etc/apache2/ssl/server.crt
      # SSL private key
      key = /etc/apache2/ssl/server.key
      # Reverse DNS to resolve client address in logs
      dns_lookup = True
      # Root URL of Radicale (starting and ending with a slash)
      base_prefix = /
      # Message displayed in the client when a password is needed
      realm = Radicale - Password Required lol
      
      [encoding]
      # Encoding for responding requests
      request = utf-8
      # Encoding for storing local collections
      stock = utf-8
      
      [auth]
      # Authentication method
      # Value: None | htpasswd | IMAP | LDAP | PAM | courier | http
      type = None
      
      # Usernames used for public collections, separated by a comma
      public_users = public
      # Usernames used for private collections, separated by a comma
      private_users = private
      # Htpasswd filename
      htpasswd_filename = /etc/radicale/users
      # Htpasswd encryption method
      # Value: plain | sha1 | crypt
      htpasswd_encryption = crypt
      
      # LDAP server URL, with protocol and port
      ldap_url = ldap://localhost:389/
      # LDAP base path
      ldap_base = ou=users,dc=example,dc=com
      # LDAP login attribute
      ldap_attribute = uid
      # LDAP filter string
      # placed as X in a query of the form (&(...)X)
      # example: (objectCategory=Person)(objectClass=User)(memberOf=cn=calenderusers,ou=users,dc=example,dc=org)
      # leave empty if no additional filter is needed
      ldap_filter =
      # LDAP dn for initial login, used if LDAP server does not allow anonymous searches
      # Leave empty if searches are anonymous
      ldap_binddn =
      # LDAP password for initial login, used with ldap_binddn
      ldap_password =
      # LDAP scope of the search
      ldap_scope = OneLevel
      
      # IMAP Configuration
      imap_hostname = localhost
      imap_port = 143
      imap_ssl = False
      
      # PAM group user should be member of
      pam_group_membership =
      
      # Path to the Courier Authdaemon socket
      courier_socket =
      
      # HTTP authentication request URL endpoint
      http_url =
      # POST parameter to use for username
      http_user_parameter =
      # POST parameter to use for password
      http_password_parameter =
      
      [rights]
      # Rights management method
      # Value: None | owner_only | owner_write | from_file
      type = None
      
      # File for rights management from_file
      file = ~/.config/radicale/rights
      
      [storage]
      # Storage backend
      # Value: filesystem | database
      type = filesystem
      
      # Folder for storing local collections, created if not present
      filesystem_folder = ~/.config/radicale/collections
      
      # Database URL for SQLAlchemy
      # dialect+driver://user:password@host/dbname[?key=value..]
      # For example: sqlite:///var/db/radicale.db, postgresql://user:password@localhost/radicale
      # See http://docs.sqlalchemy.org/en/rel_0_8/core/engines.html#sqlalchemy.create_engine
      database_url =
      
      [logging]
      # Logging configuration file
      # If no config is given, simple information is printed on the standard output
      # For more information about the syntax of the configuration file, see:
      # http://docs.python.org/library/logging.config.html
      config = /etc/radicale/logging
      # Set the default logging level to debug
      debug = False
      # Store all environment variables (including those set in the shell)
      full_environment = False
      
      # Additional HTTP headers
      #[headers]
      #Access-Control-Allow-Origin = *

      En parcourant ce fichier vous pouvez activer le SSL, changer la méthode d’authentification pour activer les mots de passe, etc.
      Toutes les informations et explications précises sont sur cette page.

    3. Pour activer l’identification par mot de passe stockés dans un fichier, vous devez changer la ligne
      type = None

      par

      type = htpasswd

      Le nom du fichier où va être stocké les identifiants est à précisé à la ligne

      htpasswd_filename = /etc/radicale/users

      Vous devez ensuite installer htpasswd avec :

      apt-get install apache2-utils

      Pour ajouter un user :

      htpasswd -c /etc/radicale/users chris
      New password:
      Re-type new password:
      Adding password for user chris

      L’option -c n’est à utiliser que pour ajouter le premier user.

    4. Pour partager votre calendrier avec d’autres personnes, c’est dans la section rights où vous pouvez donner le nom d’un fichier qui contiendra la liste des couples utilisateur/calendrier avec derrière quel utilisateur peut faire quoi. Par exemple :
      # This means user1 may read, user2 may write, user3 has full access.
      [user0/calendar]
      user1: r
      user2: w
      user3: rw
    5. Vous pouvez enfin activer le SSL et générer vos propres certificats en suivant la méthode de cet article.

    Ce n’est pas le genre d’outil que je vais utiliser chez moi mais j’espère que ça pourra vous aider dans votre quête de l’indépendance

Laisser un commentaire