本教程將向您展示如何安裝 同步 Ubuntu 上的服務器。 EteSync 是一個開源的端到端加密解決方案,用於同步日曆、聯繫人、任務和筆記。

EteSync 功能

最新版本是 EteSync 2.0

  • 端到端加密。
  • 不需要單獨的加密密碼。加密和登錄所需的只是密碼。
  • 驗證服務器的零知識證明可防止密碼離開設備。
  • 設備之間的即時同步。
  • 與其他用戶共享數據的能力
  • 該客戶端可用於桌面(DAV 橋)、Web、Android 和 iOS。
  • 與 GNOME 和 KDE 桌面集成(EteSync 後端用於 Evolution 和 Akonadi)。
  • Mozilla Thunderbird 附加組件。
  • 升級到新的 Tebase 協議。

在不久的將來,EteSync 還將增加對安全位置共享的支持。 EteSync 在 etesync.com 上提供託管服務。 了解如何在 Ubuntu 服務器上運行自託管實例並在不同平台上使用客戶端軟件。

第 1 步:在 Ubuntu 上安裝最新穩定版本的 MariaDB 服務器

默認情況下,EteSync 將用戶信息存儲在 SQLite 數據庫。如果你想使用 瑪麗亞數據庫請按照以下步驟操作。

在 MariaDB 10.3 上運行 EteSync 會導致問題,因此您應該使用 MariaDB 的最新穩定版本 10.5。要安裝最新的穩定版本,請運行以下命令將 MariaDB 存儲庫添加到 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] https://mirror.lstn.net/mariadb/repo/10.5/ubuntu focal main'

將存儲庫添加到 Ubuntu 18.04 focal 什麼時候 bionic 使用第三個命令。

然後更新包索引並安裝 MariaDB 服務器。

sudo apt update

sudo apt install mariadb-server

將現有 MariaDB 服務器升級到最新版本時,您可能會看到以下消息:推薦選擇 N 保留當前版本,然後查看需要更改的內容。

如果您對包依賴項有問題,可以通過運行以下命令來修復它們:

sudo apt --fix-broken install

MariaDB 服務器會在安裝完成後自動啟動。您可以通過以下方式檢查狀態。

systemctl status mariadb

如您所見,它處於活動狀態並正在運行。

systemctl 狀態 mariadb

暗示: 根據 如果上述命令沒有立即退出,則重新獲得對終端的控制權。

如果它沒有運行,您可以手動啟動它。

sudo systemctl start mariadb

在啟動時啟用自動啟動

sudo systemctl enable mariadb

第 2 步:在 MariaDB 數據庫服務器上創建 EteSync 數據庫和用戶

使用以下命令登錄 MariaDB 數據庫服務器: 因為 MariaDB 目前正在使用它 unix_socket 無需輸入 MariaDB 根密碼即可對用戶登錄進行身份驗證的插件。只需添加前綴 mysql 命令與 sudo..

sudo mysql

接下來,為 EteSync 創建一個數據庫。為本教程命名數據庫 etebase..你可以使用任何你喜歡的名字。

create database etebase;

創建數據庫用戶。同樣,您可以為該用戶使用您喜歡的任何名稱。交換 your-password 請使用您的首選密碼。

create user etebase@localhost identified by 'your-password';

授予此用戶所有權限 etebase 數據庫。

grant all privileges on etebase.* to etebase@localhost;

更新權限並退出。

flush privileges;

exit;

etebase mariadb ubuntu

第 3 步:在 Ubuntu 上安裝 EteSync 2.0 服務器

安裝 Python3 Virtual Environment Creator 和一些包構建工具。

sudo apt install python3-virtualenv python3-pip gcc build-essential

切換到您的主目錄。

cd

從 Github 克隆 EteSync 存儲庫。

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

切換到新創建的目錄。

cd etebase

創建 Python3 虛擬環境。

virtualenv -p python3 .venv

source .venv/bin/activate

pip install -r requirements.txt

複製示例配置文件。

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

編輯文件。

nano etebase-server.ini

找到下一行

;media_root = /path/to/media

取消註釋並更改值。

media_root = /home/username/etebase/media/

找到下一行,

allowed_host1 = example.com

使用如下子域 etebase.example.com..

allowed_host1 = etebase.example.com

默認情況下,EteSync 將用戶信息存儲在 SQLite 數據庫中。 如果您使用 MariaDB 數據庫服務器,請註釋掉以下兩行(在每行開頭添加分號):

engine = django.db.backends.sqlite3
name = db.sqlite3

然後將以下行添加到此文件的末尾:這將告訴 EteSync 如何訪問它。 etebase 在步驟 1 中創建的 MariaDB 數據庫。顯然你必須使用自己的密碼 etebase 用戶。

engine = django.db.backends.mysql
name = etebase
user = etebase
password = your-password
host = 127.0.0.1
port = 3306

保存並關閉文件。 Etebase 服務器是一個 Django 應用程序,它允許您使用 Daphne(Django Channels HTTP / WebSocket 服務器)運行 Etebase。 安裝達芙妮。

