Comment créer un serveur de calendrier avec Baikal 1

Comment créer un serveur de calendrier avec Baikal

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
Installer Baikal Linux 04 Créer un nouvel utilisateur

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
Installer les dépendances d'installation de Baikal Linux 05

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.

Installer Baikal Linux 06 Activer le pare-feu du serveur

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
Installer Baikal Linux 07 Créer une configuration Nginx

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
Installer Baikal Linux 08 Télécharger l'archive binaire

À 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
Installer Baikal Linux 09 Décompresser l'archive binaire

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
Installer Baikal Linux 10 Redémarrer 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.

Installer les paramètres par défaut de Baikal Linux 11

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

Installer Baikal Linux 12 Définir le fuseau horaire

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.

Installer Baikal Linux 13 Installer de nouvelles fonctionnalités

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.

Installer Baikal Linux 14 Supprimer l'adresse e-mail

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 ».

Installer la méthode d'authentification Baikal Linux 15

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.

Installer les paramètres de base de données par défaut de Baikal Linux 16

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 ».

Installer Baikal Linux 17 Sélectionnez l'onglet Utilisateurs

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.

Installer Baikal Linux 18 Détails du nouvel utilisateur

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.

Installer Baikal Linux 19 Sélectionnez Calendrier Thunderbird

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.

Installer Baikal Linux 20 Link Calendar To Network

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 ».

Installer Baikal Linux 21 Détails du serveur Thunderbird

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 ».

Installer Baikal Linux 22 Définir le type de calendrier

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.

Ramces Rouge
Ramces Rouge

Ramces est un écrivain spécialisé dans la technologie qui a vécu avec des ordinateurs toute sa vie. Lecteur prolifique et étudiant en anthropologie, c’est un personnage excentrique qui écrit des articles sur Linux et n’importe quoi *nix.

Soutenez notre effort ❤️

Si vous avez apprécié cet article, pensez à laisser un pourboire pour nous aider à continuer à publier du contenu de qualité.

Paiement sécurisé sur PayPal
Moyens I/O Staff est une équipe de rédacteurs spécialisés, passionnés par la technologie, l’innovation et les usages numériques. Forts d’une expertise pointue en IA, applications mobiles, gaming et tendances digitales, nous produisons un contenu rigoureux, vérifié et utile. Notre mission : vous offrir une information fiable et claire pour mieux naviguer dans le monde numérique en constante évolution. Découvrez les avis de nos lecteurs sur Trustpilot.