Installation serveur · 10 min read · Sep 30, 2025

Comment installer le serveur EteSync sur Ubuntu 20.04

EteSync est une solution open-source pour synchroniser vos contacts, calendriers et tâches. Il est auto-hébergé, fournit un chiffrement de bout en bout et vous permet de partager des données avec d’autres utilisateurs. Il peut être intégré avec les bureaux GNOME et KDE. Il peut être accessible via des clients de bureau, web, Android et iOS.

Dans ce tutoriel, je vais vous montrer comment installer EteSync avec Apache sur Ubuntu 20.04.

Prérequis

  • Un serveur exécutant Ubuntu 20.04.
  • Un nom de domaine valide pointé vers l’IP de votre serveur.
  • Un mot de passe root configuré sur le serveur.

Mise en route

Tout d’abord, mettez à jour les paquets du système vers la version mise à jour en exécutant la commande suivante :

apt-get update -y

Une fois tous les paquets mis à jour, vous pouvez passer à l’étape suivante.

Installation du serveur MariaDB

Par défaut, EteSync utilise la base de données SQLite pour stocker ses informations. Ici, nous allons installer et utiliser MariaDB comme backend de base de données.

Tout d’abord, installez les dépendances requises en utilisant la commande suivante :

apt-get install software-properties-common gnupg2 -y

Ensuite, ajoutez la clé GPG et le dépôt MariaDB en utilisant la commande suivante :

apt-key adv --recv-keys --keyserver hkp://keyserver.ubuntu.com:80 0xF1656F24C74CD1D8  
add-apt-repository 'deb [arch=amd64,arm64,ppc64el] http://mirror.lstn.net/mariadb/repo/10.5/ubuntu focal main'

Ensuite, mettez à jour le dépôt MariaDB et installez la dernière version de MariaDB avec la commande suivante :

apt-get install mariadb-server -y

Après avoir installé le serveur MariaDB, connectez-vous à l’interface de commande MariaDB avec la commande suivante :

mysql

Une fois connecté, créez une base de données et un utilisateur pour EteSync avec la commande suivante :

MariaDB [(none)]> create database etesync;  
MariaDB [(none)]> create user etesync@localhost identified by 'securepassword';

Ensuite, accordez tous les privilèges à la base de données EteSync avec la commande suivante :

MariaDB [(none)]> grant all privileges on etesync.* to etesync@localhost;

Ensuite, videz les privilèges et quittez MariaDB avec la commande suivante :

MariaDB [(none)]> flush privileges;  
MariaDB [(none)]> exit;

Une fois que vous avez terminé, vous pouvez passer à l’étape suivante.

Installation et configuration d’EteSync

Tout d’abord, vous devrez installer certaines dépendances Python requises pour EteSync. Vous pouvez toutes les installer avec la commande suivante :

apt-get install python3-virtualenv python3-pip gcc libmysqlclient-dev build-essential git -y

Après avoir installé toutes les dépendances, téléchargez la dernière version d’EteSync en utilisant la commande suivante :

git clone https://github.com/etesync/server.git etesync

Une fois le téléchargement terminé, changez de répertoire vers etesync et créez un environnement virtuel Python avec la commande suivante :

cd etesync  
virtualenv -p python3 .venv

Ensuite, activez l’environnement virtuel avec la commande suivante :

source .venv/bin/activate

Ensuite, installez toutes les dépendances requises avec la commande suivante :

pip install -r requirements.txt

Ensuite, copiez le fichier de configuration d’exemple :

cp etebase-server.ini.example etebase-server.ini

Ensuite, éditez le fichier de configuration en utilisant la commande ci-dessous :

nano etebase-server.ini

Ajoutez ou modifiez les lignes suivantes selon votre configuration :

media_root = /opt
allowed_host1 = etesync.example.com

;engine = django.db.backends.sqlite3
;name = db.sqlite3

engine = django.db.backends.mysql
name = etesync
user = etesync
password = securepassword
host = 127.0.0.1
port = 3306

Enregistrez et fermez le fichier, puis installez d’autres modules en utilisant la commande suivante :

pip3 install daphne  
pip3 install mysqlclient  
pip3 install aioredis

Ensuite, générez les fichiers statiques et migrez la base de données avec la commande suivante :

./manage.py collectstatic  
./manage.py migrate

Enfin, démarrez le serveur EteSync avec la commande suivante :

daphne -b 0.0.0.0 -p 8001 etebase_server.asgi:application

Si tout va bien, vous devriez obtenir la sortie suivante :

2021-07-09 05:42:28,510 INFO     Démarrage du serveur à tcp:port=8001:interface=0.0.0.0
2021-07-09 05:42:28,510 INFO     Support HTTP/2 non activé (installez les extras http2 et tls de Twisted)
2021-07-09 05:42:28,511 INFO     Configuration du point de terminaison tcp:port=8001:interface=0.0.0.0
2021-07-09 05:42:28,512 INFO     Écoute sur l'adresse TCP 0.0.0.0:8001

Appuyez sur CTRL + C pour arrêter le serveur.

Ensuite, créez un utilisateur administratif en utilisant la commande suivante :

