Cómo instalar el editor de colaboración Etherpad en un servidor Ubuntu 24.04

Etherpad es un editor de texto colaborativo y en tiempo real de código abierto para tu equipo, accesible desde cualquier lugar y en cualquier momento, ya que Etherpad es un editor de texto basado en web. Etherpad admite el control de versiones y el formato integrado para equipos, y ofrece un editor altamente personalizable con el apoyo de varios plugins. También admite formatos de documentos modernos como doc, pdf, odt, markdown, etc.

En esta guía, te guiaremos a través del proceso de instalación del editor colaborativo Etherpad en el servidor Ubuntu 24.04. Configurarás Etherpad con el servidor de base de datos MariaDB, Nginx como proxy inverso, y luego asegurarás Etherpad con HTTPS mediante Certbot y Letsencrypt.

Requisitos previos

Para empezar con esta guía, asegúrate de que tienes lo siguiente:

Un servidor Ubuntu 24.04.
Un usuario no root con privilegios de administrador.
Un nombre de dominio apuntando a una dirección IP del servidor.

Instalación de dependencias

Etherpad es un editor colaborativo en tiempo real escrito en Node.js. Para instalarlo, debes instalar dependencias de paquetes como Node.js, NPM y Git. Etherpad también requiere Python3 y MySQL/MariaDB para la base de datos.

Primero, actualiza tu repositorio de Ubuntu con lo siguiente:

sudo apt update

actualizar repo

Ahora, instala las dependencias para Etherpad utilizando el siguiente comando. Con este comando, instalarás el servidor MariaDB, Nginx, Node.js, Python3, Git y algunas herramientas esenciales.

sudo apt install mariadb-server nginx nodejs npm gzip git curl python3 libssl-dev

Escribe Y para confirmar la instalación.

instalar deps

Tras la instalación, comprueba los servicios MariaDB y Nginx para asegurarte de que ambos servicios se están ejecutando.

Comprueba el servicio MariaDB con lo siguiente:

sudo systemctl is-enabled mariadb
sudo systemctl status mariadb

Como puedes ver a continuación, el servicio MariaDB se está ejecutando y se iniciará al arrancar automáticamente.

comprobar mariadb

Ahora comprueba el servicio Nginx utilizando el siguiente comando. Deberías obtener una salida similar cuando el servicio Nginx se esté ejecutando y esté habilitado.

sudo systemctl is-enabled nginx
sudo systemctl status nginx

comprobar nginx

Por último, comprueba la versión de Node.js con el comando.

node -v

Asegúrate de que tienes Node.js v18.x o superior. El Etherpad soporta Node.js v18 y superiores.

comprobar nodejs

Configurar el servidor MariaDB

Después de haber instalado las dependencias, configurarás el servidor MariaDB y crearás una nueva base de datos y un nuevo usuario para Etherpad. Asegurarás MariaDB utilizando la utilidad ‘mariadb-secure-installation’, y luego configurarás la base de datos y el usuario a través del cliente MariaDB.

Para asegurar tu servidor MariaDB, ejecuta lo siguiente:

sudo mariadb-secure-installation

Se te pedirá que configures el servidor MariaDB:

  1. La instalación por defecto de MariaDB viene sin contraseña, pulsa ENTER cuando se te pida la contraseña.
  2. Ahora introduce Y para configurar la contraseña raíz de MariaDB. A continuación, escribe la nueva contraseña para MariaDB y repite la contraseña.
  3. Introduce Y para eliminar el usuario anónimo de tu instalación de MariaDB.
  4. Vuelve a introducir Y cuando se te pida para desactivar el inicio de sesión remoto para el usuario raíz de MariaDB.
  5. Introduce Y para eliminar la prueba de base de datos por defecto de tu MariaDB.
  6. Por último, introduce Y para recargar los privilegios de las tablas y aplicar los nuevos cambios.

Una vez que hayas asegurado y configurado el servidor MariaDB, crearás una nueva base de datos y un nuevo usuario para Etherpad.

Accede al servidor MariaDB con el siguiente comando. Introduce la contraseña de root de MariaDB cuando se te solicite.

sudo mariadb -u root -p

A continuación, ejecuta las siguientes consultas MariaDB para crear una nueva base de datos‘etherpad_db‘, un usuario‘etherpad‘, con la contraseña‘StrongPasswordEtherpadDB‘. Puedes ajustar los siguientes detalles de la base de datos con tu información.

CREATE DATABASE etherpad_db;
CREATE USER etherpad@localhost IDENTIFIED BY 'StrongPasswordEtherpadDB';
GRANT CREATE,ALTER,SELECT,INSERT,UPDATE,DELETE on etherpad_db.* to etherpad@localhost;
FLUSH PRIVILEGES;

crear base de datos y usuario

