Ubuntu 20.04 安装 EteSync 服务器

EteSync 是一个免费、开源和端到端的工具,用于同步我们的联系人、日历、任务和笔记。 它可以轻松地与我们现有的应用程序集成。 我们只需要一个密码即可登录和加密。 EteSync 能够与其他用户共享数据以及在多个设备之间进行同步。 它还为 Mozilla Thunderbird 提供了一个插件,并为 Web、桌面、Android 和 iOS 提供了一个客户端。

在这篇文章中,我们将向我们展示 Ubuntu 20.04 服务器上安装 EteSync。

先决条件

  • 云平台上的全新 Ubuntu 20.04 服务器
  • 指向我们的服务器的有效域名
  • 在我们的服务器上配置的 root 密码

第 1 步 – 创建 云服务器

首先,登录到我们的 云服务器。 创建一个新服务器,选择 Ubuntu 20.04 作为至少 2GB RAM 的操作系统。 通过 SSH 连接到我们的云服务器并使用页面顶部突出显示的凭据登录。

登录到 Ubuntu 20.04 服务器后,运行以下命令以使用最新的可用软件包更新基本系统。

apt-get update -y

第 2 步 – 安装和配置 MariaDB 数据库

EteSync 使用 MariaDB 作为数据库后端,因此必须在我们的服务器上安装最新版本的 MariaDB。

首先,使用以下命令安装所需的依赖项:

apt-get install software-properties-common curl git gnupg2 -y

接下来,使用以下命令下载并添加 GPG 密钥和存储库:

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

接下来,使用以下命令安装最新版本的 MariaDB 服务器:

apt-get install mariadb-server -y

接下来,连接到 MariaDB 并创建一个数据库和用户:

mysql

连接后,使用以下命令创建数据库和用户:

create database etebase;
create user etebase@localhost identified by 'password';

接下来,使用以下命令授予 etebase 数据库的所有权限:

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

接下来,使用以下命令刷新权限并退出 MariaDB:

flush privileges;
exit;

第 3 步 – 安装 EteSync

首先,我们需要将所有 Python 依赖项安装到我们的服务器。 我们可以使用以下命令安装所有这些:

apt-get install python3-virtualenv python3-pip gcc build-essential libmysqlclient-dev -y

安装所有依赖项后,使用以下命令下载最新版本的 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 = etebase.example.com
;engine = django.db.backends.sqlite3
;name = db.sqlite3
engine = django.db.backends.mysql
name = etebase
user = etebase
password = password
host = 127.0.0.1
port = 3306

保存并关闭文件,然后使用以下命令安装 Django Web 套接字服务器和 MariaDB 客户端:

pip3 install daphne mysqlclient aioredis

接下来,使用以下命令创建 Django 的静态文件:

./manage.py collectstatic

接下来,使用以下命令初始化应用程序:

./manage.py migrate

接下来,使用以下命令启动 EteSync 服务器:

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

我们应该得到以下输出:

2021-03-13 04:30:04,102 INFO     Starting server at tcp:port=8001:interface=0.0.0.0
2021-03-13 04:30:04,103 INFO     HTTP/2 support not enabled (install the http2 and tls Twisted extras)
2021-03-13 04:30:04,103 INFO     Configuring endpoint tcp:port=8001:interface=0.0.0.0
2021-03-13 04:30:04,104 INFO     Listening on TCP address 0.0.0.0:8001

按 CTRL+C 停止服务器。

第 4 步 – 为 EteSync 创建一个 Systemd 服务文件

接下来,我们需要为 EteSync 创建一个 systemd 服务文件。 我们可以使用以下命令创建它:

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

保存并关闭文件,然后使用以下命令重新加载 systemd 守护进程:

systemctl daemon-reload

接下来,启动 EteSync 服务并使用以下命令使其在系统重新启动时启动:

systemctl start etebase
systemctl enable etebase

接下来,使用以下命令验证 EteSync 服务的状态:

systemctl status etebase

我们应该得到以下输出:

● etebase.service - EteSync: End-to-End Encryption to Sync Calender, Contacts, Tasks and Notes.
     Loaded: loaded (/etc/systemd/system/etebase.service; disabled; vendor preset: enabled)
     Active: active (running) since Sat 2021-03-13 04:30:57 UTC; 6s ago
   Main PID: 13641 (daphne)
      Tasks: 1 (limit: 2353)
     Memory: 48.5M
     CGroup: /system.slice/etebase.service
             └─13641 /root/etebase/.venv/bin/python /root/etebase/.venv/bin/daphne -b 127.0.0.1 -p 8001 -u /tmp/etebase_server.sock etebase_se>

Mar 13 04:30:57 ubuntu2004 systemd[1]: Started EteSync: End-to-End Encryption to Sync Calender, Contacts, Tasks and Notes..
Mar 13 04:30:58 ubuntu2004 daphne[13641]: 2021-03-13 04:30:58,437 INFO     Starting server at tcp:port=8001:interface=127.0.0.1, unix:/tmp/ete>
Mar 13 04:30:58 ubuntu2004 daphne[13641]: 2021-03-13 04:30:58,438 INFO     HTTP/2 support not enabled (install the http2 and tls Twisted extra>
Mar 13 04:30:58 ubuntu2004 daphne[13641]: 2021-03-13 04:30:58,439 INFO     Configuring endpoint tcp:port=8001:interface=127.0.0.1
Mar 13 04:30:58 ubuntu2004 daphne[13641]: 2021-03-13 04:30:58,441 INFO     Listening on TCP address 127.0.0.1:8001
Mar 13 04:30:58 ubuntu2004 daphne[13641]: 2021-03-13 04:30:58,441 INFO     Configuring endpoint unix:/tmp/etebase_server.sock

第 5 步 – 为 EteSync 配置 Nginx

接下来,使用以下命令安装 Nginx:

apt-get install nginx -y

安装后,使用以下命令创建 Nginx 虚拟主机配置文件:

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

添加以下行:

upstream etebase {
    server unix:/tmp/etebase_server.sock;
}

server {
    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 /root/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 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;
    }
}

保存并关闭文件,然后重新启动 Nginx 服务以应用更改:

systemctl restart nginx

第 6 步 – 创建管理员用户

接下来,我们需要为 EteSync 创建一个管理用户。

首先,将目录更改为etebase,如果没有激活则激活虚拟环境:

cd etebase
source .venv/bin/activate

接下来,使用以下命令创建一个超级用户:

./manage.py createsuperuser

提供如下所示的所有信息:

Username: admin
Email address: admin@example.com
Password: 
Password (again): 
Superuser created successfully.

第 7 步 – 访问 EteSync

现在,打开我们的 Web 浏览器并使用 URL http://etebase.example.com/admin 访问我们的 EteSync Web 界面。 我们应该看到以下页面:

提供我们的用户名、密码,然后单击登录按钮。 我们应该在以下页面上看到 EteSync 仪表板:

恭喜! 我们已在 Ubuntu 20.04 服务器上成功安装和配置 EteSync。 我们现在可以使用来自 的 VPS 主机轻松同步我们的联系人、日历、任务和笔记!

© 版权声明
THE END
喜欢就支持一下吧
点赞5 分享
评论 抢沙发

请登录后发表评论