Etherpad es una aplicación de edición de texto en tiempo real de código abierto que permite a múltiples usuarios editar un documento simultáneamente. Cada participante en la sesión tiene un cursor de color único, y las contribuciones de cada usuario se muestran en tiempo real con ese color correspondiente.

En el siguiente tutorial veremos cómo instalar y configurar Etherpad en un servidor con Ubuntu 22.04.

Instalación de Etherpad

Cómo siempre, lo primero de todo actualizar repositorios y paquetes del sistema:

apt update
apt upgrade

Instalación de NodeJS

Para que funcione correctamente Etherpad, tendremos que instalar NodeJS en nuestro servidor. Para esta parte os dejamos otro tutorial sobre como hacer este procedimiento:

Instalación de NodeJS en GNU/Linux [Debian, Ubuntu, CentOS]
En el siguiente tutorial os explicaremos la correcta instalación de NodeJS en GNU/Linux. Ya sea tu servidor un Ubuntu o Debian o CentOS aquí encontrarás las instrucciones correctas para su instalación.
💡
Recomendamos utilizar la versión actual que haya disponible.

Instalación de MariaDB

También necesitaremos una base de datos, para ello usaremos MariaDB, aún que si lo prefieres también puedes usar MySQL. En nuestro caso utilizaremos MariaDB y deberás de seguir este procedimiento:

Instalar MariaDB en Ubuntu 22.04
MariaDB es un sistema de gestión de bases de datos derivado de MySQL con licencia GPL (General Public License). Es desarrollado por Michael (Monty) Widenius —fundador de MySQL—, la fundación MariaDB y la comunidad de desarrolladores de software libre.

Creamos usuario y base de datos

Nos hace falta una base de datos para guardar todos los pads, para ello podemos utilizar este otro tutorial que explica como crear un usuario y otorgar permisos a una base de datos:

Crear base de datos y usuario con privilegios en MySQL/MariaDB
En el siguiente tutorial vamos ha explicar como crear una base de datos y un usuario para asignar permisos totales a esa base de datos. Acceder a MySQL/MariaDB Para gestionar bases de datos o usuarios, deberemos de acceder a la shell de MySQL/MariaDB. Existen programas como phpMyAdmin de
CREATE DATABASE etherpad_db;
CREATE USER 'etherpad_user'@'localhost' IDENTIFIED BY 'your_password';
GRANT ALL PRIVILEGES ON etherpad_db.* TO 'etherpad_user'@'localhost';
FLUSH PRIVILEGES;
EXIT;

Descargamos el código de Etherpad

Continuaremos con la descarga del código de Etherpad y la configuración de la aplicación. Para descargar el código lo haremos directamente en el repositorio de Github:

cd /opt
git clone https://github.com/ether/etherpad-lite.git

Nos movemos dentro del directorio:

cd etherpad-lite

Copiamos el fichero de configuración:

cp settings.json.template settings.json

Y editamos el fichero de configuración para añadir la configuración de la base de datos:

"dbType" : "mysql",
"dbSettings" : {
   "user"    : "etherpad_user",
   "host"    : "localhost",
   "password": "your_password",
   "database": "etherpad_db"
},

Tras guardar el fichero de configuración instalamos las dependencias necesarias:

bin/installDeps.sh

Una vez se haya acabado el proceso, podremos iniciar la aplicación con el siguiente comando:

bin/run.sh

Con esto tendremos acceso a la aplicación desde la IP y el puerto 9001.

Configurar un servicio de SystemD

Para tener mejor control de la aplicación, podemos crear un servicio de SystemD para poder reiniciar el servicio por si hay algún problema.

Para ello deberemos de crear el siguiente fichero con el siguiente contenido:

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

[Unit]
Description=Etherpad-lite, the real-time collaborative editor
After=network.target mysql.service

[Service]
Type=simple
User=root
Group=root
WorkingDirectory=/opt/etherpad-lite
Environment=NODE_ENV=production
ExecStart=/usr/bin/nodejs /opt/etherpad-lite/src/node/server.js
Restart=always

[Install]
WantedBy=multi-user.target

Recargamos los servicios de SystemD e iniciamos el servicio:

systemctl daemon-reload
systemctl start etherpad
systemctl enable etherpad

Instalar un Nginx Proxy para acceder vía dominio

A pesar de que este paso es opcional, es bastante recomendable hacerlo. Podemos configurar un Nginx Proxy para acceder internamente al puerto 9001 y acceder por un dominio con SSL configurado con Nginx.

Os dejamos el proceso a continuación:

Configurar Proxy Inverso con Nginx para que escuche a un puerto interno
En ocasiones tenemos servicios o aplicaciones web que escuchan directamente a un puerto interno. Para evitar acceder a dicha aplicación o servicio por la IP del servidor, una configuración que podemos hacer es acceder desde un Nginx Proxy.
Haz que cada palabra cuente: tu donación nos inspira a seguir creando contenido. Accede al apartado de Donación para hacer tu aportación