./manage.py createsuperuser

Fournissez votre nom d’utilisateur, mot de passe et e-mail comme indiqué ci-dessous :

Nom d'utilisateur: etesync
Adresse e-mail: [email protected]
Mot de passe: 
Mot de passe (à nouveau): 
Superutilisateur créé avec succès.

Ensuite, désactivez l’environnement virtuel Python avec la commande suivante :

deactivate

Créer un fichier d’unité Systemd pour EteSync

Ensuite, vous devrez créer un fichier d’unité systemd pour gérer EteSync. Vous pouvez le créer avec la commande suivante :

nano /etc/systemd/system/etesync.service

Ajoutez les lignes suivantes :

[Unit]
Description=EteSync: Chiffrement de bout en bout pour synchroniser Calendrier, Contacts, Tâches et Notes.

[Service]
WorkingDirectory=/root/etesync
ExecStart=/root/etesync/.venv/bin/daphne -b 127.0.0.1 -p 8001 -u /tmp/etebase_server.sock etebase_server.asgi:application
User=root
Group=root
Restart=always
RestartSec=5s

[Install]
WantedBy=multi-user.target

Enregistrez et fermez le fichier, puis rechargez le démon systemd pour appliquer les modifications de configuration :

systemctl daemon-reload

Ensuite, démarrez et activez le service EteSync avec la commande suivante :

systemctl start etesync  
systemctl enable etesync

Pour vérifier l’état du service EteSync, exécutez la commande suivante :

systemctl status etesync

Vous obtiendrez la sortie suivante :

