Инструкция по установке сервера EteSync 2.0 (Etebase) на операционной системе Ubuntu

В данном руководстве я расскажу, как установить сервер EteSync на Ubuntu. EteSync представляет собой решение с открытым исходным кодом, обеспечивающее сквозное шифрование для синхронизации ваших календарей, контактов, задач и заметок.

Уникальные черты EteSync

Актуальная версия — EteSync 2.0, которая содержит в себе

  • Конечное шифрование.
  • Отдельный пароль для шифрования не нужен. Вам нужен всего один пароль, который служит и для шифрования, и для авторизации.
  • Метод аутентификации на сервере с использованием доказательства с нулевым знанием, который обеспечивает защиту, позволяя вашему паролю не покидать устройство.
  • Мгновенное обновление данных между всеми вашими устройствами.
  • Способность обмениваться информацией с другими участниками.
  • Клиенты доступны для настольных ПК (DAV bridge), а также для веб-версии, Android и iOS.
  • Интеграция с рабочими окружениями GNOME и KDE (бэкэнд EteSync для Evolution и Akonadi).
  • Расширение для Mozilla Thunderbird.
  • Переход к новому протоколу Etebase.

Скоро EteSync внедрит возможность безопасного обмена данными о местоположении. EteSync предлагает услуги хостинга на etesync.com. В этом руководстве я объясню, как развернуть свой экземпляр на сервере Ubuntu и как использовать клиентское ПО на различных платформах.

Установите актуальную стабильную версию MariaDB Server на Ubuntu

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

Рекомендуется установить последнюю стабильную версию MariaDB, которая равна 10.5, поскольку использование EteSync с MariaDB 10.3 может привести к различным проблемам. Для установки актуальной версии выполните указанные ниже команды, чтобы добавить репозиторий 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] http://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

Он проявляет активность и трудится.

systemctl status mariadb

Совет: нажмите Q, чтобы вернуть управление терминалом, если указанная команда не завершилась сразу.

Если он не активирован, вы можете инициировать его вручную, используя:

sudo systemctl start mariadb

Для активации автозапуска при старте системы выполните следующее.

sudo systemctl enable mariadb

Настройка базы данных и учетной записи пользователя для EteSync на сервере MariaDB

Подключитесь к серверу баз данных MariaDB, воспользовавшись следующей командой. Поскольку MariaDB теперь применяет плагин unix_socket для аутентификации пользователей, вводить пароль root MariaDB не требуется. Достаточно просто добавить sudo перед командой mysql.

Читайте также:  Вывести поток ввода программы на экран в Linux

sudo mysql

После этого создайте базу данных для EteSync. В данном руководстве база данных называется etebase, но вы можете выбрать любое другое имя по своему усмотрению.

create database etebase;

Создайте учетную запись пользователя в базе данных. Вы можете выбрать любое имя для этого пользователя. Замените your-password на пароль, который вам подходит.

create user etebase@localhost был идентифицирован по 'your-password';

Выдайте этому пользователю полные права на базу данных etebase.

grant all privileges on etebase etebase@localhost;

Отмените привилегии и покиньте систему.

flush privileges; exit;

Настройка Etebase с использованием MariaDB на Ubuntu.

Настройка сервера EteSync 2.0 на операционной системе Ubuntu

Установите инструмент для создания виртуальных окружений Python3 и несколько средств для компиляции пакетов.

sudo apt install python3-virtualenv python3-pip gcc build-essential

Откройте свою основную папку.

Скопируйте репозиторий EteSync с GitHub.

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

Откройте только что созданную папку.

cd etebase

Сформируйте виртуальное окружение для Python 3.

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 в MariaDB, созданной на первом шаге. Естественно, нужно указать свой пароль для пользователя etebase.

engine = django. db. backends. mysql name = etebase user = etebase password = your-password host = 127.0.0.1 port = 3306

Закройте и сохраните файл. Поскольку сервер Etebase является приложением на базе Django, для его запуска можно воспользоваться Daphne — сервером HTTP/WebSocket для Django Channels. Установить Daphne можно командой:

pip3 install daphne

Так как мы используем MySQL/MariaDB в качестве базы данных, необходимо установить модуль mysqlclient.

sudo apt install libmysqlclient-dev pip3 install mysqlclient

Для использования кэша Redis необходимо установить модуль aioredis.

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

Настройте запуск EteSync в качестве службы Systemd