Ahora ejecuta la siguiente consulta para asegurarte de que el usuario ‘etherpad‘ puede acceder a la base de datos‘etherpad_db‘.

SHOW GRANTS FOR etherpad@localhost;

A continuación puedes ver al usuario ‘etherpad‘ con múltiples privilegios para la base de datos ‘etherpad_db‘.

Por último, escribe quit para salir del servidor MariaDB.

comprobar usuario db

Instalar Etherpad Lite

Tras crear la base de datos y el usuario, descargarás el código fuente de Etherpad, instalarás las dependencias de Etherpad con el script instalador y, a continuación, configurarás la instalación de Etherpad con el servidor MariaDB.

Por defecto, Etherpad utiliza el gestor de paquetes pnpm para gestionar la instalación, por lo que primero debes instalar el ‘pnpm’ globalmente en tu sistema.

En primer lugar, instala el paquete pnpm globalmente (-g) utilizando el siguiente comando npm. Por defecto, el proyecto Etherpad utiliza pnpm como gestor de paquetes Node.js en lugar de npm estándar.

npm install pnpm -g

Ahora ejecuta el siguiente comando para crear un nuevo usuario de sistema‘etherpad‘. Este usuario se utilizará para ejecutar la aplicación Etherpad.

sudo adduser --system --no-create-home --home=/opt/etherpad-lite --group etherpad

A continuación, ve a /opt y descarga el código fuente de Etherpad en el directorio ‘etherpad-lite‘ con git. A continuación, cambia la propiedad del directorio‘/opt/etherpad-lite‘ al usuario‘etherpad‘.

cd /opt && git clone --branch master https://github.com/ether/etherpad-lite.git 
sudo chown -R etherpad:etherpad /opt/etherpad-lite

Después, ve al directorio ‘opt/etherpad-lite’ e instala las dependencias de Node.js para Etherpad con lo siguiente.

cd /opt/etherpad-lite
sudo su -s /bin/bash -c "./bin/run.sh" etherpad

A continuación se muestra el proceso de descarga de las dependencias de Etherpad mediante el gestor de paquetes pnpm.

instalación de dependencias

Una vez instaladas las dependencias, Etherpad debería ejecutarse automáticamente. A continuación puedes ver que se está ejecutando Etherpad 2.0.3.

Pulsa Ctrl+c para terminar el proceso actual de Etherpad. Vas a configurar Etherpad con la base de datos MariaDB.

ejecutar etherpad

Ahora abre el archivo‘settings.json‘ con el siguiente editor nano.

nano settings.json

Cambia el título de tu instalación de Etherpad.

 "title": "Etherpad Ubuntu 24",

Cambia la dirección IP por defecto a 12.0.0.1 o localhost. Esto iniciará el proceso de Etherpad sólo en localhost.

```
 "ip": "127.0.0.1",
 "port": 9001, 
```

Comenta la configuración por defecto de la base de datos«sucia» como la siguiente:

 /*
 *"dbType": "dirty",
 *"dbSettings": {
 * "filename": "var/dirty.db"
 *},
 */

Introduce la configuración siguiente para configurar una base de datos con el servidor MariaDB. Asegúrate de cambiar los detalles de la información de la base de datos por los tuyos.

 "dbType" : "mysql",
 "dbSettings" : {
 "user": "etherpad",
 "host": "127.0.0.1",
 "port": 3306,
 "password": "StrongPasswordEtherpadDB",
 "database": "etherpad_db",
 "charset": "utf8mb4"
 },

Cuando hayas terminado, guarda el archivo y sal del editor.

Ejecutar Etherpad como un servicio systemd

Ahora que has instalado y configurado Etherpad, crearás un nuevo archivo de servicio systemd para Etherpad. Con esto, ejecutarás Etherpad en segundo plano, y podrás gestionar Etherpad mediante el comando ‘systemctl’.

Crea un nuevo archivo de servicio systemd para Etherpad‘/etc/systemd/system/etherpad.service‘ con el editor nano.

sudo nano /etc/systemd/system/etherpad.service

Añade la siguiente configuración al archivo. Con esto, ejecutarás Etherpad en segundo plano como un servicio systemd a través del comando ‘pnpm’.

[Unit]
Description=Etherpad-lite, the collaborative editor.
After=syslog.target network.target mariadb.service
[Service]
Type=simple
User=etherpad
Group=etherpad
WorkingDirectory=/opt/etherpad-lite
ExecStart=/usr/local/bin/pnpm run prod
# use mysql plus a complete settings.json to avoid Service hold-off time over, scheduling restart.
Restart=always

[Install]
WantedBy=multi-user.target

Guarda el archivo y sal.

Ahora ejecuta el siguiente comando para recargar el gestor systemd y aplicar el archivo de servicio de Etherpad.

sudo systemctl daemon-reload

Una vez recargado systemd, inicia y habilita el servicio ‘etherpad’ con el siguiente comando systemctl.

