本教程將向您展示如何安裝 同步 Ubuntu 上的服務器。 EteSync 是用於同步日曆、聯繫人、任務和筆記的開源端到端加密解決方案。
EteSync 功能
最新版本是EteSync 2.0,
- 端到端加密。
- 不需要單獨的加密密碼。加密和登錄只需要密碼。
- 針對服務器進行身份驗證的零知識證明可確保您的密碼永遠不會離開您的設備。
- 設備之間的即時同步。
- 與他人共享數據的能力
- 客戶端可用於桌面(DAV 橋)、Web、Android 和 iOS。
- 與 GNOME 和 KDE 桌面(Evolution 和 Akonadi 的 EteSync 後端)集成。
- Mozilla Thunderbird 的附加組件。
- 升級到新的 Etebase 協議。
在不久的將來,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 虛擬環境創建器和一些包構建工具。
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 Server 是一個 Django 應用程序,您可以使用 Daphne (Django Channels HTTP/WebSocket Server) 來運行 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 作為系統服務運行
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
請使用您的實際域名。不要忘記為此子域創建 DNS A 記錄。如果您沒有真實域名,我們建議您訪問 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 網絡服務器,請安裝 Nginx。
sudo apt install nginx
在 Nginx 中為 EteSync 創建一個虛擬主機文件。
sudo nano /etc/nginx/conf.d/etebase.conf
將以下行添加到文件中。您需要根據需要替換佔位符並為您的子域創建 DNS A 記錄。
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
:強制 HTTPS 超過 301 重定向。--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 服務器。與往常一樣,如果您發現本文對您有幫助,請註冊我們的免費時事通訊以獲取提示和技巧。