Ce tutoriel va vous montrer comment installer EteSync serveur sur Ubuntu. EteSync est une solution de chiffrement de bout en bout open source pour la synchronisation de vos calendriers, contacts, tâches et notes.
Fonctionnalités EteSync
La dernière version est EteSync 2.0, qui comprend
- Cryptage de bout en bout.
- Aucun mot de passe de cryptage séparé n'est nécessaire. Vous n'avez besoin que d'un seul mot de passe utilisé à la fois pour le cryptage et la connexion.
- Preuve de connaissance zéro pour s'authentifier auprès du serveur en s'assurant que votre mot de passe ne quitte jamais votre appareil.
- Synchronisation instantanée entre vos appareils.
- La possibilité de partager des données avec d'autres utilisateurs
- Les clients sont disponibles pour le bureau (pont DAV), le Web, Android et iOS.
- Intégration avec les bureaux GNOME et KDE (backend EteSync pour Evolution et Akonadi).
- Un module complémentaire pour Mozilla Thunderbird.
- Passez au nouveau protocole Etebase.
Dans un avenir proche, EteSync ajoutera également la prise en charge du partage de localisation sécurisé. EteSync fournit un service hébergé sur etesync.com. Je vais vous montrer comment exécuter une instance auto-hébergée sur un serveur Ubuntu et comment utiliser le logiciel client sur différentes plates-formes.
Étape 1 :Installez la dernière version stable de MariaDB Server sur Ubuntu
Par défaut, EteSync stocke les informations utilisateur dans SQLite base de données. Si vous préférez utiliser MariaDB , suivez les instructions ci-dessous.
Vous devez utiliser la dernière version stable de MariaDB, qui est 10.5, car il y aura des problèmes si vous exécutez EteSync avec MariaDB 10.3. Pour installer la dernière version stable, exécutez les commandes suivantes pour ajouter le référentiel MariaDB sur Ubuntu 20.04.
sudo apt-get install software-properties-common sudo apt-key adv --recv-keys --keyserver hkp://keyserver.ubuntu.com:80 0xF1656F24C74CD1D8 sudo add-apt-repository 'deb [arch=amd64,arm64,ppc64el] http://mirror.lstn.net/mariadb/repo/10.5/ubuntu focal main'
Pour ajouter le référentiel sur Ubuntu 18.04, remplacez simplement focal
avec bionic
dans la troisième commande.
Ensuite, mettez à jour l'index du package et installez le serveur MariaDB.
sudo apt update sudo apt install mariadb-server
Si vous mettez à niveau un serveur MariaDB existant vers la dernière version, vous pouvez voir le message suivant. Je recommande de choisir N
pour conserver la version actuelle et examiner ce qui doit changer ultérieurement.
S'il y a un problème de dépendance de package, vous pouvez exécuter la commande suivante pour le résoudre.
sudo apt --fix-broken install
Une fois l'installation terminée, le serveur MariaDB démarre automatiquement. Vous pouvez vérifier son statut avec :
systemctl status mariadb
Comme vous pouvez le voir, il est actif et en cours d'exécution.
Astuce :Appuyez sur Q pour reprendre le contrôle du terminal si la commande ci-dessus ne se ferme pas immédiatement.
S'il ne fonctionne pas, vous pouvez le démarrer manuellement avec :
sudo systemctl start mariadb
Pour activer le démarrage automatique au démarrage, exécutez
sudo systemctl enable mariadb
Étape 2 :Créer une base de données et un utilisateur pour EteSync dans le serveur de base de données MariaDB
Connectez-vous au serveur de base de données MariaDB avec la commande suivante. Puisque MariaDB utilise maintenant unix_socket
plugin pour authentifier la connexion de l'utilisateur, il n'est pas nécessaire de saisir le mot de passe root MariaDB. Nous avons juste besoin de préfixer le mysql
commande avec sudo
.
sudo mysql
Créez ensuite une base de données pour EteSync. Ce tutoriel nomme la base de données etebase
. Vous pouvez utiliser le nom de votre choix.
create database etebase;
Créez l'utilisateur de la base de données. Encore une fois, vous pouvez utiliser votre nom préféré pour cet utilisateur. Remplacez your-password
avec votre mot de passe préféré.
create user etebase@localhost identified by 'your-password';
Accordez à cet utilisateur tous les privilèges sur etebase
base de données.
grant all privileges on etebase.* to etebase@localhost;
Vider les privilèges et quitter.
flush privileges; exit;
Étape 3 :Installer le serveur EteSync 2.0 sur Ubuntu
Installez le créateur d'environnement virtuel Python3 et certains outils de création de packages.
sudo apt install python3-virtualenv python3-pip gcc build-essential
Accédez à votre répertoire personnel.
cd
Clonez le référentiel EteSync depuis Github.
git clone https://github.com/etesync/server.git etebase
Accédez au répertoire nouvellement créé.
cd etebase
Créez un environnement virtuel Python3.
virtualenv -p python3 .venv source .venv/bin/activate pip install -r requirements.txt
Copiez l'exemple de fichier de configuration.
cp etebase-server.ini.example etebase-server.ini
Modifiez le fichier.
nano etebase-server.ini
Trouvez la ligne suivante
;media_root = /path/to/media
Décommentez-le et modifiez la valeur.
media_root = /home/username/etebase/media/
Trouvez la ligne suivante,
allowed_host1 = example.com
Utilisez un sous-domaine comme etebase.example.com
.
allowed_host1 = etebase.example.com
Par défaut, EteSync stocke les informations utilisateur dans la base de données SQLite. Si vous préférez utiliser le serveur de base de données MariaDB, commentez les deux lignes suivantes (ajoutez un point-virgule au début de chaque ligne).
engine = django.db.backends.sqlite3 name = db.sqlite3
Ajoutez ensuite les lignes suivantes à la fin de ce fichier. Cela indique à EteSync comment accéder à etebase
base de données dans MariaDB, qui est créée à l'étape 1. Évidemment, vous devez utiliser votre propre mot de passe pour le etebase
utilisateur.
engine = django.db.backends.mysql name = etebase user = etebase password = your-password host = 127.0.0.1 port = 3306
Enregistrez et fermez le fichier. Le serveur Etebase est une application Django, nous pouvons utiliser Daphne (le serveur HTTP/WebSocket de Django Channels) pour exécuter Etebase. Installez Daphné avec :
pip3 install daphne
Comme nous utilisons MySQL/MariaDB comme moteur de base de données, nous devons également installer le mysqlclient
module.
sudo apt install libmysqlclient-dev pip3 install mysqlclient
Installez le aioredis
module afin d'utiliser le cache Redis.
pip3 install aioredis
Créez les fichiers statiques de Django.
./manage.py collectstatic
Initialisez l'application.
./manage.py migrate
Démarrez le serveur EteSync 2.0 (Etebase).
daphne -b 0.0.0.0 -p 8001 etebase_server.asgi:application
Étape 4 :Exécutez EteSync en tant que service Systemd
Nous pouvons démarrer manuellement EteSync avec daphne -b 0.0.0.0 -p 8001 etebase_server.asgi:application
, mais il est plus pratique d'exécuter EteSync en tant que service systemd en arrière-plan. Appuyez sur Ctrl+C
pour arrêter l'instance EteSync en cours.
Créez un fichier d'unité de service systemd pour EteSync avec la commande suivante.
sudo nano /etc/systemd/system/etebase.service
Mettez les lignes suivantes dans le fichier. Remplacer username
avec votre vrai nom d'utilisateur.
[Unit] Description=EteSync: End-to-End Encryption to Sync Calender, Contacts, Tasks and Notes. [Service] WorkingDirectory=/home/username/etebase/ ExecStart=/home/username/etebase/.venv/bin/daphne -b 127.0.0.1 -p 8001 -u /tmp/etebase_server.sock etebase_server.asgi:application User=username Group=username Restart=always RestartSec=5s [Install] WantedBy=multi-user.target
Enregistrez et fermez le fichier. Nous pouvons maintenant démarrer et activer etebase
service systemd.
sudo systemctl start etebase sudo systemctl enable etebase
Vérifier l'état.
systemctl status etebase
Si etebase
le service n'est pas actif (en cours d'exécution), vous pouvez exécuter la commande suivante pour voir ce qui ne va pas.
sudo journalctl -eu etebase
Étape 5 :Configurer le proxy inverse
Nous devons maintenant configurer un proxy inverse pour l'application Django, afin que nous puissions plus tard accéder à EteSync via un nom de domaine et activer facilement HTTPS. Nous pouvons utiliser Apache ou Nginx pour accomplir cela.
Apache
Si vous préférez Apache, installez le serveur Web Apache à l'aide de la commande suivante.
sudo apt install apache2
Pour utiliser Apache comme proxy inverse, nous devons activer le proxy
modules et l'header
module.
sudo a2enmod proxy proxy_http headers proxy_wstunnel
Créez ensuite un fichier d'hôte virtuel pour EteSync.
sudo nano /etc/apache2/sites-available/etebase.conf
Mettez les configurations suivantes dans le fichier. Remplacez etebase.example.com
avec votre vrai nom de domaine. N'oubliez pas de créer un enregistrement DNS A pour ce sous-domaine. Si vous n'avez pas de vrai nom de domaine, je vous recommande d'aller sur NameCheap pour en acheter un. Le prix est bas et ils offrent une protection de la confidentialité whois gratuite à vie.
<VirtualHost *:80> ServerName etebase.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 /home/username/etebase/static </VirtualHost>
Enregistrez et fermez le fichier. Activez ensuite cet hôte virtuel.
sudo a2ensite etebase.conf
Redémarrez Apache
sudo systemctl restart apache2
Vous pouvez maintenant accéder à l'interface Web EteSync en utilisant le nom de domaine etebase.example.com
.
Nginx
Si vous préférez le serveur Web Nginx, installez Nginx avec.
sudo apt install nginx
Créez un fichier d'hôte virtuel dans Nginx pour EteSync.
sudo nano /etc/nginx/conf.d/etebase.conf
Mettez les lignes suivantes dans le fichier. Remplacez les espaces réservés si nécessaire et vous devriez créer un enregistrement DNS A pour le sous-domaine.
upstream etebase { server unix:///tmp/etebase_server.sock; } server { listen 80; listen [::]:80; server_name etebase.example.com; charset utf-8; access_log /var/log/nginx/etebase.access; error_log /var/log/nginx/etebase.error; # max upload size client_max_body_size 75M; location /static/ { alias /home/username/etebase/static/; } location / { proxy_pass http://etebase; proxy_http_version 1.1; proxy_set_header Upgrade $http_upgrade; proxy_set_header Connection "upgrade"; proxy_redirect off; proxy_set_header Host $host; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_set_header X-Forwarded-Host $server_name; } }
Enregistrez et fermez le fichier. Testez ensuite les configurations Nginx.
sudo nginx -t
Si le test réussit, rechargez Nginx pour que la modification prenne effet.
sudo systemctl reload nginx
Vous pouvez maintenant accéder à l'interface Web d'EteSync sur etebase.example.com
.
Dépannage
Si vous voyez la bad request (400)
erreur lors de la tentative d'accès à l'interface Web EteSync, assurez-vous d'avoir ajouté le nom du serveur etesync au allowd_hosts
liste dans etebase-server.ini
dossier. Puis redémarrez etebase (sudo systemctl restart etebase
).
Vous pouvez également activer le mode débogage dans etebase-server.ini fichier, c'est-à-dire modifier
debug = false
À
debug = true
Redémarrez ensuite etebase.
sudo systemctl restart etebase
Vérifiez ensuite le journal de service systemd.
sudo journalctl -eu etebase
Étape 6 :Activer HTTPS
Pour chiffrer le trafic HTTP, nous pouvons activer HTTPS en installant un certificat TLS gratuit émis par Let's Encrypt. Exécutez la commande suivante pour installer le client Let's Encrypt (certbot) sur le serveur Ubuntu.
sudo apt install certbot
Si vous utilisez Apache, vous devez également installer le plugin Certbot Apache.
sudo apt install python3-certbot-apache
Ensuite, exécutez la commande suivante pour obtenir et installer le certificat TLS.
sudo certbot --apache --agree-tos --redirect --hsts --staple-ocsp --email [email protected] -d etebase.example.com
Si vous utilisez Nginx, vous devez également installer le plugin Certbot Nginx.
sudo apt install python3-certbot-nginx
Ensuite, exécutez la commande suivante pour obtenir et installer le certificat TLS.
sudo certbot --nginx --agree-tos --redirect --hsts --staple-ocsp --email [email protected] -d etebase.yourdomain.com
Où :
--apache
:Utilisez le plug-in Apache.--nginx
:Utilisez le plug-in nginx.--agree-tos
:acceptez les conditions d'utilisation.--redirect
:Forcer HTTPS par redirection 301.--hsts
:Ajoutez l'en-tête Strict-Transport-Security à chaque réponse HTTP. Forcer le navigateur à toujours utiliser TLS pour le domaine. Protège contre le SSL/TLS Stripping.--staple-ocsp
:active l'agrafage OCSP. Une réponse OCSP valide est agrafée au certificat que le serveur propose pendant TLS.
Le certificat devrait maintenant être obtenu et installé automatiquement.
Étape 7 :Créer des comptes utilisateur
Créez un utilisateur super administrateur.
./manage.py createsuperuser
Allez ensuite sur etebase.example.com/admin
et connectez-vous à la console d'administration. Ensuite, vous pouvez créer des comptes d'utilisateurs individuels à utiliser pour synchroniser les calendriers, les contacts, les tâches et les notes. Notez que vous n'avez pas besoin de créer de mots de passe pour les utilisateurs dans la console d'administration EteSync, car Etebase utilise une preuve de connaissance zéro pour l'authentification.
Nous devons maintenant configurer les clients pour utiliser EteSync.
Comment installer le module Evolution EteSync sur le bureau Ubuntu
Évolution est la suite groupware par défaut dans l'environnement de bureau GNOME. Vous pouvez l'installer sur votre bureau Ubuntu avec :
sudo apt install evolution
Pour utiliser EteSync dans Evolution, nous devons installer le module EteSync pour Evolution en suivant les étapes ci-dessous.
Cloner la libetebase
référentiel.
sudo apt install git git clone https://github.com/etesync/libetebase.git
Accédez au répertoire nouvellement créé.
cd libetebase/
Installez les packages requis pour créer le package à partir de la source.
sudo apt install build-essential libssl-dev cargo
Compilez le paquet source.
make
Installez le binaire.
sudo make install
Revenez ensuite au répertoire précédent.
cd ..
Cloner le Evolution-EteSync
référentiel.
git clone https://gitlab.gnome.org/GNOME/evolution-etesync
Accédez au répertoire nouvellement créé.
cd evolution-etesync/
Installez les packages requis pour créer le package à partir de la source.
sudo apt install cmake intltool evolution-data-server-dev evolution-dev libedata-book1.2-dev libedata-cal2.0-dev libecal2.0-dev libebook1.2-dev
Compilez et installez le package.
mkdir build cd build cmake -DCMAKE_INSTALL_PREFIX=/usr .. make -j sudo make -j install
Utiliser EteSync dans Evolution
Lancez maintenant l'application Evolution sur votre bureau Ubuntu. Cliquez sur Nouveau dans la barre d'outils et ajoutez un nouveau compte de collection .
Entrez ensuite votre nom d'utilisateur EteSync et l'adresse du serveur. Notez que vous devez ajouter https://
comme préfixe de l'adresse du serveur. Sélectionnez Rechercher un compte EteSync et décochez toutes les autres options. Cliquez ensuite sur Rechercher bouton.
Il vous demandera d'entrer le mot de passe pour continuer. C'est en fait le moment de définir le mot de passe, alors cliquez sur Entrer le mot de passe lien et définissez un mot de passe.
Après avoir entré un mot de passe, cliquez sur le bouton Réessayer et il devrait trouver un candidat. Cliquez sur Suivant bouton pour continuer.
Synchroniser avec NextCloud
Si vous avez un serveur Nextcloud auto-hébergé et avez installé l'application Calendrier, Tâches ou Contacts sur votre serveur Nextcloud, vous pouvez ajouter votre serveur Nextcloud DAV dans Evolution, afin qu'ils puissent être synchronisés. Ajoutez simplement un autre compte de collecte dans Evolution, saisissez votre nom d'utilisateur Nextcloud et votre adresse CalDAV/CardDAV, sélectionnez Rechercher un serveur CalDAV/CardDAV , décochez toutes les autres options. Entrez ensuite votre mot de passe Nextcloud. L'adresse Nextcloud CalDAV/CardDAV doit être https://nextcloud.yourdomain.com/remote.php/dav
.
Utilisation de l'application iOS EteSync
Pour synchroniser votre calendrier, vos contacts et vos tâches sur iOS, vous devez d'abord configurer un compte CalDAV/CardDAV dans iOS. Accédez aux Paramètres application -> Calendrier -> Comptes -> Ajouter un compte -> Autre , et ajoutez un compte CalDAV et CardDAV. CalDAV est utilisé pour synchroniser les calendriers et CardDAV est utilisé pour synchroniser les contacts sur vos appareils.
Si vous avez un serveur Nextcloud auto-hébergé, vous pouvez utiliser votre compte Nextcloud CalDAV/CardDAV. Si vous n'en avez pas, utilisez simplement un faux compte.
Ensuite, installez l'application EteSync depuis l'App Store. Ajoutez ensuite votre compte EteSync.
Après vous être connecté à votre compte EteSync, accédez aux paramètres menu dans l'application EteSync. Dans l'onglet Avancé section, sélectionnez votre compte CardDAV pour synchroniser les contacts et sélectionnez votre compte CalDAV pour synchroniser les calendriers et les rappels .