Cómo instalar Etherpad en AlmaLinux 9
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 el control de versiones y el formato integrado para equipos. Etherpad es un editor altamente personalizable con el apoyo de varios plugins. Y también soporta formatos de documentos modernos como doc, pdf, odt, markdown, etc.
Este tutorial te mostrará cómo instalar Etherpad en un servidor AlmaLinux 9 con un servidor de base de datos MariaDB y un servidor web Nginx. También protegerás Etherpad mediante certificados SSL para permitir un acceso seguro.
Requisitos previos
Para completar este tutorial, asegúrate de que tienes lo siguiente:
- Un servidor AlmaLinux 9 – Esta demo utiliza un AlmaLinux con el nombre de host almalinux9.
- Un usuario no root con privilegios sudo.
- Un nombre de dominio apuntando a la dirección IP del servidor.
- Certificados SSL generados mediante Letsecnrypt y Certbot.
Instalación de dependencias
Antes de instalar Etherpad, debes instalar algunas de las dependencias que necesita Etherpad, entre las que se incluyen:
- Herramientas de desarrollo
- Node.js y NPM (Node Package Manager)
- Servidor de base de datos MariaDB
- Servidor web Nginx
Sigue estos pasos para instalar las dependencias de Etherpad.
Instalar Herramientas de Desarrollo
En primer lugar, debes instalar«Herramientas de Desarrollo» en tu servidor AlmaLinux. Introduce el siguiente comando dnf para instalar «Herramientas deDesarrollo«, introduce y, y pulsa ENTER para continuar.
sudo dnf group install "Development Tools"
A continuación, ejecuta el siguiente comando para instalar algunas dependencias adicionales. Cuando se te pida, introduce y para confirmar y pulsa ENTER.
sudo dnf install gzip git curl python3-devel openssl-devel pkg-config
Instalar Node.js y NPM
Etherpad es un editor web de colaboración y en tiempo real escrito principalmente con Node.js. Para instalarlo, debes instalar el tiempo de ejecución JavaScript de Node.js y NPM (Node Package Manager).
En el momento de escribir esto, Etherpad requería al menos Node.js v16, que está disponible por defecto en el repositorio appstream de AlmaLinux y puedes instalarlo mediante DNF.
Ejecuta el siguiente comando dnf para instalar Node.js y NPM. Introduce y para confirmar la instalación y pulsa ENTER.
sudo dnf install nodejs npm
Una vez instalado Node.js, ejecuta el siguiente comando para añadir el directorio /usr/local/bin a la variable de entorno PATH. Esto asegurará que algunos archivos binarios que se instalan a través de NPM puedan ejecutarse en el servidor.
echo "export PATH=$PATH:/usr/local/bin" >> ~/.bashrc source ~/.bashrc
A continuación, ejecuta el siguiente comando para localizar ambos archivos binarios de Node.js y NPM.
which node which npm
A continuación, verifica la versión de Node.js y NPM utilizando el siguiente comando.
node --version npm --version
La salida mostrada confirma que Node.js v16 y NPM 8. x están instalados, y que ambos archivos binarios se encuentran en el directorio /bin.
Instalación del servidor MariaDB
Por defecto, el Etherpad instalado utiliza SQLite como base de datos. Puedes utilizar MariaDB/MySQL como base de datos para grandes despliegues de tu instalación de Etherpad.
Ejecuta el siguiente comando dnf para instalar MariaDB Server. Cuando se te solicite, introduce y para confirmar y pulsa INTRO.
sudo dnf install mariadb-server
Una vez instalado MariaDB, ejecuta el siguiente comando para iniciar y habilitar el servicio MariaDB.
sudo systemctl start mariadb sudo systemctl enable mariadb
A continuación, comprueba el estado del servicio MariaDB utilizando el comando siguiente.
sudo systemctl status mariadb
Si el servidor MariaDB se está ejecutando, el resultado debería ser el siguiente:
Instalación del servidor web Nginx
Tras instalar el servidor MariaDB, instalarás el servidor web Nginx que se utilizará como proxy inverso para Etherpad. Así que, antes de seguir adelante, asegúrate de que tienes un nombre de dominio apuntando a la dirección IP de tu servidor y certificados SSL generados a través de Letsencrypt y Certbot.
Ejecuta el siguiente comando dnf para instalar el servidor web Nginx. Cuando se te solicite, introduce para confirmar y pulsa INTRO.
sudo dnf install nginx
Ahora, ejecuta el siguiente comando para iniciar y habilitar el servicio Nginx.
sudo systemctl start nginx sudo systemctl enable nginx
Después, introduce el siguiente comando para verificar el servicio Nginx y asegurarte de que se está ejecutando.
sudo systemctl status nginx
Si el servicio Nginx se está ejecutando, deberías obtener una salida como ésta:
A continuación, ejecuta el siguiente comando para abrir los puertos HTTP y HTTPS en tu servidor.
sudo firewall-cmd --add-service={http,https} --permanent sudo firewall-cmd --reload
Comprueba la lista de puertos y servicios abiertos con el siguiente comando. Deberías ver que tanto HTTP como HTTPS están habilitados en firewalld.
sudo firewall-cmd --list-all
Configurar el servidor MariaDB
En esta sección, protegerás el servidor MariaDB con la utilidad mariadb-secure-installation y, a continuación, crearás una nueva base de datos y un nuevo usuario que se utilizarán para Etherpad.
Ejecuta el siguiente comando para empezar a asegurar el servidor MariaDB.
sudo mariadb-secure-installation
Una vez ejecutado el comando, se te preguntará por las siguientes configuraciones:
- Cambia el método de autenticación para el usuario raíz de MariaDB a unix_socket. Introduce n para No.
Configurar la contraseña raíz de MariaDB. Introduce y para confirmar y escribe la nueva contraseña raíz de MariaDB y repite.
Desactivar el inicio de sesión remoto para el usuario raíz de MariaDB. Introduce y para confirmar.
Eliminar la prueba de base de datos predeterminada de MariaDB. Introduce y para confirmar.
Elimina el usuario anónimo de MariaDB. Introduce y para confirmar.
Por último, vuelve a introducir y para recargar los privilegios de la tabla y aplicar los cambios.
Con el servidor MariaDB protegido, a continuación crearás una nueva base de datos y un nuevo usuario MariaDB.
Accede al servidor MariaDB utilizando el comando mariadb que se indica a continuación.
sudo mariadb -u root -p
Ejecuta las siguientes consultas para crear una nueva base de datos MariaDB y un nuevo usuario para Etherpad. En este ejemplo, crearás una nueva base de datos etherpad_lite_db y el usuario etherpaduser con la contraseña StrongPasswordEtherpadDB.
CREATE DATABASE etherpad_lite_db CHARACTER SET utf8mb4; CREATE USER etherpaduser@localhost IDENTIFIED BY 'StrongPasswordEtherpadDB'; GRANT CREATE,ALTER,SELECT,INSERT,UPDATE,DELETE on etherpad_lite_db.* to etherpaduser@localhost; FLUSH PRIVILEGES;
Ahora, ejecuta la siguiente consulta para verificar los privilegios del usuario MariaDB etherpaduser.
SHOW GRANTS FOR etherpaduser@localhost; quit
Observarás que el usuario MariaDB etherpaduser tiene privilegios para acceder a la base de datos etherpad_lite_db.
Escribe quit para salir de MariaDB.
Descarga e instalación de Etherpad
En esta sección, iniciarás la instalación de Etherpad creando el usuario del sistema, descargando el código fuente de Etherpad, instalando las dependencias para Etherpad, integrando Etherpad con la base de datos MariaDB y, a continuación, verificando la instalación ejecutándola a través de la línea de comandos.
En primer lugar, ejecuta el siguiente comando para crear un nuevo usuario y grupo del sistema‘etherpad‘. Este usuario se utilizará para ejecutar el servicio Etherpad.
sudo groupadd etherpad sudo adduser -r -M -d /opt/etherpad-lite -g etherpad etherpad
Descarga el código fuente de Etherpad mediante git al directorio de destino /opt/etherpad-lite.
git clone --branch master https://github.com/ether/etherpad-lite.git /opt/etherpad-lite
Una vez descargado el código fuente de Etherpad, ejecuta el siguiente comando para cambiar la propiedad del directorio /opt/etherpad-lite al usuario y grupo«etherpad«.
sudo chown -R etherpad:etherpad /opt/etherpad-lite
A continuación, mueve el directorio de trabajo al directorio /opt/etherpad-lite e instala las dependencias de Etherpad utilizando el siguiente comando.
cd /opt/etherpad-lite sudo su -s /bin/bash -c "./bin/installDeps.sh" etherpad
Tras ejecutar el comando, deberías obtener el proceso de instalación de la siguiente manera:
Cuando termine la instalación, abre el archivo settings.json de configuración de Etherpad utilizando el siguiente comando del editor nano.
nano settings.json
Cambia el título de tu instalación de Etherpad.
"title": "Etherpad AlmaLinux 9",
Cambia la dirección IP por defecto para que Etherpad se ejecute a localhost o 127.0.0.1.
"ip": "127.0.0.1", "port": 9001,
Elimina la configuración por defecto de la base de datos que aparece a continuación.
/* *"dbType": "dirty", *"dbSettings": { * "filename": "var/dirty.db" *}, */
Cambia la base de datos de detalles para utilizar el servidor MySQL/MariaDB de esta forma. Y asegúrate de cambiar el nombre de la base de datos, el usuario y la contraseña.
"dbType" : "mysql", "dbSettings" : { "user": "etherpaduser", "host": "localhost", "port": 3306, "password": "StrongPasswordEtherpadDB", "database": "etherpad_lite_db", "charset": "utf8mb4" },
Guarda el archivo y sal del editor cuando hayas terminado.
A continuación, ejecuta el siguiente comando para verificar y ejecutar el Etherpad.
/bin/node --experimental-worker /opt/etherpad-lite/node_modules/ep_etherpad-lite/node/server.js
Si la configuración de la base de datos y la instalación de Etherpad se han realizado correctamente, se mostrará la siguiente salida:
Pulsa Ctrl+c para finalizar el proceso.
Ejecutar Etherpad como servicio Systemd
Con el Etherpad instalado, ahora vas a configurar Etherpad como un servicio systemd. Esto te permitirá ejecutar Etherpad en segundo plano y gestionarlo fácilmente a través de la línea de comandos systemctl.
Para empezar, crea un nuevo archivo de servicio systemd /lib/systemd/system/etherpad.service utilizando el siguiente comando del editor nano.
sudo nano /lib/systemd/system/etherpad.service
Introduce la siguiente configuración en el archivo.
[Unit] Description=Etherpad-lite, the collaborative editor. After=syslog.target network.target mariadb.service nginx.service [Service] Type=simple User=etherpad Group=etherpad WorkingDirectory=/opt/etherpad-lite Environment=NODE_ENV=production ExecStart=/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
Guarda y cierra el archivo cuando hayas terminado.
Ahora, ejecuta el siguiente comando para recargar el gestor systemd y aplicar el archivo de servicio Etherpad a tu sistema.
sudo systemctl daemon-reload
A continuación, inicia y habilita el servicio Etherpad utilizando el siguiente comando.
sudo systemctl start etherpad sudo systemctl enable etherpad
Verifica el servicio Etherpad utilizando el siguiente comando. Si el servicio Etherpad se está ejecutando, deberías obtener una salida como«activo (en ejecución)«.
sudo systemctl status etherpad
También puedes verificar la lista de puertos abiertos en tu sistema utilizando el siguiente comando. Y deberías ver que Etherpad utiliza el puerto 9001.
ss -tulpn | grep 9001
Configurar Nginx como proxy inverso
Llegados a este punto, el Etherpad está funcionando en el puerto 9001. Para hacerlo accesible a los usuarios finales, puedes utilizar Nginx, que se utilizará como proxy inverso. Antes de empezar, asegúrate de que tienes el nombre de dominio que se utilizará para Etherpad, y asegúrate de que has generado certificados SSL a través de Letsencrypt y Certbot.
Crea una nueva configuración de bloque de servidor Nginx /etc/nginx/conf.d/etherpad.conf utilizando el comando del editor nano que aparece a continuación.
sudo nano /etc/nginx/conf.d/etherpad.conf
Introduce la siguiente configuración y asegúrate de cambiar los detalles del nombre de dominio y la ruta de los certificados SSL.
# enforce HTTPS server { listen 80; server_name etherpad.hwdomain.io; return 301 https://$host$request_uri; } # we're in the http context here map $http_upgrade $connection_upgrade { default upgrade; '' close; } server { listen 443 ssl http2; server_name etherpad.hwdomain.io; access_log /var/log/nginx/eplite.access.log; error_log /var/log/nginx/eplite.error.log; ssl_certificate /etc/letsencrypt/live/etherpad.hwdomain.io/fullchain.pem; ssl_certificate_key /etc/letsencrypt/live/etherpad.hwdomain.io/privkey.pem; ssl_session_timeout 5m; ssl_protocols TLSv1.2; ssl_prefer_server_ciphers on; ssl_ciphers "EECDH+ECDSA+AESGCM EECDH+aRSA+AESGCM EECDH+ECDSA+SHA384 EECDH+ECDSA+SHA256 EECDH+aRSA+SHA384 EECDH+aRSA+SHA256 EECDH+aRSA+RC4 EECDH EDH+aRSA RC4 !aNULL !eNULL !LOW !3DES !MD5 !EXP !PSK !SRP !DSS"; 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 cierra el editor cuando hayas terminado.
Ahora, ejecuta el siguiente comando para asegurarte de que tienes la configuración correcta y adecuada. Si es correcta, deberías recibir un mensaje como «Lasintaxis es correcta – la prueba se ha realizado correctamente«.
sudo nginx -t
A continuación, introduce el siguiente comando para reiniciar el servicio Nginx y aplicar los cambios.
sudo systemctl restart nginx
Después, inicia tu navegador web y visita el nombre de dominio de instalación de Etherpad (es decir: https://etherpad.hwdomain.io/). Deberías ver la página de inicio por defecto de tu editor colaborativo Etherpad.
Ahora crea un nuevo pad escribiendo el nombre del pad y haz clic en Aceptar.
A continuación puedes ver que ya puedes empezar a utilizar Etherpad como editor colaborativo.
Conclusión
Enhorabuena, has completado la instalación de Etherpad con la base de datos MariaDB y el servidor web Nginx en un servidor AlmaLinux 9. Además, has asegurado Etherpad con certificados SSL. Ahora puedes empezar a utilizar Etherpad como editor colaborativo principal con tus amigos/grupos/equipo.