GNU/Linux >> Tutoriales Linux >  >> Ubuntu

Cómo instalar el servidor EteSync 2.0 (Etebase) en Ubuntu

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 .


Ubuntu
  1. Cómo instalar MariaDB 10.4 en Ubuntu 18.04

  2. Cómo instalar MySQL en Ubuntu 18.04

  3. Cómo instalar MariaDB en Ubuntu 18.04

  4. Cómo instalar Zimbra 8.6 en el servidor Ubuntu 14.04

  5. Cómo instalar MariaDB en Ubuntu 22.04

Cómo instalar el servidor Consul en Ubuntu 16.04

Cómo instalar MariaDB en Ubuntu 18.04 / Ubuntu 16.04

Cómo instalar el servidor EteSync 2.0 (Etebase) en Ubuntu

Cómo instalar MariaDB en Ubuntu 16.04

Cómo instalar el servidor EteSync en Ubuntu 20.04 LTS

Cómo instalar MariaDB en Ubuntu