EteSync ist eine Open-Source-Lösung zum Synchronisieren Ihrer Kontakte, Kalender und Aufgaben. Es wird selbst gehostet, bietet Ende-zu-Ende-Verschlüsselung und ermöglicht es Ihnen, Daten mit anderen Benutzern zu teilen. Es kann in GNOME- und KDE-Desktops integriert werden. Es kann über Desktop-, Web-, Android- und iOS-Clients darauf zugegriffen werden.
In diesem Tutorial zeige ich Ihnen, wie Sie EteSync mit Apache auf Ubuntu 20.04 installieren.
Voraussetzungen
- Ein Server mit Ubuntu 20.04.
- Ein gültiger Domainname, auf den Ihre Server-IP verweist.
- Auf dem Server ist ein Root-Passwort konfiguriert.
Erste Schritte
Aktualisieren Sie zuerst die Systempakete auf die aktualisierte Version, indem Sie den folgenden Befehl ausführen:
apt-get update -y
Sobald alle Pakete aktualisiert sind, können Sie mit dem nächsten Schritt fortfahren.
MariaDB-Server installieren
Standardmäßig verwendet EteSync die SQLite-Datenbank, um seine Informationen zu speichern. Hier werden wir MariaDB als Datenbank-Backend installieren und verwenden.
Installieren Sie zunächst die erforderlichen Abhängigkeiten mit dem folgenden Befehl:
apt-get install software-properties-common gnupg2 -y
Fügen Sie als Nächstes den MariaDB-GPG-Schlüssel und das Repository mit dem folgenden Befehl hinzu:
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 focus main'
Aktualisieren Sie als Nächstes das MariaDB-Repository und installieren Sie die neueste Version von MariaDB mit dem folgenden Befehl:
apt-get install mariadb-server -y
Melden Sie sich nach der Installation des MariaDB-Servers mit dem folgenden Befehl bei der MariaDB-Shell an:
mysql
Nachdem Sie sich angemeldet haben, erstellen Sie mit dem folgenden Befehl eine Datenbank und einen Benutzer für EteSync:
MariaDB [(keine)]> Datenbank etesync erstellen;
MariaDB [(keine)]> Benutzer [email protected] erstellen, identifiziert durch 'securepassword';
Als nächstes erteilen Sie der EteSync-Datenbank alle Privilegien mit dem folgenden Befehl:
MariaDB [(none)]> gewährt [email protected] alle Privilegien auf etesync.*;
Leeren Sie als Nächstes die Berechtigungen und beenden Sie die MariaDB mit dem folgenden Befehl:
MariaDB [(none)]> Flush-Berechtigungen;
MariaDB [(none)]> exit;
Wenn Sie fertig sind, können Sie mit dem nächsten Schritt fortfahren.
Installieren und Konfigurieren von EteSync
Zuerst müssen Sie einige Python-Abhängigkeiten installieren, die für EteSync erforderlich sind. Sie können alle mit dem folgenden Befehl installieren:
apt-get install python3-virtualenv python3-pip gcc libmysqlclient-dev build-essential git -y
Nachdem Sie alle Abhängigkeiten installiert haben, laden Sie die neueste Version von EteSync mit dem folgenden Befehl herunter:
git-Klon https://github.com/etesync/server.git etesync
Sobald der Download abgeschlossen ist, ändern Sie das Verzeichnis in etesync und erstellen Sie mit dem folgenden Befehl eine virtuelle Python-Umgebung:
cd etesync
virtualenv -p python3 .venv
Als nächstes aktivieren Sie die virtuelle Umgebung mit dem folgenden Befehl:
Quelle .venv/bin/activate
Installieren Sie als Nächstes alle Anforderungen mit dem folgenden Befehl:
pip install -r requirements.txt
Kopieren Sie als Nächstes die Beispielkonfigurationsdatei:
cp etebase-server.ini.example etebase-server.ini
Bearbeiten Sie als Nächstes die Konfigurationsdatei mit dem folgenden Befehl:
nano etebase-server.ini
Fügen Sie die folgenden Zeilen gemäß Ihrer Konfiguration hinzu oder ändern Sie sie:
media_root =/optallowed_host1 =etesync.example.com;engine =django.db.backends.sqlite3;name =db.sqlite3engine =django.db.backends.mysqlname =etesyncuser =etesyncpassword =securepasswordhost =127.0.0.1port =3306
Speichern und schließen Sie die Datei und installieren Sie dann andere Module mit dem folgenden Befehl:
pip3 install daphne
pip3 install mysqlclient
pip3 install aioredis
Generieren Sie als Nächstes die statischen Dateien und migrieren Sie die Datenbank mit dem folgenden Befehl:
./manage.py collectstatic
./manage.py migrieren
Starten Sie schließlich den EteSync-Server mit dem folgenden Befehl:
daphne -b 0.0.0.0 -p 8001 etebase_server.asgi:application
Wenn alles in Ordnung ist, sollten Sie die folgende Ausgabe erhalten:
2021-07-09 05:42:28,510 INFO Starten des Servers unter tcp:port=8001:interface=0.0.0.02021-07-09 05:42:28,510 INFO HTTP/2-Unterstützung nicht aktiviert (installieren Sie http2 und tls Verdrehte Extras)2021-07-09 05:42:28,511 INFO Konfigurieren des Endpunkts tcp:port=8001:interface=0.0.0.02021-07-09 05:42:28,512 INFO Lauschen auf TCP-Adresse 0.0.0.0:8001
Drücken Sie STRG + C um den Server zu stoppen.
Erstellen Sie als Nächstes mit dem folgenden Befehl einen administrativen Benutzer:
./manage.py erstellt einen Superuser
Geben Sie Ihren Benutzernamen, Ihr Passwort und Ihre E-Mail-Adresse wie unten gezeigt ein:
Benutzername:etesyncE-Mail-Adresse:[email protected]Passwort:Passwort (erneut):Superuser erfolgreich erstellt.
Deaktivieren Sie als Nächstes die virtuelle Python-Umgebung mit dem folgenden Befehl:
deaktivieren
Erstellen Sie eine Systemd-Unit-Datei für EteSync
Als nächstes müssen Sie eine systemd-Einheitendatei zum Verwalten von EteSync erstellen. Sie können es mit dem folgenden Befehl erstellen:
nano /etc/systemd/system/etesync.service
Fügen Sie die folgenden Zeilen hinzu:
[Unit]Description=EteSync:Ende-zu-Ende-Verschlüsselung zum Synchronisieren von Kalender, Kontakten, Aufgaben und Notizen.[Service]WorkingDirectory=/root/etesyncExecStart=/root/etesync/.venv/bin/daphne -b 127.0 .0.1 -p 8001 -u /tmp/etebase_server.sock etebase_server.asgi:applicationUser=rootGroup=rootRestart=alwaysRestartSec=5s[Install]WantedBy=multi-user.target
Speichern und schließen Sie die Datei und laden Sie dann den systemd-Daemon neu, um die Konfigurationsänderungen zu übernehmen:
systemctl daemon-reload
Als nächstes starten und aktivieren Sie den EteSync-Dienst mit dem folgenden Befehl:
systemctl start etesync
systemctl aktiviert etesync
Führen Sie den folgenden Befehl aus, um den Status des EteSync-Dienstes zu überprüfen:
systemctl status etesync
Sie erhalten die folgende Ausgabe:
An diesem Punkt wird EteSync gestartet und überwacht Port 8001. Sie können nun mit dem nächsten Schritt fortfahren.
Apache als Reverse-Proxy konfigurieren
Es ist auch ratsam, Apache als Reverse-Proxy zu installieren und zu verwenden, um auf EteSync zuzugreifen. Installieren Sie zuerst den Apache-Server mit dem folgenden Befehl:
apt-get install apache2 -y
Aktivieren Sie nach der Installation des Apache-Servers alle Proxy-Module mit dem folgenden Befehl:
a2enmod Proxy Proxy_http Header Proxy_wstunnel
Erstellen Sie als Nächstes eine neue Konfigurationsdatei für den virtuellen Apache-Host:
nano /etc/apache2/sites-available/etesync.conf
Fügen Sie die folgenden Zeilen hinzu:
ServerName etesync.example.com ErrorDocument 404 /404.html ErrorLog ${APACHE_LOG_DIR}/etebase_error.log CustomLog ${APACHE_LOG_DIR}/etebase_access.log kombiniert ProxyPreserveHost Auf ProxyPass / http://127.0. 0.1:8001/ ProxyPassReverse / http://127.0.0.1:8001/ Alias /static /etesync/static
Speichern und schließen Sie die Datei und aktivieren Sie dann den virtuellen Apache-Host mit dem folgenden Befehl:
a2ensite etesync.conf
Als nächstes starten Sie den Apache neu, um die Änderungen zu aktualisieren:
systemctl startet Apache2 neu
Sie können den Apache-Status jetzt mit dem folgenden Befehl überprüfen:
systemctl-Status apache2
Sie sollten die folgende Ausgabe erhalten:
Greifen Sie auf die EteSync-Verwaltungskonsole zu
Öffnen Sie nun Ihren Webbrowser und greifen Sie über die URL http://etesync.example.com/admin/ auf die EteSync-Administrationsoberfläche zu . Sie werden auf die folgende Seite weitergeleitet:
Geben Sie Ihren Admin-Benutzernamen und Ihr Passwort ein und klicken Sie auf Anmelden Taste. Sie sollten die folgende Seite sehen:
Sichern Sie EteSync mit Let's Encrypt SSL
Zuerst müssen Sie den Certbot Let's Encrypt-Client installieren, um das SSL-Zertifikat für Ihre Domain herunterzuladen und zu installieren.
Sie können es mit dem folgenden Befehl installieren:
apt-get install python3-certbot-apache -y
Nach der Installation können Sie den folgenden Befehl ausführen, um das Let's Encrypt-Zertifikat für Ihre Domain etesync.example.com zu installieren.
certbot --apache -d etesync.example.com
Während der Installation werden Sie aufgefordert, Ihre E-Mail-Adresse anzugeben und die Nutzungsbedingungen wie unten gezeigt zu akzeptieren:
Speichern des Debug-Protokolls in /var/log/letsencrypt/letsencrypt.logAusgewählte Plugins:Authenticator Apache, Installer ApacheE-Mail-Adresse eingeben (wird für dringende Erneuerungs- und Sicherheitshinweise verwendet) (Geben Sie „c“ zum Abbrechen ein):[email protected]- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Bitte lesen Sie die Nutzungsbedingungen unter https://letsencrypt.org /documents/LE-SA-v1.2-November-15-2017.pdf. Sie müssen zustimmen, um sich beim ACME-Server unter https://acme-v02.api.letsencrypt.org/directory- - - - - - - - - - - - - - - - - - - - - - - - - zu registrieren - - - - - - - - - - - - - - -(A)gree/(C)cancel:A- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Wären Sie bereit, Ihre E-Mail-Adresse mit der Electronic Frontier Foundation, einem Gründungspartner des Let's Encrypt-Projekts und der gemeinnützigen Organisation, die Certbot entwickelt, zu teilen? Wir möchten Ihnen E-Mails über unsere Arbeit zur Verschlüsselung des Internets, EFF-Nachrichten, Kampagnen und Möglichkeiten zur Unterstützung der digitalen Freiheit senden.- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -(Y)es/(N)o:YEin neues Zertifikat erhaltenDurchführen der folgenden Challenges:http-01 Challenge für etesync.example.comEnabled Apache rewrite moduleWarten auf Verifizierung. ..Bereinigung der HerausforderungenErstellte einen SSL-Vhost unter /etc/apache2/sites-available/etesync-le-ssl.confBereitstellung des Zertifikats auf VirtualHost /etc/apache2/sites-available/etesync-le-ssl.confAktivierung der verfügbaren Site:/etc/ apache2/sites-available/etesync-le-ssl.confBitte wählen Sie, ob der HTTP-Datenverkehr auf HTTPS umgeleitet werden soll oder nicht, und den HTTP-Zugriff entfernen.- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -1:Keine Umleitung – Keine weiteren Änderungen an der Webserver-Konfiguration vornehmen.2:Umleitung – Alle Anfragen auf sicheren HTTPS-Zugriff umleiten. Wählen Sie dies für neue Websites oder wenn Sie sicher sind, dass Ihre Website auf HTTPS funktioniert. Sie können diese Änderung rückgängig machen, indem Sie die Konfiguration Ihres Webservers bearbeiten. - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -Wählen Sie die entsprechende Nummer [1-2] und dann [enter] (drücken Sie 'c' zum Abbrechen):2
Geben Sie als Nächstes 2 ein und drücken Sie die Eingabetaste, um ein kostenloses SSL-Zertifikat für Ihre Domain herunterzuladen und zu installieren. Sobald die Installation erfolgreich abgeschlossen wurde. Sie sollten die folgende Ausgabe erhalten:
Enabled Apache rewrite moduleRedirecting vhost in /etc/apache2/sites-enabled/etesync.conf to ssl vhost in /etc/apache2/sites-available/etesync-le-ssl.conf- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -Herzliche Glückwünsche! Sie haben https://etesync.example.com erfolgreich aktiviert. Testen Sie Ihre Konfiguration unter:https://www.ssllabs.com/ssltest/analyze.html?d=etesync.example.com- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Schlussfolgerung
Herzliche Glückwünsche! Sie haben EteSync erfolgreich auf einem Ubuntu 20.04-Server mit Let’s Encrypt SSL installiert. Sie können jetzt Ihren Kalender und Ihre Kontakte ganz einfach mit EteSync synchronisieren.