pip3 install daphne

我使用 MySQL / MariaDB 作為數據庫引擎,所以我需要安裝它 mysqlclient 模塊。

sudo apt install libmysqlclient-dev

pip3 install mysqlclient

安裝 aioredis 使用 Redis 緩存的模塊。

pip3 install aioredis

創建一個 Django 靜態文件。

./manage.py collectstatic

初始化應用程序。

./manage.py migrate

啟動 EteSync 2.0 (Etebase) 服務器。

daphne -b 0.0.0.0 -p 8001 etebase_server.asgi:application

daphne 啟動 etebase 服務器

第 4 步:將 EteSync 作為 Systemd 服務運行

您可以手動啟動 EteSync daphne -b 0.0.0.0 -p 8001 etebase_server.asgi:application但是,在後台將 EteSync 作為 systemd 服務運行會更方便。根據 Ctrl+C 停止當前的 EteSync 實例。

使用以下命令創建 EteSync systemd 服務單元文件:

sudo nano /etc/systemd/system/etebase.service

將以下行放入文件中。交換 username 請使用實際的用戶名。

[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

將 EteSync 作為 Systemd 服務運行

保存並關閉文件。現在您可以啟動並啟用 etebase 系統服務。

sudo systemctl start etebase

sudo systemctl enable etebase

檢查狀態。

systemctl status etebase

systemctl 狀態 etebase

如果 etebase 服務未激活(正在運行)。您可以通過運行以下命令來查看問題所在:

sudo journalctl -eu etebase

第 5 步:設置反向代理

接下來,您需要為您的 Django 應用設置反向代理,以便稍後使用您的域名訪問 EteSync,以便您可以輕鬆啟用 HTTPS。這可以通過 Apache 或 Nginx 完成。

阿帕奇

如果您使用 Apache,請使用以下命令安裝 Apache Web 服務器。

sudo apt install apache2

必須啟用 Apache 作為反向代理 proxy 帶模塊 header 模塊。

sudo a2enmod proxy proxy_http headers proxy_wstunnel

接下來,為 EteSync 創建一個虛擬主機文件。

sudo nano /etc/apache2/sites-available/etebase.conf

將以下配置放入文件中。交換 etebase.example.com 請使用實際域名。不要忘記為此子域創建 DNSA 記錄。如果您沒有真實域名,我們建議您訪問 NameCheap 進行購買。它很便宜,並且為您的餘生免費提供 whois 隱私保護。

<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 / https://127.0.0.1:8001/
   ProxyPassReverse / https://127.0.0.1:8001/
   Alias /static /home/username/etebase/static

</VirtualHost>

保存並關閉文件。然後啟用這個虛擬主機。

sudo a2ensite etebase.conf

重啟阿帕奇

sudo systemctl restart apache2

您現在可以使用您的域名訪問 EteSync Web 界面 etebase.example.com..

nginx

如果您需要 Nginx Web 服務器,請安裝 Nginx。

sudo apt install nginx

在 Nginx 中為 EteSync 創建一個虛擬主機文件。

sudo nano /etc/nginx/conf.d/etebase.conf

將以下行放入文件中。根據需要替換佔位符。您需要為您的子域創建 DNSA 記錄。

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 https://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;
    }
}

保存並關閉文件。接下來,測試您的 Nginx 配置。

sudo nginx -t

如果測試成功,請重新加載 Nginx 以使更改生效。

sudo systemctl reload nginx

您現在可以訪問 EteSync Web 界面 etebase.example.com..

故障排除

如果你看到 bad request (400) 嘗試訪問 EteSync Web 界面時出錯。 確保您添加了 etesync 服務器名稱。 allowd_hosts 它描述在 etebase-server.ini 文檔。然後重啟etebase(sudo systemctl restart etebase)。

你也可以 etebase-server.ini 文件,也就是改變

debug = false

到達

debug = true

然後重啟etebase。

sudo systemctl restart etebase

然後檢查 systemd 服務日誌。

sudo journalctl -eu etebase

第 6 步:啟用 HTTPS

要加密 HTTP 流量,請安裝 Let’s Encrypt 頒發的免費 TLS 證書並啟用 HTTPS。通過運行以下命令在您的 Ubuntu 服務器上安裝 Let’s Encrypt 客戶端 (certbot):

sudo apt install certbot

如果您使用 Apache,您還需要安裝 Certbot Apache 插件。

sudo apt install python3-certbot-apache

然後運行以下命令獲取並安裝 TLS 證書。

sudo certbot --apache --agree-tos --redirect --hsts --staple-ocsp --email [email protected] -d etebase.example.com

如果要使用 Nginx,還需要安裝 Certbot Nginx 插件。

sudo apt install python3-certbot-nginx

然後運行以下命令獲取並安裝 TLS 證書。

sudo certbot --nginx --agree-tos --redirect --hsts --staple-ocsp --email [email protected] -d etebase.yourdomain.com

