Cómo instalar Etherpad en Debian 12
Etherpad es una alternativa gratuita y de código abierto a servicios como Google Docs y Zoho Writer. Etherpad es un editor de texto colaborativo y en tiempo real para tu equipo, accesible desde cualquier lugar y en cualquier momento porque Etherpad es un editor de texto basado en web.
Cualquier cambio en Etherpad se produce en tiempo real, y además, Etherpad admite versionado y formato integrado para equipos. Etherpad es un editor altamente personalizable con el soporte de varios plugins. Y también soporta formatos modernos de documentos como doc, pdf, odt, markdown, etc.
Esta guía te mostrará cómo instalar el editor colaborativo Etherpad en un servidor Debian 12. Te mostraremos la instalación de Etherpad con el servidor de base de datos MariaDB y el servidor web Nginx, también la seguridad de Etherpad con UFW (Uncomplicated Firewall) y SSL mediante Certbot y Letsencrypt.
Requisitos previos
Para completar esta guía, asegúrate de que tienes lo siguiente:
- Un servidor Debian 12.
- Un usuario no root con privilegios de administrador.
- Un nombre de dominio que apunte a la dirección IP de tu servidor.
Instalación de dependencias
Etherpad es un software de código abierto para editores colaborativos escrito en JavaScript. Para instalar Etherpad, debes instalar el tiempo de ejecución de JavaScript en tu servidor Debian.
En el primer paso, instalarás las siguientes dependencias para Etherpad:
- Node.js 18: un tiempo de ejecución de JavaScript para ejecutar Etherpad, que está escrito en JavaScript.
- Npm: el gestor de paquetes de Node.js.
- Servidor MariaDB: como base de datos para Etherpad.
- Servidor web Nginx: como proxy inverso para Etherpad.
Sigamos adelante.
Ejecuta el siguiente comando apt update para actualizar y refrescar tu índice de paquetes Debian.
sudo apt update
A continuación, instala las dependencias de los paquetes mediante el siguiente comando apt install. Introduce y para confirmar y pulsa ENTER para proceder a la instalación.
sudo apt install mariadb-server nginx ufw nodejs npm gzip git curl python3 libssl-dev
Una vez instaladas las dependencias, comprueba la versión de Node.js mediante el siguiente comando nodejs. Deberías obtener que Node.18 está instalado.
nodejs --version
A continuación, comprueba el estado del servicio mariadb mediante los siguientes comandos systemctl. Deberías obtener que el servicio mariadb está habilitado y se ejecutará automáticamente al arrancar el sistema, y que el estado del servicio mariadb es en ejecución.
sudo systemctl is-enabled mariadb sudo systemctl status mariadb
Por último, comprueba el servicio nginx utilizando el siguiente comando. Asegúrate de que el servicio nginx se está ejecutando y está habilitado. Si está habilitado, el servicio se iniciará automáticamente al arrancar el sistema.
sudo systemctl is-enabled nginx sudo systemctl status nginx
Configurar UFW (Cortafuegos sin complicaciones)
Después de instalar las dependencias, ahora vas a configurar UFW (Uncomplicated Firewall) para asegurar tu instalación de Etherpad. Si antes has instalado UFE, continúa configurando UFW.
Primero, ejecuta el siguiente comando para habilitar el perfil OpenSSH y permitir la conexión SSH. A continuación, inicia y habilita UFW (Cortafuegos sin complicaciones).
sudo ufw allow OpenSSH sudo ufw enable
Cuando se te solicite, introduce y para iniciar y habilitar UFW. Si lo consigues, deberías obtener una salida como ésta:
A continuación, ejecuta el siguiente comando ufw para obtener los perfiles de cortafuegos disponibles y habilita el perfil«Nginx Full» para abrir los puertos HTTP y HTTPS.
sudo ufw app list sudo ufw allow "Nginx Full"
Por último, recarga UFW para aplicar los cambios y verificar las reglas y perfiles habilitados en UFW.
sudo ufw reload sudo ufw status
Deberías ver que la UFW está activa con los perfiles OpenSSH y Nginx Full habilitados.
Configurar el servidor de base de datos MariaDB
En la siguiente sección, asegurarás tu servidor MariaDB mediante la utilidad mariadb-secure-installation y crearás una nueva base de datos y un nuevo usuario para Etherpad.
Ejecuta el comando mariadb-secure-installation que se indica a continuación para asegurar el servidor MariaDB. La utilidad mariadb-secure-installation te permite establecer la contraseña de root para MariaDB y aplicar algunos ajustes básicos de seguridad a tu servidor MariaDB.
sudo mariadb-secure-installation
Durante el proceso, se te pedirán algunos cambios en la configuración de MariaDB. Introduce Y para aplicar la configuración o n para no.
- Pulsa ENTER cuando te pregunte por la contraseña raíz de MariaDB.
Introduce n cuando te pregunte por el método de autenticación unix_socket.
Introduce Y para establecer una nueva contraseña para el usuario raíz de MariaDB. A continuación, introduce la nueva contraseña y repite.
Introduce Y para eliminar el usuario anónimo por defecto de MariaDB.
A continuación, introduce Y de nuevo para desactivar el inicio de sesión remoto para el usuario raíz de MariaDB.
Introduce Y para eliminar la prueba de base de datos por defecto de MariaDB.
Por último, introduce Y de nuevo para recargar los privilegios de tabla y aplicar los cambios.
Una vez asegurado el servidor MariaDB, crearás una nueva base de datos y un nuevo usuario que utilizará Etherpad.
Ejecuta el siguiente comando de cliente mariadb para iniciar sesión en el servidor MariaDB. Introduce la contraseña de tu usuario raíz de MariaDB.
sudo mariadb -u root -p
Tras iniciar sesión, ejecuta las siguientes consultas para crear una nueva base de datos etherpad_lite_db y un usuario etherpaduser. asegúrate de cambiar la contraseña StrongPasswordEtherpadDB por la nueva contraseña de tu base de datos.
CREATE DATABASE etherpad_lite_db; CREATE USER etherpaduser@localhost IDENTIFIED BY 'StrongPasswordEtherpadDB'; GRANT CREATE,ALTER,SELECT,INSERT,UPDATE,DELETE on etherpad_lite_db.* to etherpaduser@localhost; FLUSH PRIVILEGES;
Ahora verifica el usuario MariaDB etherpaduser mediante la siguiente consulta para asegurarte de que el usuario etherpaduser puede acceder a la base de datos etherpad_lite_db.
SHOW GRANTS FOR etherpaduser@localhost;
Asegúrate de que tienes una salida como la siguiente, que confirma que el usuario etherpaduser puede acceder a la base de datos etherpad_lite_db.
Escribe quit para salir del servidor MariaDB y terminar el paso.
Descarga y configuración de Etherpad
En esta sección, descargarás el código fuente de Etherpad e instalarás sus dependencias. Después, también configurarás Etherpad para que se ejecute sólo en localhost y configurarás Etherpad con el servidor MariaDB.
Ejecuta el siguiente comando para añadir un nuevo usuario de sistema etherpad con el directorio raíz por defecto /opt/etherpad-lite.
sudo adduser --system --no-create-home --home=/opt/etherpad-lite --group etherpad
Ahora descarga el código fuente de Etherpad mediante git al directorio /opt/etherpad-lite y cambia la propiedad del directorio /opt/etherpad-lite al usuario y grupo etherpad. Esto permitirá al usuario etherpad acceder al código fuente.
cd /opt && git clone --branch master https://github.com/ether/etherpad-lite.git sudo chown -R etherpad:etherpad /opt/etherpad-lite
A continuación, ve al directorio /opt/etherpad-lite y ejecuta el script ./bin/run.sh para preparar el entorno del sistema para la instalación de Etherpad. Esto instalará las dependencias necesarias para Etherpad y ejecutará Etherpad con la configuración predeterminada.
cd /opt/etherpad-lite sudo su -s /bin/bash -c "./bin/run.sh" etherpad
Instalación de las dependencias de Node.js.
Una vez instaladas las dependencias, Etherpad debería ejecutarse con la configuración por defecto, y a continuación se muestra la salida que deberías obtener.
Pulsa Ctrl+c para terminar el proceso de Etherpad. Modificarás el archivo settings. json de configuración de Etherpad para configurar tu instalación.
Abre el archivo settings.json utilizando el siguiente comando del editor nano.
nano settings.json
Cambia el título por defecto de tu instalación de Etherpad.
"title": "Etherpad Debian 12",
Cambia la ip a localhost o 127.0.0.1 para ejecutar Etherpad sólo en localhost.
"ip": "127.0.0.1", "port": 9001,
Comenta la sección dbType para desactivar la configuración por defecto de la base de datos. También puedes eliminar las siguientes líneas.
/* *"dbType": "dirty", *"dbSettings": { * "filename": "var/dirty.db" *}, */
Añade una nueva configuración dbType con mysql como base de datos por defecto para tu instalación de Etherpad. Asegúrate de cambiar los detalles del nombre de la base de datos, el usuario y la contraseña en la siguiente configuración.
"dbType" : "mysql", "dbSettings" : { "user": "etherpaduser", "host": "127.0.0.1", "port": 3306, "password": "StrongPasswordEtherpadDB", "database": "etherpad_lite_db", "charset": "utf8mb4" },
Guarda los cambios y cierra el editor cuando hayas terminado.
Ejecutar Etherpad como servicio Systemd
Tras instalar y configurar Etherpad, crearás un nuevo archivo de servicio systemd para Etherpad. Esto te permitirá ejecutar Etherpad en segundo plano y gestionarlo fácilmente mediante la utilidad systemctl.
Crea un nuevo archivo de servicio systemd /etc/systemd/system/etherpad.service utilizando el editor nano.
sudo nano /etc/systemd/system/etherpad.service
Introduce la siguiente configuración para ejecutar Etherpad en segundo plano como un servicio systemd.
[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 Environment=NODE_ENV=production ExecStart=/usr/bin/node --experimental-worker /opt/etherpad-lite/node_modules/ep_etherpad-lite/node/server.js # use mysql plus a complete settings.json to avoid Service hold-off time over, scheduling restart. Restart=always [Install] WantedBy=multi-user.target
Cuando hayas terminado, guarda el archivo y sal del editor.
A continuación, ejecuta el siguiente comando systemctl para recargar el gestor systemd y aplicar los nuevos servicios systemd.
sudo systemctl daemon-reload
Ahora inicia y activa el servicio etherpad mediante el siguiente comando systemctl. El Etherpad debería ejecutarse en segundo plano como un servicio systemd y se iniciará automáticamente al arrancar el sistema.
sudo systemctl start etherpad sudo systemctl enable etherpad
Por último, verifica el servicio etherpad ejecutando el siguiente comando para asegurarte de que el etherpad se está ejecutando.
sudo systemctl status etherpad
La siguiente salida confirma que el servicio etherpad se está ejecutando, y que lo está haciendo en localhost con el puerto 9001.
Introduce el siguiente comando ss para asegurarte de que el puerto 9001 es utilizado por la aplicación Node.js, que es Etherpad.
ss -tulpn | grep 9001
Llegados a este punto, Etherpad ya está instalado, pero para sacarle el máximo partido tendrás que configurar Nginx como proxy inverso y asegurar Etherpad mediante certificados SSL/TLS.
Configurar Nginx como proxy inverso
En esta sección, crearás un nuevo bloque de servidor Nginx que se utilizará como proxy inverso para Etherpad. Por tanto, asegúrate de que tienes el nombre de dominio apuntando a la dirección IP de tu servidor Debian antes de empezar.
Crea una nueva configuración de bloque de servidor Nginx /etc/nginx/sites-available/etherpad.conf utilizando el comando nano.
sudo nano /etc/nginx/sites-available/etherpad.conf
Introduce la siguiente configuración y asegúrate de cambiar el nombre de dominio por tu dominio de etherpad.
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 $connection_upgrade; } }
Guarda el archivo y sal del editor cuando hayas terminado.
A continuación, ejecuta el siguiente comando para activar el archivo de bloque del servidor etherpad.conf y verificar las configuraciones generales de Nginx.
sudo ln -s /etc/nginx/sites-available/etherpad.conf /etc/nginx/sites-enabled/ sudo nginx -t
Si la configuración de Nginx es correcta y adecuada, deberías obtener una salida como la sintaxis es correcta – la prueba se ha realizado correctamente.
Ahora ejecuta el siguiente comando systemctl para reiniciar Nginx y aplicar los cambios.
sudo systemctl restart nginx
Por último, para asegurarte de que la configuración de Nginx es correcta, visita tu nombre de dominio de Etherpad (es decir: http://etherpad.hwdomain.io/) utilizando tu navegador web preferido. Si se ha realizado correctamente, deberías ver la pantalla de Etherpad.
Proteger Etherpad con certificados SSL/TLS
Tras configurar Nginx como proxy inverso, ahora asegurarás Etherpad con certificados SSL/TLS que se generarán a través de Certbot y Letsencrypt. También configurarás la redirección automática de HTTP a HTTPS dentro de Etherpad mediante el plugin Certbot Nginx.
Ejecuta el siguiente comando apt install para instalar Cetbot y el plugin Cetbot Nginx. Introduce y para confirmar y pulsa ENTER para proceder con la instalación.
sudo apt install certbot python3-certbot-nginx
Una vez instalado Certbot, ejecuta el siguiente comando certbot para generar el Letsencrypt SSL/TLS para tu nombre de dominio Etherpad. Asegúrate de cambiar el nombre de dominio y la dirección de correo electrónico en el siguiente comando.
sudo certbot --nginx --agree-tos --redirect --hsts --staple-ocsp --email [email protected] -d etherpad.hwdomain.io
Una vez finalizado el proceso, los nuevos certificados SSL estarán disponibles en el directorio /etc/letsencrypt/live/domain.com. Y la configuración del bloque del servidor Nginx para Etherpad se configurará automáticamente con HTTPS.
Inicia tu navegador web y visita tu nombre de dominio Etherpad (es decir: http://etherpad.hwdomain.io/). Serás redirigido automáticamente a la conexión segura HTTPS, que se configura mediante el plugin Certbot Nginx.
Ahora introduce el nuevo nombre del pad para asegurarte de que puedes crear un nuevo pad o documento. Haz clic en Aceptar para confirmar.
Una vez creado el pad, disfruta de la colaboración documental autoalojada a través de Etherpad.
Conclusión
Ya está. Has completado la instalación de Etherpad en tu máquina Debian 12. Has instalado Etherpad con el servidor de base de datos MariaDB y el servidor web Nginx. También has asegurado tu Etherpad con certificados SSL/TLS de Letsencrypt y UFW (Uncomplicated Firewall.
A partir de aquí, ya puedes utilizar Etherpad como editor colaborativo con tu amigo. O también puedes instalar plugins/addons de Etherpad para aprovechar la funcionalidad que se adapte a tus necesidades.