Для ручного запуска EteSync можно воспользоваться командой daphne — b 0.0.0.0 — p 8001 etebase_server. asgi

С помощью следующей команды создайте файл юнита systemd для EteSync.

sudo nano /etc/systemd/system/etebase.service

Добавьте указанные строки в файл, заменив username на ваше фактическое имя пользователя.

[Unit] Description=EteSync: Сквозное шифрование для синхронизации календаря, контактов, задач и заметок. [Service] WorkingDirectory=/home/username/etebase/ ExecStart=/дом/username/etebase/.venv/bin/daphne - b 127.0.0.1 - p 8001 - u /tmp/etebase_server. sock etebase_server. asgi:приложение Пользователь=username Group=username Restart=always RestartSec=5s [Install] WantedBy=multi-user. target

Сохраните файл и закройте его. Теперь можно запустить и активировать службу systemd etebase.

sudo systemctl

Конфигурация обратного прокси

Теперь необходимо настроить обратный прокси для приложения Django, чтобы впоследствии получить доступ к EteSync по доменному имени и без труда включить HTTPS. В качестве решения мы можем воспользоваться Apache или Nginx.

Если вам больше нравится Apache, установите веб-сервер Apache с помощью следующей команды.

sudo apt install apache2

Для настройки Apache в роли обратного прокси необходимо активировать модули прокси и заголовков.

sudo a2enmod proxy proxy_http headers proxy_wstunnel

После этого необходимо создать файл виртуального хоста для EteSync.

Читайте также:  3 самых популярных инструмента для архивирования файлов и каталогов в Linux

sudo nano /etc/apache2/sites-available/etebase.conf

Вставьте указанные настройки в файл. Замените etebase. example.com на ваше настоящее доменное имя. Не забудьте создать DNS A-запись для этого поддомена. Если у вас еще нет доменного имени, рекомендую посетить сайт NameCheap для его приобретения. Цены приемлемые, и они предлагают бесплатную защиту конфиденциальности whois на весь срок использования.

ServerName etebase.example.com Ошибка 404 обрабатывается через документ /404.html. Логи ошибок сохраняются в $/etebase_error.log, а логи доступа — в $/etebase_access.log в комбинированном формате. Установлено сохранение оригинального заголовка хоста. Прокси передает запросы по адресу http://127.0.0.1:8001/, а также возвращает ответы с того же адреса. Путь /static сопоставляется с директорией /home/.username/etebase/static

Сохраните файл и закройте его. После этого активируйте этот виртуальный хост.

sudo a2ensite etebase.conf

sudo systemctl restart apache2

Теперь у вас есть возможность войти в веб-интерфейс EteSync по адресу etebase. example.com.

Если вы отдаёте предпочтение веб-серверу 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; кодировка utf-8; журнал доступа /var/log/nginx/etebase. access; журнал ошибок /var/log/nginx/etebase. error; # максимальный размер загружаемого файла client_max_body_size 75M; расположение /static/< alias /home/username/etebase/static/; >местоположение /< proxy_pass http://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 можно получить по адресу etebase. example.com.

Поиск и устранение неисправностей

Если при попытке открыть веб-интерфейс EteSync возникает ошибка 400 (плохой запрос), проверьте, добавлено ли имя сервера etesync в список allowed_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

Активировать HTTPS

Для шифрования HTTP-трафика мы можем активировать HTTPS, установив бесплатный TLS-сертификат от Let’s Encrypt. Чтобы установить клиент Let’s Encrypt (certbot) на сервер Ubuntu, выполните следующую команду.

sudo apt install certbot

Если вы применяете Apache, необходимо дополнительно установить плагин Certbot для этой платформы.

sudo apt install python3-certbot-apache

После этого введите следующую команду для получения и установки сертификата TLS.

sudo certbot --apache --agree-tos --redirect --hsts --staple-ocsp --email -d etebase.example.com

Если вы работаете с Nginx, вам потребуется установить плагин Certbot, предназначенный для Nginx.

sudo apt install python3-certbot-nginx

После этого введите следующую команду для получения и установки сертификата TLS.

