В данном руководстве я расскажу, как установить сервер EteSync на Ubuntu. EteSync представляет собой решение с открытым исходным кодом, обеспечивающее сквозное шифрование для синхронизации ваших календарей, контактов, задач и заметок.
Содержание статьи
- 1 Уникальные черты EteSync
- 2 Установите актуальную стабильную версию MariaDB Server на Ubuntu
- 3 Настройка базы данных и учетной записи пользователя для EteSync на сервере MariaDB
- 4 Настройка сервера EteSync 2.0 на операционной системе Ubuntu
- 5 Настройте запуск EteSync в качестве службы Systemd
- 6 Конфигурация обратного прокси
- 7 Поиск и устранение неисправностей
- 8 Активировать HTTPS
- 9 Регистрация пользователей
- 10 Установка модуля EteSync для Evolution на Ubuntu Desktop
- 11 Применение EteSync в Evolution
- 12 Синхранизировать с NextCloud
- 13 Применение iOS-приложения 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.
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;

Настройка сервера 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.
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.
Сертификат теперь необходимо получить и установить автоматически.
Регистрация пользователей
Сформируйте учетную запись администратора.
./manage. py createsuperuser
После этого зайдите на etebase. example.com/admin и выполните вход в администраторскую панель. Затем вы сможете создать отдельные учетные записи пользователей для синхронизации календарей, контактов, задач и заметок. Учтите, что для пользователей в консоли администратора EteSync не требуется задавать пароли, поскольку Etebase применяет метод нулевого знания для аутентификации.

Теперь необходимо произвести настройку клиентов для работы с 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. Нажмите на кнопку «Создать» в панели инструментов и добавьте новую учетную запись для коллекции.

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

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

Синхранизировать с 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. В случае отсутствия такой учетной записи, вы можете создать фиктивную.

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

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

