如何在 Ubuntu 20.04 LTS 上安装 EteSync 服务器

在本教程中,我们将向您展示如何在 Ubuntu 20.04 LTS 上安装 EteSync Server。 对于那些不知道的人,EteSync 是一种开源的端到端加密解决方案,用于同步您的日历、联系人、任务和笔记。 可以通过桌面、Web、Android 和 iOS 客户端访问它。

本文假设您至少具有 Linux 的基本知识,知道如何使用 shell,最重要的是,您将站点托管在自己的 VPS 上。 安装非常简单,假设您在 root 帐户中运行,否则您可能需要添加 ‘sudo‘ 获取 root 权限的命令。 我将向您展示在 Ubuntu 20.04 (Focal Fossa) 上逐步安装 EteSync 服务器。 您可以按照针对 Ubuntu 18.04、16.04 和任何其他基于 Debian 的发行版(如 Linux Mint)的相同说明进行操作。

在 Ubuntu 20.04 LTS Focal Fossa 上安装 EteSync 服务器

步骤 1. 首先,通过运行以下命令确保所有系统软件包都是最新的 apt 终端中的命令。

sudo apt update sudo apt upgrade sudo apt install python3-virtualenv python3-pip gcc build-essential libmysqlclient-dev

步骤 2. 安装 MariaDB。

运行以下命令以使用以下命令添加 GPG 密钥和 MariaDB 存储库:

apt-key adv --recv-keys --keyserver hkp://keyserver.ubuntu.com:80 0xF1656F24C74CD1D8 add-apt-repository 'deb [arch=amd64,arm64,ppc64el] https://mirror.lstn.net/mariadb/repo/10.5/ubuntu focal main'

接下来,将 MariaDB 安装到您的系统中:

sudo apt install mariadb-server

默认情况下,MariaDB 未加固。 您可以使用以下方法保护 MariaDB mysql_secure_installation 脚本。 您应该仔细阅读以下每个步骤,这些步骤将设置 root 密码、删除匿名用户、禁止远程 root 登录以及删除测试数据库和访问安全 MariaDB 的权限:

mysql_secure_installation

像这样配置它:

- Set root password? [Y/n] y - Remove anonymous users? [Y/n] y - Disallow root login remotely? [Y/n] y - Remove test database and access to it? [Y/n] y - Reload privilege tables now? [Y/n] y

接下来,我们需要登录到 MariaDB 控制台并为 EteSync 创建一个数据库。 运行以下命令:

mysql -u root -p

这将提示您输入密码,因此请输入您的 MariaDB 根密码并点击 Enter. 登录到数据库服务器后,您需要为 EteSync 安装创建一个数据库:

MariaDB [(none)]> create database etesyncdb; MariaDB [(none)]> create user [email protected] identified by 'your-stronge-passwd'; MariaDB [(none)]> grant all privileges on etesyncdb.* to [email protected]; MariaDB [(none)]> flush privileges; MariaDB [(none)]> exit;

步骤 3. 在 Ubuntu 20.04 上安装 EteSync 服务器。

现在我们从 GitHub 下载最新版本的 EteSync:

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

接下来,更改目录并创建一个 Python 虚拟:

cd etebase 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 = /mnt allowed_host1 = etesync.your-domain.com ;engine = django.db.backends.sqlite3 ;name = db.sqlite3 engine = django.db.backends.mysql name = etebase user = etebase password = your-strong-password host = 127.0.0.1 port = 3306

Save 和 close 该文件然后使用以下命令安装其他模块:

pip3 install daphne mysqlclient aioredis

接下来,使用以下命令生成静态文件并迁移数据库:

./manage.py collectstatic ./manage.py migrate

然后,使用以下命令启动 EteSync 服务器:

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

步骤 4. 为 EteSync 创建 Systemd 服务文件。

现在创建一个 systemd 使用以下命令为 EteSync 提供服务单元文件:

nano /etc/systemd/system/etebase.service

添加以下几行:

[Unit] Description=EteSync: End-to-End Encryption to Sync Calendar, Contacts, Tasks and Notes.  [Service] WorkingDirectory=/root/etebase/ ExecStart=/root/etebase/.venv/bin/daphne -b 127.0.0.1 -p 8001 -u /tmp/etebase_server.sock etebase_server.asgi:application User=root Group=root Restart=always RestartSec=5s  [Install] WantedBy=multi-user.target

Save 和 close 文件,然后重新加载 systemd 守护进程使用以下命令:

sudo systemctl daemon-reload sudo systemctl start etebase sudo systemctl enable etebase

步骤 5. 配置 Nginx。

现在我们使用以下命令安装 Nginx:

sudo apt install nginx

接下来,使用以下命令创建 Nginx 虚拟主机配置文件:

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

添加以下几行:

upstream etebase {     server unix:/tmp/etebase_server.sock; }  server {     listen 80;     server_name etesync.your-domain.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 64M;      location /static/ {         alias /root/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 of/f;         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;     } }

Save 和 close 文件,然后重新启动 Nginx 服务以应用配置更改:

sudo systemctl restart nginx

步骤 6. 创建用户帐户。

首先,我们将目录更改为 etebase 并在未激活的情况下激活虚拟环境:

cd etebase source .venv/bin/activate

然后,使用以下命令创建超级用户:

./manage.py createsuperuser

提供您的用户名、密码和电子邮件,如下所示:

Username: admin Email address: [email protected] Password:  Password (again):  Superuser created successfully.

步骤 7. 访问 EteSync 服务器 Web 界面。

成功安装后,打开您的网络浏览器并使用 URL 访问您的 EteSync 网络界面 https://etesync.your-domain.com/admin. 您应该会看到以下页面:

恭喜! 您已成功安装 EteSync。 感谢您使用本教程在 Ubuntu 20.04 LTS Focal Fossa 系统上安装 EteSync 服务器。 如需更多帮助或有用信息,我们建议您查看 EteSync 官方网站.