Поиск по сайту:

Как установить сервер EteSync на Ubuntu 20.04


На этой странице

  1. Предпосылки
  2. Начало работы
  3. Установка сервера MariaDB
  4. Установка и настройка EteSync
  5. Создание файла модуля Systemd для EteSync
  6. Настройка Apache в качестве обратного прокси-сервера
  7. Доступ к консоли администратора EteSync
  8. Защитите EteSync с помощью Lets Encrypt SSL
  9. Заключение

EteSync — это решение с открытым исходным кодом для синхронизации ваших контактов, календарей и задач. Он размещается самостоятельно, обеспечивает сквозное шифрование и позволяет обмениваться данными с другими пользователями. Его можно интегрировать с рабочими столами GNOME и KDE. Доступ к нему можно получить через настольные, веб-клиенты, клиенты Android и iOS.

В этом руководстве я покажу вам, как установить EteSync с Apache на Ubuntu 20.04.

Предпосылки

  • Сервер под управлением Ubuntu 20.04.
  • Действительное доменное имя, указанное с IP-адресом вашего сервера.
  • На сервере настроен пароль root.

Начиная

Сначала обновите системные пакеты до обновленной версии, выполнив следующую команду:

apt-get update -y

Как только все пакеты будут обновлены, вы можете перейти к следующему шагу.

Установка сервера MariaDB

По умолчанию EteSync использует базу данных SQLite для хранения своей информации. Здесь мы установим и будем использовать MariaDB в качестве серверной части базы данных.

Сначала установите необходимые зависимости с помощью следующей команды:

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

Затем добавьте GPG-ключ и репозиторий MariaDB с помощью следующей команды:

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 и установите последнюю версию MariaDB с помощью следующей команды:

apt-get install mariadb-server -y

После установки сервера MariaDB войдите в оболочку MariaDB с помощью следующей команды:

mysql

После входа в систему создайте базу данных и пользователя для EteSync с помощью следующей команды:

MariaDB [(none)]> create database etesync;
MariaDB [(none)]> create user identified by 'securepassword';

Затем предоставьте все привилегии базе данных EteSync с помощью следующей команды:

MariaDB [(none)]> grant all privileges on etesync.* to ;

Затем сбросьте привилегии и выйдите из MariaDB с помощью следующей команды:

MariaDB [(none)]> flush privileges;
MariaDB [(none)]> exit;

Как только вы закончите, вы можете перейти к следующему шагу.

Установка и настройка EteSync

Во-первых, вам нужно будет установить некоторые зависимости Python, необходимые для EteSync. Вы можете установить их все с помощью следующей команды:

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

После установки всех зависимостей загрузите последнюю версию EteSync с помощью следующей команды:

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

После завершения загрузки измените каталог на etesync и создайте виртуальную среду Python с помощью следующей команды:

cd etesync
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 = /opt
allowed_host1 = etesync.example.com

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

engine = django.db.backends.mysql
name = etesync
user = etesync
password = securepassword
host = 127.0.0.1
port = 3306

Сохраните и закройте файл, затем установите другие модули с помощью следующей команды:

pip3 install daphne
pip3 install mysqlclient
pip3 install aioredis

Затем создайте статические файлы и перенесите базу данных с помощью следующей команды:

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

Наконец, запустите сервер EteSync с помощью следующей команды:

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

Если все в порядке, вы должны получить следующий вывод:

2021-07-09 05:42:28,510 INFO     Starting server at tcp:port=8001:interface=0.0.0.0
2021-07-09 05:42:28,510 INFO     HTTP/2 support not enabled (install the http2 and tls Twisted extras)
2021-07-09 05:42:28,511 INFO     Configuring endpoint tcp:port=8001:interface=0.0.0.0
2021-07-09 05:42:28,512 INFO     Listening on TCP address 0.0.0.0:8001

Нажмите CTRL + C, чтобы остановить сервер.

Затем создайте пользователя с правами администратора с помощью следующей команды:

./manage.py createsuperuser

Укажите свое имя пользователя, пароль и адрес электронной почты, как показано ниже:

Username: etesync
Email address: 
Password: 
Password (again): 
Superuser created successfully.

Затем деактивируйте из виртуальной среды Python с помощью следующей команды:

deactivate

Создайте файл модуля Systemd для EteSync

Далее вам нужно будет создать юнит-файл systemd для управления EteSync. Вы можете создать его с помощью следующей команды:

nano /etc/systemd/system/etesync.service

Добавьте следующие строки:

[Unit]
Description=EteSync: End-to-End Encryption to Sync Calender, Contacts, Tasks and Notes.

[Service]
WorkingDirectory=/root/etesync
ExecStart=/root/etesync/.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 etesync
systemctl enable etesync

Чтобы проверить статус службы EteSync, выполните следующую команду:

systemctl status etesync

Вы получите следующий вывод:

? etesync.service - EteSync: End-to-End Encryption to Sync Calender, Contacts, Tasks and Notes.
     Loaded: loaded (/etc/systemd/system/etesync.service; disabled; vendor preset: enabled)
     Active: active (running) since Fri 2021-07-09 05:45:45 UTC; 5s ago
   Main PID: 16213 (daphne)
      Tasks: 1 (limit: 2353)
     Memory: 48.7M
     CGroup: /system.slice/etesync.service
             ??16213 /root/etesync/.venv/bin/python /root/etesync/.venv/bin/daphne -b 127.0.0.1 -p 8001 -u /tmp/etebase_server.sock etebase_se>

Jul 09 05:45:45 node1 systemd[1]: Started EteSync: End-to-End Encryption to Sync Calender, Contacts, Tasks and Notes..
Jul 09 05:45:46 node1 daphne[16213]: 2021-07-09 05:45:46,993 INFO     Starting server at tcp:port=8001:interface=127.0.0.1, unix:/tmp/etebase_>
Jul 09 05:45:46 node1 daphne[16213]: 2021-07-09 05:45:46,995 INFO     HTTP/2 support not enabled (install the http2 and tls Twisted extras)
Jul 09 05:45:46 node1 daphne[16213]: 2021-07-09 05:45:46,995 INFO     Configuring endpoint tcp:port=8001:interface=127.0.0.1
Jul 09 05:45:46 node1 daphne[16213]: 2021-07-09 05:45:46,997 INFO     Listening on TCP address 127.0.0.1:8001
Jul 09 05:45:46 node1 daphne[16213]: 2021-07-09 05:45:46,998 INFO     Configuring endpoint unix:/tmp/etebase_server.sock

На этом этапе EteSync запущен и прослушивает порт 8001. Теперь вы можете перейти к следующему шагу.

Настройка Apache в качестве обратного прокси

Также рекомендуется установить и использовать Apache в качестве обратного прокси-сервера для доступа к EteSync. Сначала установите сервер Apache с помощью следующей команды:

apt-get install apache2 -y

После установки сервера Apache включите все прокси-модули с помощью следующей команды:

a2enmod proxy proxy_http headers proxy_wstunnel

Затем создайте новый файл конфигурации виртуального хоста Apache:

nano /etc/apache2/sites-available/etesync.conf

Добавьте следующие строки:

<VirtualHost *:80>
   ServerName etesync.example.com
   ErrorDocument 404 /404.html

   ErrorLog ${APACHE_LOG_DIR}/etebase_error.log
   CustomLog ${APACHE_LOG_DIR}/etebase_access.log combined

   ProxyPreserveHost On
   ProxyPass / http://127.0.0.1:8001/
   ProxyPassReverse / http://127.0.0.1:8001/
   Alias /static /etesync/static

</VirtualHost>

Сохраните и закройте файл, затем активируйте виртуальный хост Apache с помощью следующей команды:

a2ensite etesync.conf

Затем перезапустите Apache, чтобы обновить изменения:

systemctl restart apache2

Теперь вы можете проверить статус Apache с помощью следующей команды:

systemctl status apache2

Вы должны получить следующий результат:

? apache2.service - The Apache HTTP Server
     Loaded: loaded (/lib/systemd/system/apache2.service; enabled; vendor preset: enabled)
     Active: active (running) since Fri 2021-07-09 05:50:26 UTC; 5s ago
       Docs: https://httpd.apache.org/docs/2.4/
    Process: 17551 ExecStart=/usr/sbin/apachectl start (code=exited, status=0/SUCCESS)
   Main PID: 17567 (apache2)
      Tasks: 55 (limit: 2353)
     Memory: 5.3M
     CGroup: /system.slice/apache2.service
             ??17567 /usr/sbin/apache2 -k start
             ??17568 /usr/sbin/apache2 -k start
             ??17569 /usr/sbin/apache2 -k start

Jul 09 05:50:26 node1 systemd[1]: Starting The Apache HTTP Server...
Jul 09 05:50:26 node1 apachectl[17558]: AH00558: apache2: Could not reliably determine the server's fully qualified domain name, using 45.58.3>

Доступ к консоли администратора EteSync

Теперь откройте веб-браузер и войдите в интерфейс администрирования EteSync, используя URL-адрес http://etesync.example.com/admin/. Вы будете перенаправлены на следующую страницу:

Укажите имя пользователя и пароль администратора и нажмите кнопку «Войти». Вы должны увидеть следующую страницу:

Безопасный EteSync с Lets Encrypt SSL

Во-первых, вам нужно будет установить клиент Certbot Lets Encrypt, чтобы загрузить и установить сертификат SSL для вашего домена.

Вы можете установить его с помощью следующей команды:

apt-get install python3-certbot-apache -y

После установки вы можете запустить следующую команду, чтобы установить сертификат Lets Encrypt для вашего домена etesync.example.com.

certbot --apache -d etesync.example.com

Во время установки вам будет предложено указать свой адрес электронной почты и принять условия обслуживания, как показано ниже:

Saving debug log to /var/log/letsencrypt/letsencrypt.log
Plugins selected: Authenticator apache, Installer apache
Enter email address (used for urgent renewal and security notices) (Enter 'c' to
cancel): 

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Please read the Terms of Service at
https://letsencrypt.org/documents/LE-SA-v1.2-November-15-2017.pdf. You must
agree in order to register with the ACME server at
https://acme-v02.api.letsencrypt.org/directory
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
(A)gree/(C)ancel: A

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Would you be willing to share your email address with the Electronic Frontier
Foundation, a founding partner of the Let's Encrypt project and the non-profit
organization that develops Certbot? We'd like to send you email about our work
encrypting the web, EFF news, campaigns, and ways to support digital freedom.

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
(Y)es/(N)o: Y
Obtaining a new certificate
Performing the following challenges:
http-01 challenge for etesync.example.com
Enabled Apache rewrite module
Waiting for verification...
Cleaning up challenges
Created an SSL vhost at /etc/apache2/sites-available/etesync-le-ssl.conf
Deploying Certificate to VirtualHost /etc/apache2/sites-available/etesync-le-ssl.conf
Enabling available site: /etc/apache2/sites-available/etesync-le-ssl.conf

Please choose whether or not to redirect HTTP traffic to HTTPS, removing HTTP access.
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
1: No redirect - Make no further changes to the webserver configuration.
2: Redirect - Make all requests redirect to secure HTTPS access. Choose this for
new sites, or if you're confident your site works on HTTPS. You can undo this
change by editing your web server's configuration.
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Select the appropriate number [1-2] then [enter] (press 'c' to cancel): 2

Затем введите 2 и нажмите Enter, чтобы загрузить и установить бесплатный SSL-сертификат для вашего домена. После успешного завершения установки. Вы должны получить следующий результат:

Enabled Apache rewrite module
Redirecting vhost in /etc/apache2/sites-enabled/etesync.conf to ssl vhost in /etc/apache2/sites-available/
etesync-le-ssl.conf

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Congratulations! You have successfully enabled https://etesync.example.com

You should test your configuration at:
https://www.ssllabs.com/ssltest/analyze.html?d=etesync.example.com
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

Заключение

Поздравляем! вы успешно установили EteSync на сервер Ubuntu 20.04 с Lets Encrypt SSL. Теперь вы можете легко синхронизировать свой календарь и контактировать с EteSync.