Baikal est un logiciel de calendrier simple qui vous permet de synchroniser en ligne des fichiers CardDAV et CalDAV. Contrairement à Google Calendar, il synchronise les fichiers de calendrier entre différents clients et appareils de manière transparente. L’application prend également en charge les instances multi-utilisateurs, ce qui signifie qu’il est possible d’utiliser Baikal avec d’autres personnes et de partager des événements de calendrier comme vous le faites dans Google Calendar. Par exemple, vous pouvez héberger un serveur Baikal personnel pour vos amis et votre famille ainsi que pour vos collègues.
Conditions préalables
Avant d’installer Baikal, préparez les ressources suivantes :
- Une machine accessible depuis l’extérieur de votre réseau domestique: il peut s’agir soit d’un serveur domestique dont les ports sont ouverts, soit d’un VPS dédié que vous louez actuellement.
- Un nom de domaine qui pointe vers votre machine: J’utiliserai le nom « yetanotherbaikalserver.xyz » pour ce tutoriel.
- Accès root à votre machine: il s’agit d’installer les utilitaires et les programmes nécessaires au fonctionnement du Baïkal.
Compte tenu de ces facteurs, ce tutoriel se concentre uniquement sur l’installation de Baikal sur un VPS Debian 11 à partir de DigitalOcean.
Installation des dépendances de Baikal
Commencez par créer un compte utilisateur séparé sur votre machine pour vous assurer que les erreurs et les erreurs au cours du processus n’affecteront pas l’ensemble du système :
sudo useradd -s /bin/bash -d /home/baikal -m -G sudo baikal sudo passwd baikal

Une fois cela fait, passez à ce nouvel utilisateur en exécutant su baikal. À partir de là, vous pouvez maintenant installer les dépendances de Baikal en exécutant la commande suivante :
sudo apt install php php7.4-fpm php7.4-xml php-sqlite3 sqlite3 nginx certbot python3-certbot-nginx iptables iptables-persistent ufw net-tools unzip

Configuration du pare-feu du serveur
La configuration du pare-feu de votre machine est nécessaire pour vous assurer que votre serveur bloquera toutes les requêtes inutiles qui lui sont adressées. Pour le configurer, exécutez l’ensemble de commandes suivant :
sudo ufw allow 80 sudo ufw allow 443
Les commandes ci-dessus ouvriront simplement les ports 80 et 443 pour une connexion externe et fermeront tous les ports réseau de la machine.

Configuration de Nginx pour le Baïkal
Bien qu’il soit possible d’utiliser une variété de serveurs Web pour Baikal, cette section se concentre sur sa configuration aux côtés de Nginx.
Pour commencer, créez un fichier de configuration de site sous « /etc/nginx/sites-available »:
sudo nano/etc/nginx/sites-available/baikal

A partir de là, écrivez un server{} block à l’intérieur de ce nouveau fichier de configuration. Voici une configuration de base qui devrait fonctionner immédiatement :
server { listen 80; server_name yetanotherbaikalserver.xyz; root /var/www/baikal/html; index index.php; rewrite ^/.well-known/caldav /dav.php redirect; rewrite ^/.well-known/carddav /dav.php redirect; charset utf-8; location ~ /(\.ht|Core|Specific|config) { deny all; return 404; } location ~ ^(.+\.php)(.*)$ { try_files $fastcgi_script_name =404; include /etc/nginx/fastcgi_params; fastcgi_split_path_info ^(.+\.php)(.*)$; fastcgi_pass unix:/var/run/php/php-fpm.sock; fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; fastcgi_param PATH_INFO $fastcgi_path_info; } }
La façon dont cela fonctionne est que Nginx écoute toutes les connexions au port 80 pour le nom d’hôte « yetanotherbaikalserver.xyz ». Une fois qu’un client se connecte, le serveur Web redirige cette connexion vers le répertoire racine de Baikal, où Nginx ouvre ensuite un socket UNIX pour tous les fichiers .php, leur permettant de s’exécuter en tant qu’application Web.
Obtention et déballage du Baïkal
Pour télécharger et installer Baikal sur votre machine, créez d’abord le répertoire web racine et basculez-y :
sudo mkdir -p /var/www/ && cd /var/www/
Ensuite, utilisez wget pour extraire la dernière version binaire de Baikal :
sudo wget https://github.com/sabre-io/Baikal/releases/download/0.9.2/baikal-0.9.2.zip

À partir de là, installez l’application Web en décompressant son archive binaire à l’aide de la commande suivante :
sudo unzip ./baikal-0.9.2.zip

Enfin, assurez-vous que Nginx peut lire et écrire dans le répertoire racine Baikal en exécutant chown sur le dossier « baïkal » :
sudo chown -R www-data:www-data ./baikal
Redémarrer Nginx et installer SSL
Vous pouvez maintenant activer votre fichier de configuration Nginx en créant un lien symbolique vers « /etc/nginx/sites-enabled ». Après cela, vous devez également recharger Nginx pour appliquer les nouveaux paramètres. Exécutez les commandes suivantes pour exécuter ces deux actions :
sudo ln -s /etc/nginx/sites-available/baikal /etc/nginx/sites-enabled sudo systemctl restart nginx

