Installer Radicale sur le Raspberry Pi pour gérer vos contacts et calendriers
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 :
- Mettre à jour le système
apt-get update && apt-get -y upgrade
- Radicale est disponible via PyPi donc nous allons installer pip :
apt-get install python-pip
- Lancer l’installation de Radicale
pip install radicale
- Pour exécuter le serveur rien de plus simple :
radicale
- 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 :
Et ensuite voici votre compte :
C’est pour la configuration de base : pas de protection par mot de passe, pas de certificat SSL, etc.
- 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. - 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.
- 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
- 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 🙂