Tento tutoriál vám ukáže, jak nainstalovat EteSync server na Ubuntu. EteSync je open source end-to-end šifrovací řešení pro synchronizaci vašich kalendářů, kontaktů, úkolů a poznámek.
Funkce EteSync
Nejnovější verze je EteSync 2.0, která obsahuje
- End-to-end šifrování.
- Není potřeba žádné samostatné šifrovací heslo. Potřebujete pouze jedno heslo, které se používá jak pro šifrování, tak pro přihlášení.
- Důkaz s nulovými znalostmi pro ověření na serveru, který zajistí, že vaše heslo nikdy neopustí vaše zařízení.
- Okamžitá synchronizace mezi vašimi zařízeními.
- Možnost sdílet data s ostatními uživateli
- Klienti jsou k dispozici pro počítače (DAV bridge), web, Android a iOS.
- Integrace s desktopy GNOME a KDE (backend EteSync pro Evolution a Akonadi).
- Doplněk pro Mozilla Thunderbird.
- Upgradujte na nový protokol Etebase.
V blízké budoucnosti EteSync přidá také podporu pro bezpečné sdílení polohy. EteSync poskytuje hostovanou službu na etesync.com. Ukážu vám, jak spustit samostatně hostovanou instanci na serveru Ubuntu a jak používat klientský software na různých platformách.
Krok 1:Instalace nejnovější stabilní verze serveru MariaDB na Ubuntu
Ve výchozím nastavení ukládá EteSync informace o uživatelích do SQLite databáze. Pokud dáváte přednost použití MariaDB , postupujte podle pokynů níže.
Měli byste používat nejnovější stabilní verzi MariaDB, což je 10.5, protože při spuštění EteSync s MariaDB 10.3 nastanou problémy. Chcete-li nainstalovat nejnovější stabilní verzi, spusťte následující příkazy a přidejte úložiště MariaDB na 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'
Chcete-li přidat úložiště na Ubuntu 18.04, jednoduše nahraďte focal
s bionic
ve třetím příkazu.
Poté aktualizujte index balíčku a nainstalujte server MariaDB.
sudo apt update sudo apt install mariadb-server
Pokud upgradujete existující server MariaDB na nejnovější verzi, může se zobrazit následující zpráva. Doporučuji zvolit N
zachovat aktuální verzi a prozkoumat, co je třeba později změnit.
Pokud se vyskytne problém se závislostí balíčku, můžete jej opravit spuštěním následujícího příkazu.
sudo apt --fix-broken install
Po dokončení instalace se automaticky spustí server MariaDB. Jeho stav můžete zkontrolovat pomocí:
systemctl status mariadb
Jak vidíte, je aktivní a běží.
Nápověda :Stiskněte Q získat zpět kontrolu nad terminálem, pokud výše uvedený příkaz okamžitě neskončí.
Pokud neběží, můžete jej spustit ručně pomocí:
sudo systemctl start mariadb
Chcete-li povolit automatické spouštění při spouštění, spusťte
sudo systemctl enable mariadb
Krok 2:Vytvoření databáze a uživatele pro EteSync na databázovém serveru MariaDB
Přihlaste se k databázovému serveru MariaDB pomocí následujícího příkazu. Protože MariaDB nyní používá unix_socket
plugin pro ověření přihlášení uživatele, není potřeba zadávat root heslo MariaDB. Potřebujeme pouze předponu mysql
příkaz pomocí sudo
.
sudo mysql
Poté vytvořte databázi pro EteSync. Tento tutoriál pojmenuje databázi etebase
. Můžete použít jakékoli jméno.
create database etebase;
Vytvořte uživatele databáze. Opět můžete pro tohoto uživatele použít preferované jméno. Nahraďte your-password
s vaším preferovaným heslem.
create user etebase@localhost identified by 'your-password';
Udělte tomuto uživateli všechna oprávnění na etebase
databáze.
grant all privileges on etebase.* to etebase@localhost;
Vyprázdněte oprávnění a ukončete.
flush privileges; exit;
Krok 3:Nainstalujte EteSync 2.0 Server na Ubuntu
Nainstalujte tvůrce virtuálního prostředí Python3 a některé nástroje pro tvorbu balíčků.
sudo apt install python3-virtualenv python3-pip gcc build-essential
Přejděte do svého domovského adresáře.
cd
Naklonujte úložiště EteSync z Github.
git clone https://github.com/etesync/server.git etebase
Přejděte do nově vytvořeného adresáře.
cd etebase
Vytvořte virtuální prostředí Python3.
virtualenv -p python3 .venv source .venv/bin/activate pip install -r requirements.txt
Zkopírujte vzorový konfigurační soubor.
cp etebase-server.ini.example etebase-server.ini
Upravte soubor.
nano etebase-server.ini
Najděte následující řádek
;media_root = /path/to/media
Odkomentujte jej a změňte hodnotu.
media_root = /home/username/etebase/media/
Najděte následující řádek,
allowed_host1 = example.com
Použijte subdoménu jako etebase.example.com
.
allowed_host1 = etebase.example.com
Ve výchozím nastavení EteSync ukládá informace o uživatelích do databáze SQLite. Pokud dáváte přednost použití databázového serveru MariaDB, zakomentujte následující dva řádky (na začátek každého řádku přidejte středník).
engine = django.db.backends.sqlite3 name = db.sqlite3
Poté přidejte následující řádky na konec tohoto souboru. To říká EteSync, jak získat přístup k etebase
databáze v MariaDB, která je vytvořena v kroku 1. Samozřejmě musíte použít své vlastní heslo pro etebase
uživatel.
engine = django.db.backends.mysql name = etebase user = etebase password = your-password host = 127.0.0.1 port = 3306
Uložte a zavřete soubor. Server Etebase je aplikace Django, ke spuštění Etebase můžeme použít Daphne (server HTTP/WebSocket Django Channels). Nainstalujte Daphne pomocí:
pip3 install daphne
Protože jako databázový stroj používáme MySQL/MariaDB, musíme také nainstalovat mysqlclient
modul.
sudo apt install libmysqlclient-dev pip3 install mysqlclient
Nainstalujte aioredis
za účelem použití mezipaměti Redis.
pip3 install aioredis
Vytvořte statické soubory Django.
./manage.py collectstatic
Inicializujte aplikaci.
./manage.py migrate
Spusťte server EteSync 2.0 (Etebase).
daphne -b 0.0.0.0 -p 8001 etebase_server.asgi:application
Krok 4:Spusťte EteSync jako službu Systemd
EteSync můžeme spustit ručně pomocí daphne -b 0.0.0.0 -p 8001 etebase_server.asgi:application
, ale je pohodlnější spouštět EteSync jako systemd službu na pozadí. Stiskněte Ctrl+C
zastavit aktuální instanci EteSync.
Vytvořte soubor servisní jednotky systemd pro EteSync pomocí následujícího příkazu.
sudo nano /etc/systemd/system/etebase.service
Vložte do souboru následující řádky. Nahraďte username
s vaším skutečným uživatelským jménem.
[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.targetuser.target
Uložte a zavřete soubor. Nyní můžeme spustit a povolit etebase
systemd service.
sudo systemctl start etebase sudo systemctl enable etebase
Zkontrolujte stav.
systemctl status etebase
Pokud etebase
služba není aktivní (běží), můžete spustit následující příkaz a zjistit, co je špatně.
sudo journalctl -eu etebase
Krok 5:Nastavení reverzního proxy
Nyní musíme nastavit reverzní proxy pro aplikaci Django, abychom později mohli přistupovat k EteSync přes název domény a snadno povolit HTTPS. K tomu můžeme použít Apache nebo Nginx.
Apache
Pokud dáváte přednost Apache, nainstalujte webový server Apache pomocí následujícího příkazu.
sudo apt install apache2
Chcete-li používat Apache jako reverzní proxy, musíme povolit proxy
moduly a header
modul.
sudo a2enmod proxy proxy_http headers proxy_wstunnel
Poté vytvořte soubor virtuálního hostitele pro EteSync.
sudo nano /etc/apache2/sites-available/etebase.conf
Do souboru vložte následující konfigurace. Nahraďte etebase.example.com
s vaším skutečným názvem domény. Nezapomeňte vytvořit DNS A záznam pro tuto subdoménu. Pokud nemáte skutečný název domény, doporučuji přejít na NameCheap a koupit si ho. Cena je nízká a poskytují ochranu soukromí whois doživotně zdarma.
<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>
Uložte a zavřete soubor. Poté povolte tohoto virtuálního hostitele.
sudo a2ensite etebase.conf
Restartujte Apache
sudo systemctl restart apache2
Nyní můžete přistupovat k webovému rozhraní EteSync pomocí názvu domény etebase.example.com
.
Nginx
Pokud dáváte přednost webovému serveru Nginx, nainstalujte Nginx pomocí.
sudo apt install nginx
Vytvořte soubor virtuálního hostitele v Nginx pro EteSync.
sudo nano /etc/nginx/conf.d/etebase.conf
Vložte do souboru následující řádky. Podle potřeby nahraďte zástupné symboly a měli byste vytvořit záznam DNS A pro subdoménu.
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; } }
Uložte a zavřete soubor. Poté otestujte konfigurace Nginx.
sudo nginx -t
Pokud je test úspěšný, znovu načtěte Nginx, aby se změna projevila.
sudo systemctl reload nginx
Nyní máte přístup k webovému rozhraní EteSync na etebase.example.com
.
Odstraňování problémů
Pokud vidíte bad request (400)
chyba při pokusu o přístup k webovému rozhraní EteSync, ujistěte se, že jste přidali název serveru etesync do allowd_hosts
seznam v etebase-server.ini
soubor. Poté restartujte etebase (sudo systemctl restart etebase
).
Můžete také povolit režim ladění na etebase-server.ini soubor, tj. změnit
debug = false
Komu
debug = true
Poté restartujte etebase.
sudo systemctl restart etebase
Poté zkontrolujte protokol služeb systemd.
sudo journalctl -eu etebase
Krok 6:Povolte HTTPS
Pro šifrování HTTP provozu můžeme povolit HTTPS instalací bezplatného TLS certifikátu vydaného od Let’s Encrypt. Spuštěním následujícího příkazu nainstalujte klienta Let’s Encrypt (certbot) na server Ubuntu.
sudo apt install certbot
Pokud používáte Apache, musíte si také nainstalovat plugin Certbot Apache.
sudo apt install python3-certbot-apache
Dále spusťte následující příkaz pro získání a instalaci certifikátu TLS.
sudo certbot --apache --agree-tos --redirect --hsts --staple-ocsp --email [email protected] -d etebase.example.com
Pokud používáte Nginx, musíte si také nainstalovat plugin Certbot Nginx.
sudo apt install python3-certbot-nginx
Dále spusťte následující příkaz pro získání a instalaci certifikátu TLS.
sudo certbot --nginx --agree-tos --redirect --hsts --staple-ocsp --email [email protected] -d etebase.yourdomain.com
Kde:
--apache
:Použijte plugin Apache.--nginx
:Použijte plugin nginx.--agree-tos
:Souhlas se smluvními podmínkami.--redirect
:Vynutit HTTPS přesměrováním 301.--hsts
:Přidejte hlavičku Strict-Transport-Security do každé odpovědi HTTP. Vynucení prohlížeče, aby pro doménu vždy používal TLS. Chrání před odstraněním SSL/TLS.--staple-ocsp
:Umožňuje sešívání OCSP. Platná odpověď OCSP je přišita k certifikátu, který server nabízí během TLS.
Certifikát by nyní měl být získán a automaticky nainstalován.
Krok 7:Vytvoření uživatelských účtů
Vytvořte uživatele superadmin.
./manage.py createsuperuser
Poté přejděte na etebase.example.com/admin
a přihlaste se do administrátorské konzole. Dále můžete vytvořit jednotlivé uživatelské účty, které se budou používat pro synchronizaci kalendářů, kontaktů, úkolů a poznámek. Všimněte si, že nemusíte vytvářet hesla pro uživatele v administrátorské konzoli EteSync, protože Etebase používá k ověřování důkaz s nulovými znalostmi.
Nyní musíme nastavit klienty pro používání EteSync.
Jak nainstalovat modul Evolution EteSync na plochu Ubuntu
Evoluce je výchozí groupwarová sada v desktopovém prostředí GNOME. Můžete jej nainstalovat na plochu Ubuntu pomocí:
sudo apt install evolution
Chcete-li používat EteSync v Evolution, musíme nainstalovat modul EteSync pro Evolution podle následujících kroků.
Klonujte libetebase
úložiště.
sudo apt install git git clone https://github.com/etesync/libetebase.git
Přejděte do nově vytvořeného adresáře.
cd libetebase/
Nainstalujte požadované balíčky pro sestavení balíčku ze zdroje.
sudo apt install build-essential libssl-dev cargo
Zkompilujte zdrojový balíček.
make
Nainstalujte binární soubor.
sudo make install
Poté se vraťte do předchozího adresáře.
cd ..
Naklonujte Evolution-EteSync
úložiště.
git clone https://gitlab.gnome.org/GNOME/evolution-etesync
Přejděte do nově vytvořeného adresáře.
cd evolution-etesync/
Nainstalujte požadované balíčky pro sestavení balíčku ze zdroje.
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
Zkompilujte a nainstalujte balíček.
mkdir build cd build cmake -DCMAKE_INSTALL_PREFIX=/usr .. make -j sudo make -j install
Používání EteSync v Evolution
Nyní spusťte aplikaci Evolution na ploše Ubuntu. Klikněte na Nový na panelu nástrojů a přidejte nový účet sbírky .
Poté zadejte své uživatelské jméno a adresu serveru EteSync. Upozorňujeme, že je třeba přidat https://
jako prefix adresy serveru. Vyberte možnost Vyhledat účet EteSync a zrušte zaškrtnutí všech ostatních možností. Poté klikněte na tlačítko Vyhledat tlačítko.
Pro pokračování budete požádáni o zadání hesla. Ve skutečnosti je čas nastavit heslo, takže klikněte na Zadat heslo odkaz a nastavte heslo.
Po zadání hesla klikněte na tlačítko Zkusit znovu a mělo by najít jednoho kandidáta. Klikněte na tlačítko Další pokračujte.
Synchronizace s NextCloud
Pokud máte server Nextcloud hostovaný samostatně a na svém serveru Nextcloud jste nainstalovali aplikaci Kalendář, Úkoly nebo Kontakty, můžete svůj server Nextcloud DAV přidat do Evolution, aby bylo možné je synchronizovat. Jednoduše přidejte další účet sbírky v Evolution zadejte své uživatelské jméno Nextcloud a adresu CalDAV/CardDAV, vyberte Vyhledat server CalDAV/CardDAV , zrušte zaškrtnutí všech ostatních možností. Poté zadejte své heslo Nextcloud. Adresa Nextcloud CalDAV/CardDAV by měla být https://nextcloud.yourdomain.com/remote.php/dav
.
Použití aplikace iOS EteSync
Chcete-li synchronizovat svůj kalendář, kontakty a úkoly na iOS, musíte si nejprve v iOS nastavit účet CalDAV/CardDAV. Přejděte do Nastavení aplikace -> Kalendář -> Účty -> Přidat účet -> Jiné , a přidejte účet CalDAV a CardDAV. CalDAV se používá k synchronizaci kalendářů a CardDAV se používá k synchronizaci kontaktů na vašich zařízeních.
Pokud máte vlastní server Nextcloud, můžete použít svůj účet Nextcloud CalDAV/CardDAV. Pokud žádný nemáte, jednoduše použijte falešný účet.
Dále nainstalujte aplikaci EteSync z obchodu s aplikacemi. Poté přidejte svůj účet EteSync.
Po přihlášení ke svému účtu EteSync přejděte do nastavení nabídce v aplikaci EteSync. V části Pokročilé vyberte svůj účet CardDAV pro Synchronizaci kontaktů a vyberte svůj účet CalDAV pro Synchronizaci kalendářů a připomenutí .