Maintenant, activez SSL pour votre serveur en utilisant soit Chiffrez ou en en installant un manuellement via OpenSSL. Pour cette instance, j’utilise l’utilitaire certbot de Let’s Encrypt.
Pour installer un certificat Let’s Encrypt, exécutez la commande suivante :
certbot --nginx yetanotherbaikalserver.xyz
Finalisation de la configuration du Baïkal
Pour conclure le processus de configuration, ouvrez votre navigateur Web et accédez au site Web via votre nom de domaine. Dans mon cas, je vais sur « yetanotherbaikalserver.xyz ».
Une fois là-bas, Baikal vous redirigera vers sa page d’installation d’administration, où il vous demandera un certain nombre d’options spécifiques au serveur que vous devez définir pour votre instance.
Pour commencer, entrez le fuseau horaire de votre machine. Si vous utilisez un VPS, indiquez le fuseau horaire de ce VPS.

Comme mon VPS est à Singapour, je sélectionne « Asie/Singapour ».

Ensuite, sélectionnez les fonctionnalités que vous souhaitez pour votre instance. Cochez CalDAV et CardDAV si vous souhaitez activer la prise en charge du calendrier et du carnet d’adresses pour votre serveur.

Vous avez également la possibilité de fournir une adresse e-mail pour votre instance. Pour que cela fonctionne, votre serveur doit pouvoir envoyer des messages SMTP via TLS. Je laisse ce champ vide pour désactiver l’envoi d’e-mails.

Ensuite, sélectionnez le format d’authentification pour votre instance. Dans la plupart des cas, le format Digest devrait fonctionner immédiatement. Vous devez également fournir un mot de passe pour le compte administrateur. Après cela, vous pouvez appuyer sur « Enregistrer les modifications ».

Enfin, Baikal vous demandera les paramètres de la base de données de votre instance. Dans la plupart des cas, vous n’avez pas besoin de modifier les paramètres de cette page. Appuyez à nouveau sur « Enregistrer les modifications » pour terminer l’installation.

Ajout du premier utilisateur Baikal
Avec Baikal en cours d’exécution, vous pouvez maintenant créer votre premier utilisateur en revenant au panneau d’administration et en sélectionnant « Utilisateurs et ressources ».

Sur l’écran suivant, sélectionnez « Ajouter un utilisateur » pour faire apparaître une page de création simple où vous pouvez entrer les détails du nouvel utilisateur. Par exemple, je peux créer un nouvel utilisateur pour moi-même.

Relier Thunderbird au Baïkal
Maintenant que vous avez un compte utilisateur Baikal, vous pouvez le lier à n’importe quel programme de planification prenant en charge CalDAV et CardDAV, tel que Thunderbird.
Pour utiliser Baikal avec Thunderbird, cliquez sur l’option « Calendrier » sur la page d’accueil du client de messagerie.

Cela fera apparaître une petite fenêtre où le client vous demandera l’emplacement de votre fichier de calendrier. Sélectionnez « Sur le réseau » et cliquez sur « Suivant » pour continuer.

Lorsque Thunderbird vous demande le nom d’utilisateur de votre compte Baikal ainsi que son URL, remplissez ces détails et appuyez sur « Rechercher des calendriers ». Pour l’URL, indiquez l’adresse de votre serveur suivie de « /dav.php ».

Une fois que le client aura obtenu tous les fichiers de calendrier de votre compte Baïkal, il les listera et vous demandera leur « Type de calendrier ». Sélectionnez « CalDAV » et cliquez sur « S’abonner ».

Votre serveur Baikal est maintenant prêt à être utilisé.
Questions fréquemment posées
Systemctl signale que Nginx « n’a pas réussi à se lier ».
Non! L’erreur « échec de la liaison » se produit chaque fois qu’un programme ne parvient pas à prendre le contrôle d’un port réseau spécifique. Dans ce cas, Nginx a un conflit sur les ports 80 ou 443 avec un service existant sur votre machine. Vous pouvez identifier le programme qui utilise cette ressource en exécutant cette commande : netstat -tulpn | grep -e :80 -e :443.
Une fois que vous savez quel programme est à l’origine de l’erreur, exécutez apt remove ou alors systemctl disable pour arrêter le programme.
Par exemple, Apache est un programme courant qui utilise les mêmes ports que Nginx. Vous pouvez désactiver cela dans Debian en exécutant la commande suivante : sudo systemctl disable apache2.
Mon serveur Web affiche toujours la page d’accueil de Debian après avoir configuré Baikal. Comment puis-je réparer ça?
Ce problème est probablement dû à des fichiers de configuration Nginx en conflit. Par défaut, Debian fournit une configuration Nginx de base qui inclut un fichier de configuration dans « /etc/nginx/sites-enabled ». Vous devez supprimer ce fichier particulier en exécutant cette commande : sudo rm /etc/nginx/sites-enabled/default.
Je ne peux pas synchroniser mon calendrier et le site Web signale une « erreur DOM ».
Non. Une « Erreur DOM » indique qu’il manque un module XML au backend PHP de votre serveur Baikal. Pour résoudre ce problème, réinstallez PHP ou installez manuellement le module XML. Par exemple, vous pouvez exécuter la commande suivante pour installer le module manquant dans Debian : sudo apt install php7.4-xml.
Soutenez notre effort ❤️
Si vous avez apprécié cet article, pensez à laisser un pourboire pour nous aider à continuer à publier du contenu de qualité.






















