Установка EteSync · 9 min read · Sep 30, 2025
Как установить сервер EteSync на Ubuntu 20.04

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 etesync@localhost identified by 'securepassword';Затем предоставьте все привилегии базе данных EteSync с помощью следующей команды:
MariaDB [(none)]> grant all privileges on etesync.* to etesync@localhost;Затем сбросьте привилегии и выйдите из 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: [email protected]
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Добавьте следующие строки:
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
Сохраните и закройте файл, затем активируйте виртуальный хост 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 с помощью SSL Let’s Encrypt
Сначала вам нужно будет установить клиент Certbot Let’s Encrypt для загрузки и установки SSL-сертификата для вашего домена.
Вы можете установить его с помощью следующей команды:
apt-get install python3-certbot-apache -yПосле установки вы можете выполнить следующую команду, чтобы установить сертификат Let’s 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): [email protected]
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
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 с SSL Let’s Encrypt. Теперь вы можете легко синхронизировать свой календарь и контакты с EteSync.
Get new posts in your inbox
No spam. Unsubscribe anytime.