Dieses Tutorial zeigt Ihnen, wie Sie EteSync installieren Server auf Ubuntu. EteSync ist eine Open-Source-End-to-End-Verschlüsselungslösung zum Synchronisieren Ihrer Kalender, Kontakte, Aufgaben und Notizen.
EteSync-Funktionen
Die neueste Version ist EteSync 2.0 mit Funktionen
- Ende-zu-Ende-Verschlüsselung.
- Kein separates Verschlüsselungspasswort erforderlich. Sie benötigen nur ein Passwort, das sowohl für die Verschlüsselung als auch für die Anmeldung verwendet wird.
- Zero-Knowledge-Proof zur Authentifizierung beim Server, um sicherzustellen, dass Ihr Passwort Ihr Gerät nie verlässt.
- Sofortige Synchronisierung zwischen Ihren Geräten.
- Die Möglichkeit, Daten mit anderen Benutzern zu teilen
- Clients sind für den Desktop (DAV Bridge), das Web, Android und iOS verfügbar.
- Integration mit GNOME- und KDE-Desktops (EteSync-Backend für Evolution und Akonadi).
- Ein Add-on für Mozilla Thunderbird.
- Upgrade auf das neue Etebase-Protokoll.
In naher Zukunft wird EteSync auch Unterstützung für die sichere Standortfreigabe hinzufügen. EteSync bietet einen gehosteten Service unter etesync.com. Ich werde Ihnen zeigen, wie Sie eine selbst gehostete Instanz auf einem Ubuntu-Server ausführen und die Client-Software auf verschiedenen Plattformen verwenden.
Schritt 1:Installieren Sie die neueste stabile Version von MariaDB Server auf Ubuntu
Standardmäßig speichert EteSync Benutzerinformationen in SQLite Datenbank. Wenn Sie MariaDB bevorzugen , befolgen Sie die nachstehenden Anweisungen.
Sie sollten die neueste stabile Version von MariaDB verwenden, nämlich 10.5, da es Probleme geben wird, wenn Sie EteSync mit MariaDB 10.3 ausführen. Um die neueste stabile Version zu installieren, führen Sie die folgenden Befehle aus, um das MariaDB-Repository auf Ubuntu 20.04 hinzuzufügen.
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'
Um das Repository unter Ubuntu 18.04 hinzuzufügen, ersetzen Sie einfach focal
mit bionic
im dritten Befehl.
Aktualisieren Sie dann den Paketindex und installieren Sie den MariaDB-Server.
sudo apt update sudo apt install mariadb-server
Wenn Sie einen vorhandenen MariaDB-Server auf die neueste Version aktualisieren, wird möglicherweise die folgende Meldung angezeigt. Ich empfehle N
zu wählen um die aktuelle Version beizubehalten und zu prüfen, was später geändert werden muss.
Wenn es ein Paketabhängigkeitsproblem gibt, können Sie den folgenden Befehl ausführen, um es zu beheben.
sudo apt --fix-broken install
Sobald die Installation abgeschlossen ist, startet der MariaDB-Server automatisch. Sie können den Status überprüfen mit:
systemctl status mariadb
Wie Sie sehen können, ist es aktiv und wird ausgeführt.
Hinweis :Drücken Sie Q um die Kontrolle über das Terminal zurückzugewinnen, wenn der obige Befehl nicht sofort beendet wird.
Wenn es nicht läuft, können Sie es manuell starten mit:
sudo systemctl start mariadb
Um den automatischen Start beim Booten zu aktivieren, führen Sie
aussudo systemctl enable mariadb
Schritt 2:Erstellen Sie eine Datenbank und einen Benutzer für EteSync im MariaDB-Datenbankserver
Melden Sie sich mit dem folgenden Befehl beim MariaDB-Datenbankserver an. Da MariaDB jetzt unix_socket
verwendet Plugin verwenden, um die Benutzeranmeldung zu authentifizieren, müssen Sie das MariaDB-Root-Passwort nicht eingeben. Wir müssen nur mysql
voranstellen Befehl mit sudo
.
sudo mysql
Erstellen Sie dann eine Datenbank für EteSync. Dieses Tutorial nennt die Datenbank etebase
. Sie können einen beliebigen Namen verwenden.
create database etebase;
Erstellen Sie den Datenbankbenutzer. Auch hier können Sie Ihren bevorzugten Namen für diesen Benutzer verwenden. Ersetzen Sie your-password
mit Ihrem bevorzugten Passwort.
create user etebase@localhost identified by 'your-password';
Gewähren Sie diesem Benutzer alle Berechtigungen für die etebase
Datenbank.
grant all privileges on etebase.* to etebase@localhost;
Berechtigungen leeren und beenden.
flush privileges; exit;
Schritt 3:EteSync 2.0 Server auf Ubuntu installieren
Installieren Sie den Python3 Virtual Environment Creator und einige Tools zur Paketerstellung.
sudo apt install python3-virtualenv python3-pip gcc build-essential
Wechseln Sie in Ihr Home-Verzeichnis.
cd
Klonen Sie das EteSync-Repository von Github.
git clone https://github.com/etesync/server.git etebase
Wechseln Sie in das neu erstellte Verzeichnis.
cd etebase
Erstellen Sie eine virtuelle Python3-Umgebung.
virtualenv -p python3 .venv source .venv/bin/activate pip install -r requirements.txt
Kopieren Sie die Beispielkonfigurationsdatei.
cp etebase-server.ini.example etebase-server.ini
Bearbeiten Sie die Datei.
nano etebase-server.ini
Suchen Sie die folgende Zeile
;media_root = /path/to/media
Kommentieren Sie es aus und ändern Sie den Wert.
media_root = /home/username/etebase/media/
Suchen Sie die folgende Zeile,
allowed_host1 = example.com
Verwenden Sie eine Subdomain wie etebase.example.com
.
allowed_host1 = etebase.example.com
Standardmäßig speichert EteSync Benutzerinformationen in der SQLite-Datenbank. Wenn Sie den MariaDB-Datenbankserver bevorzugen, kommentieren Sie die folgenden zwei Zeilen aus (fügen Sie am Anfang jeder Zeile ein Semikolon hinzu).
engine = django.db.backends.sqlite3 name = db.sqlite3
Fügen Sie dann die folgenden Zeilen am Ende dieser Datei hinzu. Dies teilt EteSync mit, wie es auf die etebase
zugreifen soll Datenbank in MariaDB, die in Schritt 1 erstellt wird. Natürlich müssen Sie Ihr eigenes Passwort für die etebase
verwenden Benutzer.
engine = django.db.backends.mysql name = etebase user = etebase password = your-password host = 127.0.0.1 port = 3306
Speichern und schließen Sie die Datei. Der Etebase-Server ist eine Django-Anwendung. Wir können Daphne (den HTTP/WebSocket-Server von Django Channels) verwenden, um Etebase auszuführen. Installieren Sie Daphne mit:
pip3 install daphne
Da wir MySQL/MariaDB als Datenbank-Engine verwenden, müssen wir auch den mysqlclient
installieren Modul.
sudo apt install libmysqlclient-dev pip3 install mysqlclient
Installieren Sie aioredis
Modul, um den Redis-Cache zu verwenden.
pip3 install aioredis
Statische Dateien von Django erstellen.
./manage.py collectstatic
App initialisieren.
./manage.py migrate
Starten Sie den EteSync 2.0 (Etebase)-Server.
daphne -b 0.0.0.0 -p 8001 etebase_server.asgi:application
Schritt 4:EteSync als Systemd-Dienst ausführen
Wir können EteSync manuell mit daphne -b 0.0.0.0 -p 8001 etebase_server.asgi:application
starten , aber es ist bequemer, EteSync als systemd-Dienst im Hintergrund auszuführen. Drücken Sie Ctrl+C
um die aktuelle EteSync-Instanz zu stoppen.
Erstellen Sie mit dem folgenden Befehl eine systemd-Service-Unit-Datei für EteSync.
sudo nano /etc/systemd/system/etebase.service
Fügen Sie die folgenden Zeilen in die Datei ein. Ersetzen Sie username
mit Ihrem echten Benutzernamen.
[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
Speichern und schließen Sie die Datei. Jetzt können wir die etebase
starten und aktivieren systemd-Dienst.
sudo systemctl start etebase sudo systemctl enable etebase
Status prüfen.
systemctl status etebase
Wenn die etebase
Dienst nicht aktiv ist (wird ausgeführt), können Sie den folgenden Befehl ausführen, um zu sehen, was falsch ist.
sudo journalctl -eu etebase
Schritt 5:Reverse-Proxy einrichten
Jetzt müssen wir einen Reverse-Proxy für die Django-Anwendung einrichten, damit wir später über einen Domänennamen auf EteSync zugreifen und HTTPS einfach aktivieren können. Dazu können wir Apache oder Nginx verwenden.
Apache
Wenn Sie Apache bevorzugen, installieren Sie den Apache-Webserver mit dem folgenden Befehl.
sudo apt install apache2
Um Apache als Reverse-Proxy zu verwenden, müssen wir den proxy
aktivieren module und den header
Modul.
sudo a2enmod proxy proxy_http headers proxy_wstunnel
Erstellen Sie dann eine virtuelle Hostdatei für EteSync.
sudo nano /etc/apache2/sites-available/etebase.conf
Fügen Sie die folgenden Konfigurationen in die Datei ein. Ersetzen Sie etebase.example.com
mit Ihrem tatsächlichen Domainnamen. Vergessen Sie nicht, einen DNS-A-Eintrag für diese Subdomain zu erstellen. Wenn Sie keinen echten Domainnamen haben, empfehle ich, zu NameCheap zu gehen, um einen zu kaufen. Der Preis ist niedrig und sie bieten Whois-Datenschutz lebenslang kostenlos.
<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>
Speichern und schließen Sie die Datei. Aktivieren Sie dann diesen virtuellen Host.
sudo a2ensite etebase.conf
Starten Sie Apache neu
sudo systemctl restart apache2
Jetzt können Sie über den Domainnamen etebase.example.com
auf die EteSync-Webschnittstelle zugreifen .
Nginx
Wenn Sie den Nginx-Webserver bevorzugen, installieren Sie Nginx mit.
sudo apt install nginx
Erstellen Sie eine virtuelle Hostdatei in Nginx für EteSync.
sudo nano /etc/nginx/conf.d/etebase.conf
Fügen Sie die folgenden Zeilen in die Datei ein. Ersetzen Sie die Platzhalter nach Bedarf und Sie sollten einen DNS-A-Eintrag für die Subdomain erstellen.
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; } }
Speichern und schließen Sie die Datei. Testen Sie dann die Nginx-Konfigurationen.
sudo nginx -t
Wenn der Test erfolgreich ist, laden Sie Nginx neu, damit die Änderung wirksam wird.
sudo systemctl reload nginx
Jetzt können Sie unter etebase.example.com
auf die EteSync-Webschnittstelle zugreifen .
Fehlerbehebung
Wenn Sie die bad request (400)
sehen Fehler beim Versuch, auf die EteSync-Webschnittstelle zuzugreifen, stellen Sie sicher, dass Sie den etesync-Servernamen zu allowd_hosts
hinzugefügt haben Liste in etebase-server.ini
Datei. Starten Sie dann etebase neu (sudo systemctl restart etebase
).
Sie können den Debug-Modus auch in der etebase-server.ini aktivieren Datei, d.h. ändern
debug = false
An
debug = true
Starten Sie dann etebase neu.
sudo systemctl restart etebase
Überprüfen Sie dann das Systemd-Dienstprotokoll.
sudo journalctl -eu etebase
Schritt 6:HTTPS aktivieren
Um den HTTP-Verkehr zu verschlüsseln, können wir HTTPS aktivieren, indem wir ein kostenloses TLS-Zertifikat installieren, das von Let’s Encrypt ausgestellt wurde. Führen Sie den folgenden Befehl aus, um den Let’s Encrypt-Client (certbot) auf dem Ubuntu-Server zu installieren.
sudo apt install certbot
Wenn Sie Apache verwenden, müssen Sie auch das Certbot-Apache-Plugin installieren.
sudo apt install python3-certbot-apache
Führen Sie als Nächstes den folgenden Befehl aus, um das TLS-Zertifikat zu erhalten und zu installieren.
sudo certbot --apache --agree-tos --redirect --hsts --staple-ocsp --email [email protected] -d etebase.example.com
Wenn Sie Nginx verwenden, müssen Sie auch das Certbot Nginx-Plugin installieren.
sudo apt install python3-certbot-nginx
Führen Sie als Nächstes den folgenden Befehl aus, um das TLS-Zertifikat zu erhalten und zu installieren.
sudo certbot --nginx --agree-tos --redirect --hsts --staple-ocsp --email [email protected] -d etebase.yourdomain.com
Wo:
--apache
:Verwenden Sie das Apache-Plugin.--nginx
:Verwenden Sie das nginx-Plugin.--agree-tos
:Nutzungsbedingungen akzeptieren.--redirect
:HTTPS durch 301-Umleitung erzwingen.--hsts
:Fügen Sie jeder HTTP-Antwort den Strict-Transport-Security-Header hinzu. Erzwingen, dass der Browser immer TLS für die Domäne verwendet. Schützt vor SSL/TLS-Stripping.--staple-ocsp
:Aktiviert OCSP-Heften. Eine gültige OCSP-Antwort wird an das Zertifikat geheftet, das der Server während TLS anbietet.
Das Zertifikat sollte nun abgerufen und automatisch installiert werden.
Schritt 7:Benutzerkonten erstellen
Erstellen Sie einen Super-Admin-Benutzer.
./manage.py createsuperuser
Gehen Sie dann zu etebase.example.com/admin
und melden Sie sich bei der Admin-Konsole an. Als Nächstes können Sie einzelne Benutzerkonten erstellen, die zum Synchronisieren von Kalendern, Kontakten, Aufgaben und Notizen verwendet werden. Beachten Sie, dass Sie keine Passwörter für Benutzer in der EteSync-Verwaltungskonsole erstellen müssen, da Etebase Zero-Knowledge-Proof für die Authentifizierung verwendet.
Jetzt müssen wir Clients einrichten, um EteSync zu verwenden.
So installieren Sie das Evolution EteSync-Modul auf Ubuntu Desktop
Entwicklung ist die Standard-Groupware-Suite in der GNOME-Desktopumgebung. Sie können es auf Ihrem Ubuntu-Desktop installieren mit:
sudo apt install evolution
Um EteSync in Evolution zu verwenden, müssen wir das EteSync-Modul für Evolution installieren, indem wir die folgenden Schritte ausführen.
Klonen Sie die libetebase
Repository.
sudo apt install git git clone https://github.com/etesync/libetebase.git
Wechseln Sie in das neu erstellte Verzeichnis.
cd libetebase/
Installieren Sie die erforderlichen Pakete, um das Paket aus der Quelle zu erstellen.
sudo apt install build-essential libssl-dev cargo
Kompilieren Sie das Quellpaket.
make
Installieren Sie die Binärdatei.
sudo make install
Gehen Sie dann zurück zum vorherigen Verzeichnis.
cd ..
Klonen Sie den Evolution-EteSync
Repository.
git clone https://gitlab.gnome.org/GNOME/evolution-etesync
Wechseln Sie in das neu erstellte Verzeichnis.
cd evolution-etesync/
Installieren Sie die erforderlichen Pakete, um das Paket aus der Quelle zu erstellen.
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
Kompilieren und installieren Sie das Paket.
mkdir build cd build cmake -DCMAKE_INSTALL_PREFIX=/usr .. make -j sudo make -j install
EteSync in Evolution verwenden
Starten Sie nun die Evolution-App auf Ihrem Ubuntu-Desktop. Klicken Sie auf Neu Schaltfläche in der Symbolleiste und fügen Sie ein neues Sammelkonto hinzu .
Geben Sie dann Ihren EteSync-Benutzernamen und die Serveradresse ein. Beachten Sie, dass Sie https://
hinzufügen müssen als Präfix der Serveradresse. Wählen Sie Nach einem EteSync-Konto suchen und deaktivieren Sie alle anderen Optionen. Klicken Sie dann auf Nachschlagen Schaltfläche.
Sie werden aufgefordert, ein Passwort einzugeben, um fortzufahren. Dies ist eigentlich der Zeitpunkt, um das Passwort festzulegen, also klicken Sie auf Passwort eingeben Link und legen Sie ein Passwort fest.
Nachdem Sie ein Passwort eingegeben haben, klicken Sie auf die Schaltfläche Erneut versuchen und es sollte einen Kandidaten finden. Klicken Sie auf Weiter um fortzufahren.
Mit NextCloud synchronisieren
Wenn Sie einen selbst gehosteten Nextcloud-Server haben und die App „Kalender“, „Aufgaben“ oder „Kontakte“ auf Ihrem Nextcloud-Server installiert haben, können Sie Ihren Nextcloud-DAV-Server in Evolution hinzufügen, damit sie synchronisiert werden können. Fügen Sie einfach ein weiteres Sammelkonto hinzu Geben Sie in Evolution Ihren Nextcloud-Benutzernamen und die CalDAV/CardDAV-Adresse ein und wählen Sie Nach einem CalDAV/CardDAV-Server suchen , deaktivieren Sie alle anderen Optionen. Geben Sie dann Ihr Nextcloud-Passwort ein. Die Nextcloud CalDAV/CardDAV-Adresse sollte https://nextcloud.yourdomain.com/remote.php/dav
sein .
Verwendung der iOS EteSync-App
Um Ihren Kalender, Ihre Kontakte und Aufgaben auf iOS zu synchronisieren, müssen Sie zuerst ein CalDAV/CardDAV-Konto in iOS einrichten. Rufen Sie die Einstellungen auf app -> Kalender -> Konten -> Konto hinzufügen -> Andere , und fügen Sie ein CalDAV- und CardDAV-Konto hinzu. CalDAV wird verwendet, um Kalender zu synchronisieren, und CardDAV wird verwendet, um Kontakte auf Ihren Geräten zu synchronisieren.
Wenn Sie einen selbst gehosteten Nextcloud-Server haben, können Sie Ihr Nextcloud CalDAV/CardDAV-Konto verwenden. Wenn Sie kein Konto haben, verwenden Sie einfach ein gefälschtes Konto.
Installieren Sie als Nächstes die EteSync-App aus dem App Store. Fügen Sie dann Ihr EteSync-Konto hinzu.
Nachdem Sie sich bei Ihrem EteSync-Konto angemeldet haben, gehen Sie zu den Einstellungen Menü in der EteSync-App. Unter Erweitert Wählen Sie im Abschnitt Ihr CardDAV-Konto für Kontakte synchronisieren aus und wählen Sie Ihr CalDAV-Konto für Kalender und Erinnerungen synchronisieren aus .