在哪裡:

  • --apache: 使用 Apache 插入。
  • --nginx: 使用 nginx 插件。
  • --agree-tos: 我接受使用條款。
  • --redirect: 301 通過重定向強制 HTTPS。
  • --hsts:將 Strict-Transport-Security 標頭添加到所有 HTTP 響應。強制瀏覽器始終對域使用 TLS。 防止 SSL / TLS 剝離。
  • --staple-ocsp:啟用 OCSP 訂書釘。有效的 OCSP 響應被裝訂到 TLS 期間服務器提供的證書。

現在將自動獲取並安裝證書。

etebase 服務器 ubuntucertbot https

第 7 步:創建用戶帳戶

創建超級管理員用戶。

./manage.py createsuperuser

etebaseubuntu 創建超級用戶

然後走 etebase.example.com/admin 然後登錄管理控制台。然後,您可以創建單獨的用戶帳戶來同步日曆、聯繫人、任務和便箋。 請注意,Etebase 使用零知識證明進行身份驗證,因此您無需在 EteSync 管理控制台中創建用戶密碼。

etesync 創建用戶

接下來,您需要配置您的客戶端以使用 EteSync。

如何在您的 Ubuntu 桌面上安裝 Evolution EteSync 模塊

進化 GNOME 桌面環境的默認組件套件。您可以使用以下命令將其安裝在 Ubuntu 桌面上:

sudo apt install evolution

要將 EteSync 與 Evolution 一起使用,您需要按照以下步驟為 Evolution 安裝 EteSync 模塊。

克隆 libetebase 存儲庫。

sudo apt install git

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

切換到新創建的目錄。

cd libetebase/

安裝從源代碼構建包所需的包。

sudo apt install build-essential libssl-dev cargo

編譯源碼包。

make

安裝二進製文件。

sudo make install

然後回到上一個目錄。

cd ..

克隆 Evolution-EteSync 存儲庫。

git clone https://gitlab.gnome.org/GNOME/evolution-etesync

切換到新創建的目錄。

cd evolution-etesync/

安裝從源代碼構建包所需的包。

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

編譯並安裝包。

mkdir build
cd build
cmake -DCMAKE_INSTALL_PREFIX=/usr ..
make -j
sudo make -j install

將 EteSync 與 Evolution 結合使用

然後在您的 Ubuntu 桌面上啟動 Evolution 應用程序。點擊 新品到貨 單擊工具欄上的按鈕以添加新按鈕 應收賬款..

Evolution 添加了新的收藏帳戶 ubuntu

然後輸入您的 EteSync 用戶名和服務器地址。請注意,您需要添加 https:// 作為服務器地址前綴。選擇 查找 EteSync 帳戶 取消選中所有其他選項。然後點擊 調查 按鈕。

將 etesync 帳戶添加到 Evolutionubuntu

系統將提示您輸入密碼以繼續。這是真正設置密碼的時候了,所以點擊 輸入密碼 鏈接並設置密碼。

etesync 零知識證明 ubuntu

輸入密碼後,單擊“重試”按鈕查找建議。點擊 下一個 單擊按鈕繼續。

etesync 最喜歡的帳戶 ubuntu

與 NextCloud 同步

如果您有一個自託管的 Nextcloud 服務器,並且您的日曆、任務或聯繫人應用程序安裝在 Nextcloud 服務器上,您可以將 Nextcloud DAV 服務器添加到 Evolution 以進行同步。只需添加另一個 應收賬款 在 Evolution 中,輸入您的 Nextcloud 用戶名和 CalDAV / CardDAV 地址, 查找 CalDAV / CardDAV 服務器, 取消所有其他選項。然後輸入您的 Nextcloud 密碼。 Nextcloud CalDAV / CardDAV 地址是 https://nextcloud.yourdomain.com/remote.php/dav..

etesync nextcloud ubuntu

使用 iOS EteSync 應用程序

要在 iOS 上同步日曆、聯繫人和任務,您必須首先在 iOS 上設置 CalDAV / CardDAV 帳戶。去 環境 應用-> 日曆 -> 帳戶 -> 添加帳戶 -> 其他, 添加 CalDAV 和 CardDAV 帳戶。 CalDAV 用於同步日曆,CardDAV 用於同步設備上的聯繫人。

如果您有一個自託管的 Nextcloud 服務器,您可以使用您的 Nextcloud CalDAV / CardDAV 帳戶。如果您沒有,請使用假帳戶。

ios添加caldavcarddav賬號

然後從應用商店安裝 EteSync 應用。然後添加一個 EteSync 帳戶。

etesyncios 客戶端

登錄您的 EteSync 帳戶後, 環境 EteSync 應用程序菜單。裡面 高度 在該部分中,選擇您的 CardDAV 帳戶 聯繫人同步 選擇一個 CalDAV 帳戶 同步日曆和提醒..

ios etesync caldav carddav 同步

包起來

希望本文能幫助您在 Ubuntu 上設置自己的 EteSync 服務器。與往常一樣,如果您覺得本文有用,請訂閱我們的免費新聞通訊以獲取更多提示和技巧。