Instalación de Software · 10 min read · Sep 30, 2025
Cómo instalar el servidor EteSync en Ubuntu 20.04

EteSync es una solución de código abierto para sincronizar tus contactos, calendarios y tareas. Es autoalojado, proporciona cifrado de extremo a extremo y te permite compartir datos con otros usuarios. Se puede integrar con los escritorios GNOME y KDE. Se puede acceder a través de clientes de escritorio, web, Android e iOS.
En este tutorial, te mostraré cómo instalar EteSync con Apache en Ubuntu 20.04.
Prerrequisitos
- Un servidor que ejecute Ubuntu 20.04.
- Un nombre de dominio válido apuntado a la IP de tu servidor.
- Una contraseña de root configurada en el servidor.
Comenzando
Primero, actualiza los paquetes del sistema a la versión actual ejecutando el siguiente comando:
apt-get update -yUna vez que todos los paquetes estén actualizados, puedes proceder al siguiente paso.
Instalando el servidor MariaDB
Por defecto, EteSync utiliza la base de datos SQLite para almacenar su información. Aquí, instalaremos y utilizaremos MariaDB como backend de base de datos.
Primero, instala las dependencias requeridas usando el siguiente comando:
apt-get install software-properties-common gnupg2 -yA continuación, agrega la clave GPG y el repositorio de MariaDB usando el siguiente 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'A continuación, actualiza el repositorio de MariaDB e instala la última versión de MariaDB con el siguiente comando:
apt-get install mariadb-server -yDespués de instalar el servidor MariaDB, inicia sesión en el shell de MariaDB con el siguiente comando:
mysqlUna vez que hayas iniciado sesión, crea una base de datos y un usuario para EteSync con el siguiente comando:
MariaDB [(none)]> create database etesync;
MariaDB [(none)]> create user etesync@localhost identified by 'securepassword';A continuación, otorga todos los privilegios a la base de datos EteSync con el siguiente comando:
MariaDB [(none)]> grant all privileges on etesync.* to etesync@localhost;A continuación, actualiza los privilegios y sal del MariaDB con el siguiente comando:
MariaDB [(none)]> flush privileges;
MariaDB [(none)]> exit;Una vez que hayas terminado, puedes proceder al siguiente paso.
Instalando y configurando EteSync
Primero, necesitarás instalar algunas dependencias de Python requeridas para EteSync. Puedes instalar todas ellas con el siguiente comando:
apt-get install python3-virtualenv python3-pip gcc libmysqlclient-dev build-essential git -yDespués de instalar todas las dependencias, descarga la última versión de EteSync usando el siguiente comando:
git clone https://github.com/etesync/server.git etesyncUna vez que la descarga esté completa, cambia el directorio a etesync y crea un entorno virtual de Python con el siguiente comando:
cd etesync
virtualenv -p python3 .venvA continuación, activa el entorno virtual con el siguiente comando:
source .venv/bin/activateA continuación, instala todos los requisitos usando el siguiente comando:
pip install -r requirements.txtA continuación, copia el archivo de configuración de muestra:
cp etebase-server.ini.example etebase-server.iniA continuación, edita el archivo de configuración usando el comando a continuación:
nano etebase-server.iniAgrega o modifica las siguientes líneas según tu configuración:
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 = 3306Guarda y cierra el archivo, luego instala otros módulos usando el siguiente comando:
pip3 install daphne
pip3 install mysqlclient
pip3 install aioredisA continuación, genera los archivos estáticos y migra la base de datos con el siguiente comando:
./manage.py collectstatic
./manage.py migrateFinalmente, inicia el servidor EteSync con el siguiente comando:
daphne -b 0.0.0.0 -p 8001 etebase_server.asgi:applicationSi todo está bien, deberías obtener la siguiente salida:
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:8001Presiona CTRL + C para detener el servidor.
A continuación, crea un usuario administrativo usando el siguiente comando:
./manage.py createsuperuserProporciona tu nombre de usuario, contraseña y correo electrónico como se muestra a continuación:
Username: etesync
Email address: [email protected]
Password:
Password (again):
Superuser created successfully.A continuación, desactiva el entorno virtual de Python con el siguiente comando:
deactivateCrear un archivo de unidad Systemd para EteSync
A continuación, necesitarás crear un archivo de unidad systemd para gestionar EteSync. Puedes crearlo con el siguiente comando:
nano /etc/systemd/system/etesync.serviceAgrega las siguientes líneas:
[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.targetGuarda y cierra el archivo, luego recarga el demonio systemd para aplicar los cambios de configuración:
systemctl daemon-reloadA continuación, inicia y habilita el servicio EteSync con el siguiente comando:
systemctl start etesync
systemctl enable etesyncPara verificar el estado del servicio EteSync, ejecuta el siguiente comando:
systemctl status etesyncObtendrás la siguiente salida:
? 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.sockEn este punto, EteSync está iniciado y escuchando en el puerto 8001. Ahora puedes proceder al siguiente paso.
Configurando Apache como un proxy inverso
También es recomendable instalar y usar Apache como un proxy inverso para acceder a EteSync. Primero, instala el servidor Apache con el siguiente comando:
apt-get install apache2 -yDespués de instalar el servidor Apache, habilita todos los módulos de proxy con el siguiente comando:
a2enmod proxy proxy_http headers proxy_wstunnelA continuación, crea un nuevo archivo de configuración de host virtual de Apache:
nano /etc/apache2/sites-available/etesync.confAgrega las siguientes líneas:
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
Guarda y cierra el archivo, luego activa el host virtual de Apache con el siguiente comando:
a2ensite etesync.confA continuación, reinicia Apache para actualizar los cambios:
systemctl restart apache2Ahora puedes verificar el estado de Apache usando el siguiente comando:
systemctl status apache2Deberías obtener la siguiente salida:
? 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>Acceder a la consola de administración de EteSync
Ahora, abre tu navegador web y accede a la interfaz de administración de EteSync usando la URL http://etesync.example.com/admin/. Serás redirigido a la siguiente página:

Proporciona tu nombre de usuario de administrador, contraseña y haz clic en el botón Iniciar sesión. Deberías ver la siguiente página:

Asegurar EteSync con SSL de Let’s Encrypt
Primero, necesitarás instalar el cliente Certbot Let’s Encrypt para descargar e instalar el certificado SSL para tu dominio.
Puedes instalarlo con el siguiente comando:
apt-get install python3-certbot-apache -yUna vez instalado, puedes ejecutar el siguiente comando para instalar el certificado Let’s Encrypt para tu dominio etesync.example.com.
certbot --apache -d etesync.example.comDurante la instalación, se te pedirá que proporciones tu dirección de correo electrónico y aceptes los términos del servicio como se muestra a continuación:
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): 2A continuación, escribe 2 y presiona Enter para descargar e instalar un certificado SSL gratuito para tu dominio. Una vez que la instalación se haya completado con éxito, deberías obtener la siguiente salida:
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
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -Conclusión
¡Felicidades! has instalado con éxito EteSync en el servidor Ubuntu 20.04 con SSL de Let’s Encrypt. Ahora puedes sincronizar tu calendario y contactos fácilmente con EteSync.
Recibe nuevas publicaciones en tu bandeja de entrada.
No spam. Cancela la suscripción en cualquier momento.