sudo systemctl start etherpad
sudo systemctl enable etherpad

A continuación, ejecuta el siguiente comando para comprobar el estado del servicio Etherpad y asegurarte de que se está ejecutando.

sudo systemctl status etherpad

Puedes ver a continuación que el servicio Etherpad se está ejecutando como servicio.

Por último, comprueba el puerto por defecto 9001 de Etherpad con el comando «ss» que aparece a continuación. Deberías ver que el puerto 9001 es utilizado por el proceso Etherpad.

ss -tulpn | grep 9001

Configurar Nginx como proxy inverso

En esta guía ejecutarás Etherpad con Nginx como proxy inverso. Así que ahora crearás la configuración del bloque del servidor Nginx para Etherpa, y te asegurarás de haber preparado tu nombre de dominio para Etherpad.

Utiliza el siguiente comando del editor nano para crear un nuevo bloque de servidor Nginx ‘/etc/nginx/sites-available/etherpad.conf’.

sudo nano /etc/nginx/sites-available/etherpad.conf

Añade la siguiente configuración y cambia la opción server_name por tu nombre de dominio. Con esta configuración, utilizarás Nginx como proxy inverso para Etherpad, que se ejecuta en el puerto 9001.

```
server {
 listen 80;
 server_name etherpad.hwdomain.io;
access_log /var/log/nginx/eplite.access.log;
error_log /var/log/nginx/eplite.error.log;

location / {
proxy_pass http://127.0.0.1:9001;
proxy_buffering off; # be careful, this line doesn't override any proxy_buffering on set in a conf.d/file.conf
proxy_set_header Host $host;
proxy_pass_header Server;
# Note you might want to pass these headers etc too.
proxy_set_header X-Real-IP $remote_addr; # https://nginx.org/en/docs/http/ngx_http_proxy_module.html
proxy_set_header X-Forwarded-For $remote_addr; # EP logs to show the actual remote IP
proxy_set_header X-Forwarded-Proto $scheme; # for EP to set secure cookie flag when https is used
proxy_http_version 1.1; # recommended with keepalive connections
# WebSocket proxying - from https://nginx.org/en/docs/http/websocket.html
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection "upgrade";
}

}

Guarda y cierra el archivo cuando hayas terminado.

Ahora ejecuta el siguiente comando para activar el archivo de bloque de servidor‘etherpad.conf‘ y verificar la sintaxis de tu Nginx.

sudo ln -s /etc/nginx/sites-available/etherpad.conf /etc/nginx/sites-enabled/
sudo nginx -t

Deberías obtener una salida‘nginx is ok…test is successful’ con la sintaxis Nginx correcta.

Por último, ejecuta el siguiente comando para reiniciar el servicio Nginx y aplicar tu nuevo bloque de servidor. Tras ejecutar el comando, tu Etherpad será accesible a través del servidor web Nginx.

sudo systemctl restart nginx

Proteger Etherpad con HTTPS

Tras configurar el proxy inverso Nginx, asegurarás Etherpad con HTTPS. Si utilizas el dominio público, puedes seguir los siguientes pasos para configurar HTTPS con Certbot y Letsencrypt. Los usuarios del dominio local pueden utilizar certificados autofirmados.

Instala Certbot y el plugin Certbot Nginx utilizando el siguiente comando. Cuando se te solicite, escribe Y para confirmar la instalación.

sudo apt install certbot python3-certbot-nginx

Ahora ejecuta el siguiente comando certbot para generar certificados SSL/TLS desde Letsencrypt. Asegúrate de cambiar el nombre de dominio y la dirección de correo electrónico con tus datos.

sudo certbot --nginx --agree-tos --redirect --hsts --staple-ocsp --email [email protected] -d etherpad.hwdomain.io

Tras completar el proceso, tus certificados estarán disponibles en el directorio‘/etc/letsencrypt/live/domain.com‘. Además, tu instalación de Etherpad debería funcionar automáticamente con HTTPS a través del plugin Certbot Nginx.

Acceder a Etherpad

Visita tu nombre de dominio Etherpad https://etherpad.hwdomain.io para acceder a tu instalación de Etherpad. Si tienes éxito, obtendrás la siguiente página:

Escribe el nuevo nombre para tu primer pad y pulsa OK para confirmar.

crear almohadilla

Ahora verás el editor de documentos de Etherpad. Ahora puedes editar el documento al mismo tiempo que tus amigos o compañeros.

editor etherpad

Conclusión

¡Enhorabuena! Has instalado el editor de colaboración Etherpad en el servidor Ubuntu 24.04. Has ejecutado Etherpad con el servidor de base de datos MariaDB y el servidor web Nginx. Además, has asegurado Etherpad con HTTPS mediante Certbot y Letsencrypt.

También te podría gustar...