? etesync.service - EteSync: Chiffrement de bout en bout pour synchroniser Calendrier, Contacts, Tâches et Notes.
     Chargé: chargé (/etc/systemd/system/etesync.service; désactivé; paramètre du fournisseur: activé)
     Actif: actif (en cours d'exécution) depuis ven. 09 juil. 2021 05:45:45 UTC; il y a 5s
   PID principal: 16213 (daphne)
      Tâches: 1 (limite: 2353)
     Mémoire: 48.7M
     CGroup: /system.slice/etesync.service
             ??16213 /root/etesync/.venv/bin/python /root/etesync/.venv/bin/daphne -b 127.0.0.1 -p 8001 -u /tmp/etebase_server.sock etebase_se>

Jul 09 05:45:45 node1 systemd[1]: Démarré EteSync: Chiffrement de bout en bout pour synchroniser Calendrier, Contacts, Tâches et Notes..
Jul 09 05:45:46 node1 daphne[16213]: 2021-07-09 05:45:46,993 INFO     Démarrage du serveur à tcp:port=8001:interface=127.0.0.1, unix:/tmp/etebase_>
Jul 09 05:45:46 node1 daphne[16213]: 2021-07-09 05:45:46,995 INFO     Support HTTP/2 non activé (installez les extras http2 et tls de Twisted)
Jul 09 05:45:46 node1 daphne[16213]: 2021-07-09 05:45:46,995 INFO     Configuration du point de terminaison tcp:port=8001:interface=127.0.0.1
Jul 09 05:45:46 node1 daphne[16213]: 2021-07-09 05:45:46,997 INFO     Écoute sur l'adresse TCP 127.0.0.1:8001
Jul 09 05:45:46 node1 daphne[16213]: 2021-07-09 05:45:46,998 INFO     Configuration du point de terminaison unix:/tmp/etebase_server.sock

À ce stade, EteSync est démarré et écoute sur le port 8001. Vous pouvez maintenant passer à l’étape suivante.

Configuration d’Apache en tant que proxy inverse

Il est également conseillé d’installer et d’utiliser Apache comme proxy inverse pour accéder à EteSync. Tout d’abord, installez le serveur Apache avec la commande suivante :

apt-get install apache2 -y

Après avoir installé le serveur Apache, activez tous les modules proxy avec la commande suivante :

a2enmod proxy proxy_http headers proxy_wstunnel

Ensuite, créez un nouveau fichier de configuration de l’hôte virtuel Apache :

nano /etc/apache2/sites-available/etesync.conf

Ajoutez les lignes suivantes :


   ServerName etesync.example.com
   ErrorDocument 404 /404.html

   ErrorLog ${APACHE_LOG_DIR}/etebase_error.log
   CustomLog ${APACHE_LOG_DIR}/etebase_access.log combined

   ProxyPreserveHost On
   ProxyPass / http://127.0.0.1:8001/
   ProxyPassReverse / http://127.0.0.1:8001/
   Alias /static /etesync/static

Enregistrez et fermez le fichier, puis activez l’hôte virtuel Apache avec la commande suivante :

a2ensite etesync.conf

Ensuite, redémarrez Apache pour mettre à jour les modifications :

systemctl restart apache2

Vous pouvez maintenant vérifier l’état d’Apache en utilisant la commande suivante :

systemctl status apache2

Vous devriez obtenir la sortie suivante :

? apache2.service - Le serveur HTTP Apache
     Chargé: chargé (/lib/systemd/system/apache2.service; activé; paramètre du fournisseur: activé)
     Actif: actif (en cours d'exécution) depuis ven. 09 juil. 2021 05:50:26 UTC; il y a 5s
       Docs: https://httpd.apache.org/docs/2.4/
    Process: 17551 ExecStart=/usr/sbin/apachectl start (code=exité, statut=0/SUCCESS)
   PID principal: 17567 (apache2)
      Tâches: 55 (limite: 2353)
     Mémoire: 5.3M
     CGroup: /system.slice/apache2.service
             ??17567 /usr/sbin/apache2 -k start
             ??17568 /usr/sbin/apache2 -k start
             ??17569 /usr/sbin/apache2 -k start

Jul 09 05:50:26 node1 systemd[1]: Démarrage du serveur HTTP Apache...
Jul 09 05:50:26 node1 apachectl[17558]: AH00558: apache2: Impossible de déterminer de manière fiable le nom de domaine complet du serveur, en utilisant 45.58.3>

Accéder à la console d’administration d’EteSync

Maintenant, ouvrez votre navigateur web et accédez à l’interface d’administration d’EteSync en utilisant l’URL http://etesync.example.com/admin/. Vous serez redirigé vers la page suivante :

Connexion EteSync

Fournissez votre nom d’utilisateur admin, mot de passe et cliquez sur le bouton Se connecter. Vous devriez voir la page suivante :

Administration du site

Sécuriser EteSync avec le SSL Let’s Encrypt

Tout d’abord, vous devrez installer le client Certbot Let’s Encrypt pour télécharger et installer le certificat SSL pour votre domaine.

Vous pouvez l’installer avec la commande suivante :

apt-get install python3-certbot-apache -y

Une fois installé, vous pouvez exécuter la commande suivante pour installer le certificat Let’s Encrypt pour votre domaine etesync.example.com.

certbot --apache -d etesync.example.com

Lors de l’installation, il vous sera demandé de fournir votre adresse e-mail et d’accepter les conditions de service comme indiqué ci-dessous :

Enregistrement du journal de débogage dans /var/log/letsencrypt/letsencrypt.log
Plugins sélectionnés : Authenticator apache, Installer apache
Entrez l'adresse e-mail (utilisée pour les renouvellements urgents et les avis de sécurité) (Entrez 'c' pour
annuler): [email protected]

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Veuillez lire les conditions de service à
https://letsencrypt.org/documents/LE-SA-v1.2-November-15-2017.pdf. Vous devez
accepter pour vous inscrire auprès du serveur ACME à
https://acme-v02.api.letsencrypt.org/directory
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
(A)ccepter/(C)annuler: A

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Seriez-vous prêt à partager votre adresse e-mail avec la Electronic Frontier
Foundation, un partenaire fondateur du projet Let's Encrypt et l'organisation à but non lucratif
qui développe Certbot ? Nous aimerions vous envoyer un e-mail sur notre travail
pour chiffrer le web, les nouvelles de l'EFF, les campagnes et les moyens de soutenir la liberté numérique.

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
(O)ui/(N)on: Y
Obtention d'un nouveau certificat
Réalisation des défis suivants :
http-01 challenge pour etesync.example.com
Module de réécriture Apache activé
Attente de vérification...
Nettoyage des défis
Création d'un hôte virtuel SSL à /etc/apache2/sites-available/etesync-le-ssl.conf
Déploiement du certificat sur l'hôte virtuel /etc/apache2/sites-available/etesync-le-ssl.conf
Activation du site disponible : /etc/apache2/sites-available/etesync-le-ssl.conf

Veuillez choisir de rediriger ou non le trafic HTTP vers HTTPS, en supprimant l'accès HTTP.
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
1: Pas de redirection - Ne faites aucun autre changement à la configuration du serveur web.
2: Rediriger - Faites en sorte que toutes les demandes soient redirigées vers un accès HTTPS sécurisé. Choisissez cela pour
de nouveaux sites, ou si vous êtes sûr que votre site fonctionne sur HTTPS. Vous pouvez annuler ce
changement en modifiant la configuration de votre serveur web.
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Sélectionnez le numéro approprié [1-2] puis [entrer] (appuyez sur 'c' pour annuler) : 2

Ensuite, tapez 2 et appuyez sur Entrée pour télécharger et installer un certificat SSL gratuit pour votre domaine. Une fois l’installation terminée avec succès, vous devriez obtenir la sortie suivante :

Module de réécriture Apache activé
Redirection de l'hôte virtuel dans /etc/apache2/sites-enabled/etesync.conf vers l'hôte virtuel ssl dans /etc/apache2/sites-available/
etesync-le-ssl.conf

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Félicitations ! Vous avez activé avec succès https://etesync.example.com

Vous devriez tester votre configuration à :
https://www.ssllabs.com/ssltest/analyze.html?d=etesync.example.com
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

Conclusion

Félicitations ! Vous avez installé avec succès EteSync sur le serveur Ubuntu 20.04 avec SSL Let’s Encrypt. Vous pouvez maintenant synchroniser facilement votre calendrier et vos contacts avec EteSync.

Share: X/Twitter LinkedIn

Recevez de nouveaux articles dans votre boîte de réception.

Aucun spam. Désabonnez-vous à tout moment.