sudo certbot --nginx --agree-tos --redirect --hsts --staple-ocsp --email -d etebase.yourdomain.com

  • —apache: Применяйте плагин для Apache.
  • —nginx: Применяйте плагин nginx.
  • —подтвердите согласие с условиями обслуживания.
  • —перенаправление: Обязательно применить HTTPS с помощью редиректа 301.
  • —hsts: Внедряет заголовок Strict-Transport-Security в каждый HTTP-ответ. Обеспечивает обязательное использование TLS для данного домена. Защищает от атак, связанных с удалением SSL/TLS.
  • —staple-ocsp: Активирует OCSP Stapling. Актуальный ответ OCSP добавляется к сертификату, который сервер предоставляет в процессе TLS.
Читайте также:  Как установить Zend Framework на Ubuntu 16.04

Сертификат теперь необходимо получить и установить автоматически.

Регистрация пользователей

Сформируйте учетную запись администратора.

./manage. py createsuperuser

После этого зайдите на etebase. example.com/admin и выполните вход в администраторскую панель. Затем вы сможете создать отдельные учетные записи пользователей для синхронизации календарей, контактов, задач и заметок. Учтите, что для пользователей в консоли администратора EteSync не требуется задавать пароли, поскольку Etebase применяет метод нулевого знания для аутентификации.

Создание пользователей в Etesync

Теперь необходимо произвести настройку клиентов для работы с EteSync.

Установка модуля EteSync для Evolution на Ubuntu Desktop

Evolution — это стандартный инструмент для групповой работы в среде рабочего стола GNOME. Вы можете установить его на своей системе Ubuntu, воспользовавшись следующей командой:

sudo apt install evolution

Для интеграции EteSync с Evolution необходимо установить модуль EteSync для Evolution, следуя инструкциям, представленным ниже.

Скопируйте репозиторий 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

После этого вернитесь в предшествующий каталог.

Сделайте копию репозитория 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

Теперь откройте приложение Evolution на своем рабочем столе Ubuntu. Нажмите на кнопку «Создать» в панели инструментов и добавьте новую учетную запись для коллекции.

добавление новой учетной записи коллекции в Ubuntu

После этого введите ваше имя пользователя EteSync и адрес сервера. Учтите, что к адресу сервера необходимо добавить префикс https://. Выберите опцию Поиск учетной записи EteSync и уберите отметки с остальных вариантов. Затем нажмите кнопку Поиск.

Добавьте учетную запись etesync в Evolution на Ubuntu.

Вам будет предложено ввести пароль для дальнейших действий. На самом деле, это момент для создания нового пароля, поэтому кликните на ссылку «Введите пароль» и установите свой пароль. После ввода пароля нажмите на кнопку «Попробовать снова», и система должна найти одного кандидата. Затем нажмите на кнопку «Далее», чтобы продолжить.

учётная запись коллекции etesync на ubuntu

Синхранизировать с NextCloud

Если вы используете самоуправляемый сервер Nextcloud и установили на нем приложения для работы с Календарем, Задачами или Контактами, вы можете настроить синхронизацию через Evolution, добавив сервер DAV Nextcloud. Для этого создайте новую учетную запись коллекции в Evolution, укажите свои учетные данные Nextcloud и ссылку на CalDAV/CardDAV. Выберите вариант поиска сервера CalDAV/CardDAV и снимите флажки с остальных опций. Затем введите свой пароль от Nextcloud. Адрес CalDAV/CardDAV для вашего сервера будет следующим: https://nextcloud.yourdomain.com/remote.php/dav.

Применение iOS-приложения EteSync

Чтобы синхронизировать ваш календарь, контакты и задачи на iOS, сначала необходимо настроить учетную запись CalDAV/CardDAV в iOS. Перейдите в приложение Настройки -> Календарь -> Учетные записи -> Добавить учетную запись ->Выберите «Другое» и добавьте учетную запись CalDAV для синхронизации календарей и CardDAV для синхронизации контактов на ваших устройствах.

Если у вас имеется собственный сервер Nextcloud, вы можете подключить свою учетную запись для работы с CalDAV или CardDAV. В случае отсутствия такой учетной записи, вы можете создать фиктивную.

Добавление учетной записи CalDAV или CardDAV на iOS.

Скачайте приложение EteSync из магазина приложений, после чего добавьте свою учетную запись. После того как вы войдете в свою учетную запись EteSync, откройте настройки приложения. В разделе «Дополнительно» выберите учетную запись CardDAV для синхронизации контактов и учетную запись CalDAV для синхронизации календарей и напоминаний.

iOS EteSync: синхронизация CalDAV и CardDAV

Надеюсь, эта статья была полезна для настройки вашего собственного сервера EteSync на Ubuntu.