GNU/Linux >> Tutoriels Linux >  >> Ubuntu

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é aux bureaux GNOME et KDE. Il est 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'adresse IP de votre serveur.
  • Un mot de passe root est configuré sur le serveur.

Mise en route

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

apt-get update -y

Une fois tous les packages 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 à l'aide de la commande suivante :

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

Ensuite, ajoutez la clé MariaDB GPG et le référentiel à l'aide de 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 référentiel 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 au shell 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 [email protected] 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 [email protected];

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 tous 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 à l'aide de la commande suivante :

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

Une fois le téléchargement terminé, changez le répertoire en 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 exigences à l'aide de la commande suivante :

pip install -r requirements.txt

Ensuite, copiez l'exemple de fichier de configuration :

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

Ensuite, modifiez le fichier de configuration à l'aide de 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 les autres modules à l'aide de 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 le résultat suivant :

2021-07-09 05:42:28,510 INFO     Starting server at tcp:port=8001:interface=0.0.0.0
2021-07-09 05:42:28,510 INFO     HTTP/2 support not enabled (install the http2 and tls Twisted extras)
2021-07-09 05:42:28,511 INFO     Configuring endpoint tcp:port=8001:interface=0.0.0.0
2021-07-09 05:42:28,512 INFO     Listening on TCP address 0.0.0.0:8001

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

Créez ensuite un utilisateur administratif à l'aide de la commande suivante :

./manage.py createsuperuser

Indiquez votre nom d'utilisateur, votre mot de passe et votre adresse e-mail comme indiqué ci-dessous :

Username: etesync
Email address: [email protected]
Password: 
Password (again): 
Superuser created successfully.

Ensuite, désactivez depuis 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: End-to-End Encryption to Sync Calender, Contacts, Tasks and 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 le résultat suivant :

? etesync.service - EteSync: End-to-End Encryption to Sync Calender, Contacts, Tasks and Notes.
     Loaded: loaded (/etc/systemd/system/etesync.service; disabled; vendor preset: enabled)
     Active: active (running) since Fri 2021-07-09 05:45:45 UTC; 5s ago
   Main PID: 16213 (daphne)
      Tasks: 1 (limit: 2353)
     Memory: 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]: Started EteSync: End-to-End Encryption to Sync Calender, Contacts, Tasks and Notes..
Jul 09 05:45:46 node1 daphne[16213]: 2021-07-09 05:45:46,993 INFO     Starting server at 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     HTTP/2 support not enabled (install the http2 and tls Twisted extras)
Jul 09 05:45:46 node1 daphne[16213]: 2021-07-09 05:45:46,995 INFO     Configuring endpoint tcp:port=8001:interface=127.0.0.1
Jul 09 05:45:46 node1 daphne[16213]: 2021-07-09 05:45:46,997 INFO     Listening on TCP address 127.0.0.1:8001
Jul 09 05:45:46 node1 daphne[16213]: 2021-07-09 05:45:46,998 INFO     Configuring endpoint 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 reverse proxy pour accéder à EteSync. Commencez par installer 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

Créez ensuite un nouveau fichier de configuration d'hôte virtuel Apache :

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

Ajoutez les lignes suivantes :

<VirtualHost *:80>
   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

</VirtualHost>

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 le statut d'Apache à l'aide de la commande suivante :

systemctl status apache2

Vous devriez obtenir le résultat suivant :

? apache2.service - The Apache HTTP Server
     Loaded: loaded (/lib/systemd/system/apache2.service; enabled; vendor preset: enabled)
     Active: active (running) since Fri 2021-07-09 05:50:26 UTC; 5s ago
       Docs: https://httpd.apache.org/docs/2.4/
    Process: 17551 ExecStart=/usr/sbin/apachectl start (code=exited, status=0/SUCCESS)
   Main PID: 17567 (apache2)
      Tasks: 55 (limit: 2353)
     Memory: 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]: Starting The Apache HTTP Server...
Jul 09 05:50:26 node1 apachectl[17558]: AH00558: apache2: Could not reliably determine the server's fully qualified domain name, using 45.58.3>

Accéder à la console d'administration 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 :

Indiquez votre nom d'utilisateur et votre mot de passe d'administrateur, puis cliquez sur Connexion bouton. Vous devriez voir la page suivante :

Sécuriser EteSync avec Let's Encrypt SSL

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 d'utilisation comme indiqué ci-dessous :

Saving debug log to /var/log/letsencrypt/letsencrypt.log
Plugins selected: Authenticator apache, Installer apache
Enter email address (used for urgent renewal and security notices) (Enter 'c' to
cancel): [email protected]

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Please read the Terms of Service at
https://letsencrypt.org/documents/LE-SA-v1.2-November-15-2017.pdf. You must
agree in order to register with the ACME server at
https://acme-v02.api.letsencrypt.org/directory
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
(A)gree/(C)ancel: A

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Would you be willing to share your email address with the Electronic Frontier
Foundation, a founding partner of the Let's Encrypt project and the non-profit
organization that develops Certbot? We'd like to send you email about our work
encrypting the web, EFF news, campaigns, and ways to support digital freedom.

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
(Y)es/(N)o: Y
Obtaining a new certificate
Performing the following challenges:
http-01 challenge for etesync.example.com
Enabled Apache rewrite module
Waiting for verification...
Cleaning up challenges
Created an SSL vhost at /etc/apache2/sites-available/etesync-le-ssl.conf
Deploying Certificate to VirtualHost /etc/apache2/sites-available/etesync-le-ssl.conf
Enabling available site: /etc/apache2/sites-available/etesync-le-ssl.conf

Please choose whether or not to redirect HTTP traffic to HTTPS, removing HTTP access.
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
1: No redirect - Make no further changes to the webserver configuration.
2: Redirect - Make all requests redirect to secure HTTPS access. Choose this for
new sites, or if you're confident your site works on HTTPS. You can undo this
change by editing your web server's configuration.
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Select the appropriate number [1-2] then [enter] (press 'c' to cancel): 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 le résultat suivant :

Enabled Apache rewrite module
Redirecting vhost in /etc/apache2/sites-enabled/etesync.conf to ssl vhost in /etc/apache2/sites-available/
etesync-le-ssl.conf

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Congratulations! You have successfully enabled https://etesync.example.com

You should test your configuration at:
https://www.ssllabs.com/ssltest/analyze.html?d=etesync.example.com
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

Conclusion

Toutes nos félicitations! vous avez installé avec succès EteSync sur le serveur Ubuntu 20.04 avec Let's Encrypt SSL. Vous pouvez maintenant synchroniser votre calendrier et contacter facilement avec EteSync.


Ubuntu
  1. Comment installer Zimbra 8.6 sur le serveur Ubuntu 14.04

  2. Comment installer Logstash sur Ubuntu 18.04

  3. Comment installer Minecraft Server sur Ubuntu 20.04 LTS

  4. Comment installer TeamSpeak Server sur Ubuntu 18.04 et 20.04

  5. Comment installer R sur Ubuntu 18.04

Comment installer le serveur OpenSIPS sur Ubuntu 15.04

Comment installer Consul Server sur Ubuntu 16.04

Comment installer le serveur EteSync 2.0 (Etebase) sur Ubuntu

Comment installer le serveur Apache Tomcat sur Ubuntu 22.04

Comment installer Consul Server sur Ubuntu 20.04

Comment installer EteSync Server sur Ubuntu 20.04