Instalação EteSync · 10 min read · Sep 30, 2025
Como instalar o servidor EteSync no Ubuntu 20.04

EteSync é uma solução de código aberto para sincronizar seus contatos, calendários e tarefas. É auto-hospedado, fornece criptografia de ponta a ponta e permite que você compartilhe dados com outros usuários. Pode ser integrado com as áreas de trabalho GNOME e KDE. Pode ser acessado através de clientes de desktop, web, Android e iOS.
Neste tutorial, vou mostrar como instalar o EteSync com Apache no Ubuntu 20.04.
Pré-requisitos
- Um servidor rodando Ubuntu 20.04.
- Um nome de domínio válido apontado para o IP do seu servidor.
- Uma senha de root configurada no servidor.
Começando
Primeiro, atualize os pacotes do sistema para a versão mais recente executando o seguinte comando:
apt-get update -yUma vez que todos os pacotes estejam atualizados, você pode prosseguir para o próximo passo.
Instalando o Servidor MariaDB
Por padrão, o EteSync usa o banco de dados SQLite para armazenar suas informações. Aqui, vamos instalar e usar o MariaDB como um backend de banco de dados.
Primeiro, instale as dependências necessárias usando o seguinte comando:
apt-get install software-properties-common gnupg2 -yEm seguida, adicione a chave GPG e o repositório do MariaDB usando o seguinte comando:
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'Em seguida, atualize o repositório do MariaDB e instale a versão mais recente do MariaDB com o seguinte comando:
apt-get install mariadb-server -yApós instalar o servidor MariaDB, faça login no shell do MariaDB com o seguinte comando:
mysqlUma vez logado, crie um banco de dados e um usuário para o EteSync com o seguinte comando:
MariaDB [(none)]> create database etesync;
MariaDB [(none)]> create user etesync@localhost identified by 'securepassword';Em seguida, conceda todas as permissões ao banco de dados EteSync com o seguinte comando:
MariaDB [(none)]> grant all privileges on etesync.* to etesync@localhost;Em seguida, limpe as permissões e saia do MariaDB com o seguinte comando:
MariaDB [(none)]> flush privileges;
MariaDB [(none)]> exit;Uma vez que você tenha terminado, pode prosseguir para o próximo passo.
Instalando e Configurando o EteSync
Primeiro, você precisará instalar algumas dependências do Python necessárias para o EteSync. Você pode instalar todas elas com o seguinte comando:
apt-get install python3-virtualenv python3-pip gcc libmysqlclient-dev build-essential git -yApós instalar todas as dependências, baixe a versão mais recente do EteSync usando o seguinte comando:
git clone https://github.com/etesync/server.git etesyncUma vez que o download esteja completo, mude o diretório para etesync e crie um ambiente virtual Python com o seguinte comando:
cd etesync
virtualenv -p python3 .venvEm seguida, ative o ambiente virtual com o seguinte comando:
source .venv/bin/activateEm seguida, instale todos os requisitos usando o seguinte comando:
pip install -r requirements.txtEm seguida, copie o arquivo de configuração de exemplo:
cp etebase-server.ini.example etebase-server.iniEm seguida, edite o arquivo de configuração usando o comando abaixo:
nano etebase-server.iniAdicione ou modifique as seguintes linhas de acordo com sua configuração:
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 = 3306Salve e feche o arquivo, então instale outros módulos usando o seguinte comando:
pip3 install daphne
pip3 install mysqlclient
pip3 install aioredisEm seguida, gere os arquivos estáticos e migre o banco de dados com o seguinte comando:
./manage.py collectstatic
./manage.py migrateFinalmente, inicie o servidor EteSync com o seguinte comando:
daphne -b 0.0.0.0 -p 8001 etebase_server.asgi:applicationSe tudo estiver correto, você deve obter a seguinte saída:
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:8001Pressione CTRL + C para parar o servidor.
Em seguida, crie um usuário administrativo usando o seguinte comando:
./manage.py createsuperuserForneça seu nome de usuário, senha e e-mail conforme mostrado abaixo:
Username: etesync
Email address: [email protected]
Password:
Password (again):
Superuser created successfully.Em seguida, desative o ambiente virtual Python com o seguinte comando:
deactivateCriar um Arquivo de Unidade Systemd para EteSync
Em seguida, você precisará criar um arquivo de unidade systemd para gerenciar o EteSync. Você pode criá-lo com o seguinte comando:
nano /etc/systemd/system/etesync.serviceAdicione as seguintes linhas:
[Unit]
Description=EteSync: Criptografia de Ponta a Ponta para Sincronizar Calendário, Contatos, Tarefas e Notas.
[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.targetSalve e feche o arquivo, então recarregue o daemon systemd para aplicar as alterações de configuração:
systemctl daemon-reloadEm seguida, inicie e habilite o serviço EteSync com o seguinte comando:
systemctl start etesync
systemctl enable etesyncPara verificar o status do serviço EteSync, execute o seguinte comando:
systemctl status etesyncVocê deve obter a seguinte saída:
? etesync.service - EteSync: Criptografia de Ponta a Ponta para Sincronizar Calendário, Contatos, Tarefas e Notas.
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: Criptografia de Ponta a Ponta para Sincronizar Calendário, Contatos, Tarefas e Notas..
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.sockNeste ponto, o EteSync está iniciado e ouvindo na porta 8001. Você pode agora prosseguir para o próximo passo.
Configurando o Apache como um Proxy Reverso
É também aconselhável instalar e usar o Apache como um proxy reverso para acessar o EteSync. Primeiro, instale o servidor Apache com o seguinte comando:
apt-get install apache2 -yApós instalar o servidor Apache, habilite todos os módulos de proxy com o seguinte comando:
a2enmod proxy proxy_http headers proxy_wstunnelEm seguida, crie um novo arquivo de configuração de host virtual do Apache:
nano /etc/apache2/sites-available/etesync.confAdicione as seguintes linhas:
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
Salve e feche o arquivo, então ative o host virtual do Apache com o seguinte comando:
a2ensite etesync.confEm seguida, reinicie o Apache para atualizar as alterações:
systemctl restart apache2Agora você pode verificar o status do Apache usando o seguinte comando:
systemctl status apache2Você deve obter a seguinte saída:
? apache2.service - O Servidor HTTP Apache
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 O Servidor HTTP Apache...
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>Acessar o Console de Administração do EteSync
Agora, abra seu navegador web e acesse a interface de administração do EteSync usando a URL http://etesync.example.com/admin/. Você será redirecionado para a seguinte página:

Forneça seu nome de usuário administrativo, senha e clique no botão Entrar. Você deve ver a seguinte página:

Proteger o EteSync com SSL Let’s Encrypt
Primeiro, você precisará instalar o cliente Certbot Let’s Encrypt para baixar e instalar o certificado SSL para seu domínio.
Você pode instalá-lo com o seguinte comando:
apt-get install python3-certbot-apache -yUma vez instalado, você pode executar o seguinte comando para instalar o Certificado Let’s Encrypt para seu domínio etesync.example.com.
certbot --apache -d etesync.example.comDurante a instalação, você será solicitado a fornecer seu endereço de e-mail e aceitar os termos de serviço, conforme mostrado abaixo:
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): 2Em seguida, digite 2 e pressione Enter para baixar e instalar um certificado SSL gratuito para seu domínio. Uma vez que a instalação tenha sido concluída com sucesso, você deve obter a seguinte saída:
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
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -Conclusão
Parabéns! você instalou com sucesso o EteSync no servidor Ubuntu 20.04 com SSL Let’s Encrypt. Agora você pode sincronizar seu calendário e contatos facilmente com o EteSync.
Receba novas postagens na sua caixa de entrada
Sem spam. Cancele a assinatura a qualquer momento.