Este tutorial le mostrará cómo instalar EteSync servidor en Ubuntu. EteSync es una solución de cifrado de extremo a extremo de código abierto para sincronizar sus calendarios, contactos, tareas y notas.
Características de EteSync
La última versión es EteSync 2.0, que incluye
- Cifrado de extremo a extremo.
- No se necesita una contraseña de cifrado separada. Solo necesita una contraseña que se use tanto para el cifrado como para el inicio de sesión.
- Prueba de conocimiento cero para autenticarse en el servidor y asegurarse de que su contraseña nunca abandone su dispositivo.
- Sincronización instantánea entre sus dispositivos.
- La capacidad de compartir datos con otros usuarios
- Los clientes están disponibles para el escritorio (puente DAV), la web, Android e iOS.
- Integración con escritorios GNOME y KDE (backend EteSync para Evolution y Akonadi).
- Un complemento para Mozilla Thunderbird.
- Actualización al nuevo protocolo Etebase.
En un futuro cercano, EteSync también agregará soporte para compartir la ubicación de forma segura. EteSync proporciona un servicio alojado en etesync.com. Le mostraré cómo ejecutar una instancia autohospedada en un servidor Ubuntu y cómo usar el software de cliente en varias plataformas.
Paso 1:Instale la última versión estable del servidor MariaDB en Ubuntu
De forma predeterminada, EteSync almacena la información del usuario en SQLite base de datos. Si prefiere usar MariaDB , siga las instrucciones a continuación.
Debe usar la última versión estable de MariaDB, que es la 10.5, porque habrá problemas si ejecuta EteSync con MariaDB 10.3. Para instalar la última versión estable, ejecute los siguientes comandos para agregar el repositorio de MariaDB en 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'
Para agregar el repositorio en Ubuntu 18.04, simplemente reemplace focal
con bionic
en el tercer comando.
Luego actualice el índice del paquete e instale el servidor MariaDB.
sudo apt update sudo apt install mariadb-server
Si está actualizando un servidor MariaDB existente a la última versión, es posible que vea el siguiente mensaje. Recomiendo elegir N
para mantener la versión actual y examinar lo que necesita cambiar más adelante.
Si hay un problema de dependencia de paquetes, puede ejecutar el siguiente comando para solucionarlo.
sudo apt --fix-broken install
Una vez que finaliza la instalación, el servidor MariaDB se inicia automáticamente. Puede comprobar su estado con:
systemctl status mariadb
Como puede ver, está activo y funcionando.
Sugerencia :Presione Q para recuperar el control de la terminal si el comando anterior no se cierra inmediatamente.
Si no se está ejecutando, puede iniciarlo manualmente con:
sudo systemctl start mariadb
Para habilitar el inicio automático en el momento del arranque, ejecute
sudo systemctl enable mariadb
Paso 2:Cree una base de datos y un usuario para EteSync en el servidor de base de datos MariaDB
Inicie sesión en el servidor de la base de datos MariaDB con el siguiente comando. Dado que MariaDB ahora usa unix_socket
complemento para autenticar el inicio de sesión del usuario, no es necesario ingresar la contraseña de root de MariaDB. Solo necesitamos prefijar el mysql
comando con sudo
.
sudo mysql
Luego cree una base de datos para EteSync. Este tutorial nombra la base de datos etebase
. Puedes usar el nombre que quieras.
create database etebase;
Cree el usuario de la base de datos. Nuevamente, puede usar su nombre preferido para este usuario. Reemplace your-password
con su contraseña preferida.
create user etebase@localhost identified by 'your-password';
Otorgue a este usuario todos los privilegios en etebase
base de datos.
grant all privileges on etebase.* to etebase@localhost;
Vacíe los privilegios y salga.
flush privileges; exit;
Paso 3:Instale el servidor EteSync 2.0 en Ubuntu
Instale el creador de entornos virtuales Python3 y algunas herramientas de creación de paquetes.
sudo apt install python3-virtualenv python3-pip gcc build-essential
Vaya a su directorio de inicio.
cd
Clona el repositorio de EteSync desde Github.
git clone https://github.com/etesync/server.git etebase
Cambie al directorio recién creado.
cd etebase
Cree un entorno virtual de Python3.
virtualenv -p python3 .venv source .venv/bin/activate pip install -r requirements.txt
Copie el archivo de configuración de ejemplo.
cp etebase-server.ini.example etebase-server.ini
Edite el archivo.
nano etebase-server.ini
Encuentra la siguiente línea
;media_root = /path/to/media
Descoméntelo y cambie el valor.
media_root = /home/username/etebase/media/
Encuentra la siguiente línea,
allowed_host1 = example.com
Use un subdominio como etebase.example.com
.
allowed_host1 = etebase.example.com
De forma predeterminada, EteSync almacena la información del usuario en la base de datos SQLite. Si prefiere utilizar el servidor de base de datos MariaDB, comente las siguientes dos líneas (agregue un punto y coma al principio de cada línea).
engine = django.db.backends.sqlite3 name = db.sqlite3
Luego agregue las siguientes líneas al final de este archivo. Esto le dice a EteSync cómo acceder a la etebase
base de datos en MariaDB, que se crea en el paso 1. Obviamente, debe usar su propia contraseña para etebase
usuario.
engine = django.db.backends.mysql name = etebase user = etebase password = your-password host = 127.0.0.1 port = 3306
Guarde y cierre el archivo. El servidor Etebase es una aplicación Django, podemos usar Daphne (el servidor HTTP/WebSocket de Django Channels) para ejecutar Etebase. Instalar Daphne con:
pip3 install daphne
Como usamos MySQL/MariaDB como motor de base de datos, también necesitamos instalar el mysqlclient
módulo.
sudo apt install libmysqlclient-dev pip3 install mysqlclient
Instala el aioredis
módulo para usar el caché de Redis.
pip3 install aioredis
Crea los archivos estáticos de Django.
./manage.py collectstatic
Inicializa la aplicación.
./manage.py migrate
Inicie el servidor EteSync 2.0 (Etebase).
daphne -b 0.0.0.0 -p 8001 etebase_server.asgi:application
Paso 4:Ejecute EteSync como un servicio de Systemd
Podemos iniciar manualmente EteSync con daphne -b 0.0.0.0 -p 8001 etebase_server.asgi:application
, pero es más conveniente ejecutar EteSync como un servicio systemd en segundo plano. Presiona Ctrl+C
para detener la instancia actual de EteSync.
Cree un archivo de unidad de servicio systemd para EteSync con el siguiente comando.
sudo nano /etc/systemd/system/etebase.service
Ponga las siguientes líneas en el archivo. Reemplazar username
con tu nombre de usuario real.
[Unit] Description=EteSync: End-to-End Encryption to Sync Calender, Contacts, Tasks and Notes. [Service] WorkingDirectory=/home/username/etebase/ ExecStart=/home/username/etebase/.venv/bin/daphne -b 127.0.0.1 -p 8001 -u /tmp/etebase_server.sock etebase_server.asgi:application User=username Group=username Restart=always RestartSec=5s [Install] WantedBy=multi-user.target
Guarde y cierre el archivo. Ahora podemos iniciar y habilitar el etebase
servicio systemd.
sudo systemctl start etebase sudo systemctl enable etebase
Comprobar estado.
systemctl status etebase
Si el etebase
el servicio no está activo (en ejecución), puede ejecutar el siguiente comando para ver qué está mal.
sudo journalctl -eu etebase
Paso 5:configurar el proxy inverso
Ahora necesitamos configurar un proxy inverso para la aplicación Django, para que luego podamos acceder a EteSync a través de un nombre de dominio y habilitar HTTPS fácilmente. Podemos usar Apache o Nginx para lograr esto.
Apache
Si prefiere Apache, instale el servidor web Apache usando el siguiente comando.
sudo apt install apache2
Para usar Apache como proxy inverso, debemos habilitar el proxy
módulos y el header
módulo.
sudo a2enmod proxy proxy_http headers proxy_wstunnel
Luego cree un archivo de host virtual para EteSync.
sudo nano /etc/apache2/sites-available/etebase.conf
Coloque las siguientes configuraciones en el archivo. Reemplace etebase.example.com
con su nombre de dominio real. No olvide crear un registro DNS A para este subdominio. Si no tiene un nombre de dominio real, le recomiendo ir a NameCheap para comprar uno. El precio es bajo y brindan protección de privacidad whois gratis de por vida.
<VirtualHost *:80> ServerName etebase.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 /home/username/etebase/static </VirtualHost>
Guarde y cierre el archivo. Luego habilite este servidor virtual.
sudo a2ensite etebase.conf
Reiniciar Apache
sudo systemctl restart apache2
Ahora puede acceder a la interfaz web de EteSync usando el nombre de dominio etebase.example.com
.
Nginx
Si prefiere el servidor web Nginx, instale Nginx con.
sudo apt install nginx
Cree un archivo de host virtual en Nginx para EteSync.
sudo nano /etc/nginx/conf.d/etebase.conf
Ponga las siguientes líneas en el archivo. Reemplace los marcadores de posición según sea necesario y debe crear un registro DNS A para el subdominio.
upstream etebase { server unix:///tmp/etebase_server.sock; } server { listen 80; listen [::]:80; server_name etebase.example.com; charset utf-8; access_log /var/log/nginx/etebase.access; error_log /var/log/nginx/etebase.error; # max upload size client_max_body_size 75M; location /static/ { alias /home/username/etebase/static/; } location / { 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; } }
Guarde y cierre el archivo. Luego pruebe las configuraciones de Nginx.
sudo nginx -t
Si la prueba es exitosa, vuelva a cargar Nginx para que el cambio surta efecto.
sudo systemctl reload nginx
Ahora puede acceder a la interfaz web de EteSync en etebase.example.com
.
Resolución de problemas
Si ve la bad request (400)
error al intentar acceder a la interfaz web de EteSync, asegúrese de haber agregado el nombre del servidor de etesync a allowd_hosts
lista en etebase-server.ini
expediente. Luego reinicie etebase (sudo systemctl restart etebase
).
También puede habilitar el modo de depuración en el etebase-server.ini archivo, es decir, cambiar
debug = false
Para
debug = true
Luego reinicie etebase.
sudo systemctl restart etebase
Luego verifique el registro del servicio systemd.
sudo journalctl -eu etebase
Paso 6:habilite HTTPS
Para cifrar el tráfico HTTP, podemos habilitar HTTPS instalando un certificado TLS gratuito emitido por Let's Encrypt. Ejecute el siguiente comando para instalar el cliente Let's Encrypt (certbot) en el servidor Ubuntu.
sudo apt install certbot
Si usa Apache, entonces también necesita instalar el complemento Certbot Apache.
sudo apt install python3-certbot-apache
A continuación, ejecute el siguiente comando para obtener e instalar el certificado TLS.
sudo certbot --apache --agree-tos --redirect --hsts --staple-ocsp --email [email protected] -d etebase.example.com
Si usa Nginx, también necesita instalar el complemento Certbot Nginx.
sudo apt install python3-certbot-nginx
A continuación, ejecute el siguiente comando para obtener e instalar el certificado TLS.
sudo certbot --nginx --agree-tos --redirect --hsts --staple-ocsp --email [email protected] -d etebase.yourdomain.com
donde:
--apache
:Utilice el complemento de Apache.--nginx
:use el complemento nginx.--agree-tos
:Acepto los términos del servicio.--redirect
:Forzar HTTPS por redirección 301.--hsts
:agregue el encabezado Strict-Transport-Security a cada respuesta HTTP. Obligar al navegador a usar siempre TLS para el dominio. Protege contra la eliminación de SSL/TLS.--staple-ocsp
:activa el grapado OCSP. Se grapa una respuesta OCSP válida al certificado que ofrece el servidor durante TLS.
Ahora se debe obtener el certificado e instalarlo automáticamente.
Paso 7:crear cuentas de usuario
Cree un usuario superadministrador.
./manage.py createsuperuser
Luego ve a etebase.example.com/admin
e inicie sesión en la consola de administración. A continuación, puede crear cuentas de usuario individuales para sincronizar calendarios, contactos, tareas y notas. Tenga en cuenta que no necesita crear contraseñas para los usuarios en la consola de administración de EteSync, ya que Etebase utiliza prueba de conocimiento cero para la autenticación.
Ahora necesitamos configurar clientes para usar EteSync.
Cómo instalar el módulo Evolution EteSync en Ubuntu Desktop
Evolución es el conjunto de software colaborativo predeterminado en el entorno de escritorio GNOME. Puede instalarlo en su escritorio Ubuntu con:
sudo apt install evolution
Para usar EteSync en Evolution, debemos instalar el módulo EteSync para Evolution siguiendo los pasos a continuación.
Clona la libetebase
repositorio.
sudo apt install git git clone https://github.com/etesync/libetebase.git
Cambie al directorio recién creado.
cd libetebase/
Instale los paquetes necesarios para compilar el paquete desde el origen.
sudo apt install build-essential libssl-dev cargo
Compile el paquete fuente.
make
Instale el binario.
sudo make install
Luego regrese al directorio anterior.
cd ..
Clonar el Evolution-EteSync
repositorio.
git clone https://gitlab.gnome.org/GNOME/evolution-etesync
Cambie al directorio recién creado.
cd evolution-etesync/
Instale los paquetes necesarios para compilar el paquete desde el origen.
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
Compile e instale el paquete.
mkdir build cd build cmake -DCMAKE_INSTALL_PREFIX=/usr .. make -j sudo make -j install
Uso de EteSync en Evolution
Ahora inicie la aplicación Evolution en su escritorio Ubuntu. Haga clic en Nuevo en la barra de herramientas y agregue una nueva cuenta de colección .
Luego ingrese su nombre de usuario de EteSync y la dirección del servidor. Tenga en cuenta que debe agregar https://
como el prefijo de la dirección del servidor. Seleccione Buscar una cuenta de EteSync y desmarque todas las demás opciones. Luego haga clic en Buscar botón.
Le pedirá que ingrese la contraseña para continuar. Este es realmente el momento de establecer la contraseña, así que haga clic en Ingresar contraseña vincular y establecer una contraseña.
Después de ingresar una contraseña, haga clic en el botón Intentar de nuevo y debería encontrar un candidato. Haga clic en Siguiente botón para continuar.
Sincronizar con NextCloud
Si tiene un servidor Nextcloud autohospedado e instaló la aplicación Calendario, Tareas o Contactos en su servidor Nextcloud, puede agregar su servidor Nextcloud DAV en Evolution, para que puedan sincronizarse. Simplemente agregue otra cuenta de colección en Evolution, ingrese su nombre de usuario de Nextcloud y la dirección CalDAV/CardDAV, seleccione Buscar un servidor CalDAV/CardDAV , desmarque todas las demás opciones. Luego ingrese su contraseña de Nextcloud. La dirección de Nextcloud CalDAV/CardDAV debe ser https://nextcloud.yourdomain.com/remote.php/dav
.
Uso de la aplicación iOS EteSync
Para sincronizar su calendario, contactos y tareas en iOS, primero debe configurar una cuenta CalDAV/CardDAV en iOS. Ve a la Configuración aplicación -> Calendario -> Cuentas -> Añadir cuenta -> Otro , y agregue una cuenta CalDAV y CardDAV. CalDAV se usa para sincronizar calendarios y CardDAV se usa para sincronizar contactos en sus dispositivos.
Si tiene un servidor Nextcloud autohospedado, puede usar su cuenta CalDAV/CardDAV de Nextcloud. Si no tiene una, simplemente use una cuenta falsa.
A continuación, instale la aplicación EteSync desde la tienda de aplicaciones. Luego agregue su cuenta EteSync.
Después de iniciar sesión en su cuenta EteSync, vaya a la configuración menú en la aplicación EteSync. En el Avanzado sección, seleccione su cuenta CardDAV para Sincronizar contactos y seleccione su cuenta CalDAV para Sincronizar calendarios y recordatorios .