本教程將向您展示如何安裝 同步 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
如您所見,它處於活動狀態並正在運行。
暗示: 根據 聽 如果上述命令沒有立即退出,則重新獲得對終端的控制權。
如果它沒有運行,您可以手動啟動它。
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;
第 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
第 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
保存並關閉文件。現在您可以啟動並啟用 etebase
系統服務。
sudo systemctl start etebase sudo systemctl enable etebase
檢查狀態。
systemctl status 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 期間服務器提供的證書。
現在將自動獲取並安裝證書。
第 7 步:創建用戶帳戶
創建超級管理員用戶。
./manage.py createsuperuser
然後走 etebase.example.com/admin
然後登錄管理控制台。然後,您可以創建單獨的用戶帳戶來同步日曆、聯繫人、任務和便箋。 請注意,Etebase 使用零知識證明進行身份驗證,因此您無需在 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 應用程序。點擊 新品到貨 單擊工具欄上的按鈕以添加新按鈕 應收賬款..
然後輸入您的 EteSync 用戶名和服務器地址。請注意,您需要添加 https://
作為服務器地址前綴。選擇 查找 EteSync 帳戶 取消選中所有其他選項。然後點擊 調查 按鈕。
系統將提示您輸入密碼以繼續。這是真正設置密碼的時候了,所以點擊 輸入密碼 鏈接並設置密碼。
輸入密碼後,單擊“重試”按鈕查找建議。點擊 下一個 單擊按鈕繼續。
與 NextCloud 同步
如果您有一個自託管的 Nextcloud 服務器,並且您的日曆、任務或聯繫人應用程序安裝在 Nextcloud 服務器上,您可以將 Nextcloud DAV 服務器添加到 Evolution 以進行同步。只需添加另一個 應收賬款 在 Evolution 中,輸入您的 Nextcloud 用戶名和 CalDAV / CardDAV 地址, 查找 CalDAV / CardDAV 服務器, 取消所有其他選項。然後輸入您的 Nextcloud 密碼。 Nextcloud CalDAV / CardDAV 地址是 https://nextcloud.yourdomain.com/remote.php/dav
..
使用 iOS EteSync 應用程序
要在 iOS 上同步日曆、聯繫人和任務,您必須首先在 iOS 上設置 CalDAV / CardDAV 帳戶。去 環境 應用-> 日曆 -> 帳戶 -> 添加帳戶 -> 其他, 添加 CalDAV 和 CardDAV 帳戶。 CalDAV 用於同步日曆,CardDAV 用於同步設備上的聯繫人。
如果您有一個自託管的 Nextcloud 服務器,您可以使用您的 Nextcloud CalDAV / CardDAV 帳戶。如果您沒有,請使用假帳戶。
然後從應用商店安裝 EteSync 應用。然後添加一個 EteSync 帳戶。
登錄您的 EteSync 帳戶後, 環境 EteSync 應用程序菜單。裡面 高度 在該部分中,選擇您的 CardDAV 帳戶 聯繫人同步 選擇一個 CalDAV 帳戶 同步日曆和提醒..
包起來
希望本文能幫助您在 Ubuntu 上設置自己的 EteSync 服務器。與往常一樣,如果您覺得本文有用,請訂閱我們的免費新聞通訊以獲取更多提示和技巧。