Cómo instalar Etherpad en Ubuntu 20.04

Etherpad es un editor online en tiempo real basado en la web que permite a los escritores editar simultáneamente un documento de texto y supervisar todas las ediciones en tiempo real. Es de código abierto, personalizable y con capacidad para mostrar el texto de cada autor en su propio color. También proporciona una API HTTP que puedes integrar con tus aplicaciones para gestionar usuarios y grupos. Ofrece varios plugins que te ayudan a integrar las notificaciones por correo electrónico, la subida de archivos y las videollamadas en Etherpad. En este tutorial, te mostraremos cómo instalar el editor web Etherpad en un servidor Ubuntu 20.04.

Requisitos previos

  • Un servidor con Ubuntu 20.04.
  • Un nombre de dominio válido apuntado con la IP de tu servidor.
  • Una contraseña de root configurada el servidor.

Cómo empezar

Antes de empezar, tendrás que actualizar los paquetes de tu sistema a la última versión. Puedes actualizarlos ejecutando el siguiente comando:

apt-get update -y

Una vez actualizados todos los paquetes, necesitarás instalar algunas dependencias en tu sistema. Puedes instalarlas todas con el siguiente comando:

apt-get install gnupg2 git unzip libssl-dev pkg-config gcc g++ make build-essential -y

Una vez instalados todos los paquetes, puedes pasar al siguiente paso.

Instalar y configurar la base de datos MariaDB

Etherpad utiliza MariaDB como base de datos. Así que tendrás que instalar el servidor MariaDB en tu sistema. Puedes instalarlo con el siguiente comando:

apt-get install mariadb-server -y

Después de instalar MariaDB, entra en el shell de MariaDB con el siguiente comando:

mysql

Después de entrar, crea una base de datos y un usuario para Etherpad con el siguiente comando:

MariaDB [(none)]> create database etherpad;
MariaDB [(none)]> grant all privileges on etherpad.* to [email protected] identified by 'password';

A continuación, vacía los privilegios y sal de MariaDB con el siguiente comando:

MariaDB [(none)]> flush privileges;
MariaDB [(none)]> exit;

En este punto, tu base de datos está configurada para Etherpad. Ahora puedes pasar al siguiente paso.

Instalar Node.js

Etherpad se basa en Node.js. Así que tendrás que instalar Node.js en tu sistema. Por defecto, la última versión de Node.js no está disponible en el repositorio estándar de Ubuntu 20.04. Así que tendrás que añadir el repositorio de Node.js a tu sistema. Puedes añadirlo con el siguiente comando:

curl -sL https://deb.nodesource.com/setup_14.x -o nodesource_setup.sh
bash nodesource_setup.sh

Una vez añadido el repositorio, instala el Node.js con el siguiente comando:

apt-get install nodejs -y

Después de instalar Node.js, verifica la versión instalada de Node.js con el siguiente comando:

node -v

Deberías obtener la siguiente salida:

v14.15.0

Una vez que hayas terminado, puedes pasar al siguiente paso.

Instalar y configurar Etherpad

Antes, instala Etherpad. Se recomienda ejecutar Etherpad como un usuario independiente. Puedes crear un nuevo usuario para Etherpad con el siguiente comando:

adduser --home /opt/etherpad --shell /bin/bash etherpad

Se te pedirá que establezcas una contraseña como se muestra a continuación:

Adding user `etherpad' ...
Adding new group `etherpad' (1000) ...
Adding new user `etherpad' (1000) with group `etherpad' ...
Creating home directory `/opt/etherpad' ...
Copying files from `/etc/skel' ...
New password: 
Retype new password: 
passwd: password updated successfully
Changing the user information for etherpad
Enter the new value, or press ENTER for the default
	Full Name []: Hitesh       
	Room Number []: 1
	Work Phone []: 
	Home Phone []: 
	Other []: 
Is the information correct? [Y/n] Y

A continuación, proporciona los permisos adecuados al directorio principal de Etherpad con el siguiente comando:

install -d -m 755 -o etherpad -g etherpad /opt/etherpad

A continuación, cambia el usuario a Etherpad y descarga la última versión de Etherpad del repositorio Git con el siguiente comando:

su - etherpad
git clone --branch master https://github.com/ether/etherpad-lite.git

A continuación, cambia el directorio al directorio descargado y ejecuta el Etherpad utilizando el siguiente comando:

cd etherpad-lite
bin/run.sh

Esto instalará todas las dependencias e iniciará el servidor de Etherpad. Una vez que el servidor se inicie con éxito, deberías obtener la siguiente salida:

[2020-11-11 06:46:44.783] [INFO] console - Your Etherpad version is 1.8.6 (2c8769a)
[2020-11-11 06:46:44.958] [INFO] console - You can access your Etherpad instance at http://0.0.0.0:9001/
[2020-11-11 06:46:44.958] [WARN] console - Admin username and password not set in settings.json.  To access admin please uncomment and edit 'users' in settings.json
[2020-11-11 06:46:44.958] [WARN] console - Etherpad is running in Development mode.  This mode is slower for users and less secure than production mode.  You should set the NODE_ENV environment variable to production by using: export NODE_ENV=production

A continuación, pulsa CTRL + C para detener el servidor. A continuación, tendrás que editar el archivo settings.json y definir la configuración de la base de datos y del administrador:

nano settings.json

Elimina las siguientes líneas:

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

Cambia la configuración de MySQL como se muestra a continuación:

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

Cambia la línea trustProxy a true:

  "trustProxy": true,

Define una contraseña para el usuario administrador:

  "users": {
    "admin": {
      "password": "adminpassword",
      "is_admin": true
    },

Guarda y cierra el archivo y luego instala las dependencias necesarias con el siguiente comando:

./bin/installDeps.sh

Una vez instaladas todas las dependencias, sal del usuario Etherpad con el siguiente comando:

exit

En este punto, Etherpad está instalado y configurado. Ahora puedes pasar al siguiente paso.

Crear un archivo de servicio Systemd para Etherpad

A continuación, tendrás que crear un archivo de servicio systemd para gestionar el servicio Etherpad. Puedes crearlo con el siguiente comando:

nano /etc/systemd/system/etherpad.service

Añade las siguientes líneas:

[Unit]
Description=Etherpad-lite, the collaborative editor.
After=syslog.target network.target

[Service]
Type=simple
User=etherpad
Group=etherpad
WorkingDirectory=/opt/etherpad/etherpad-lite
Environment=NODE_ENV=production

ExecStart=/usr/bin/node /opt/etherpad/etherpad-lite/src/node/server.js

Restart=always

[Install]
WantedBy=multi-user.target

Guarda y cierra el archivo y luego vuelve a cargar el demonio systemd ejecutando el siguiente comando:

systemctl daemon-reload

A continuación, inicia el servicio Etherpad y permite que se inicie al reiniciar el sistema con el siguiente comando:

systemctl start etherpad
systemctl enable etherpad

También puedes verificar el estado del servicio Etherpad con el siguiente comando:

systemctl status etherpad

Deberías ver la siguiente salida:

? etherpad.service - Etherpad-lite, the collaborative editor.
     Loaded: loaded (/etc/systemd/system/etherpad.service; disabled; vendor preset: enabled)
     Active: active (running) since Wed 2020-11-11 06:50:49 UTC; 4s ago
   Main PID: 12269 (node)
      Tasks: 13 (limit: 4691)
     Memory: 119.1M
     CGroup: /system.slice/etherpad.service
             ??12269 /usr/bin/node /opt/etherpad/etherpad-lite/src/node/server.js

Configurar Nginx para Etherpad

En este punto, Etherpad está iniciado y escuchando en el puerto 9001. A continuación, tendrás que instalar y configurar Nginx como proxy inverso para acceder a Etherpad. Primero, instala Nginx con el siguiente comando:

apt-get install nginx -y

A continuación, crea un nuevo archivo de configuración del host virtual Nginx con el siguiente comando:

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

Añade las siguientes líneas:

upstream etherpad {
   server localhost:9001;
   keepalive 32;
}

server {
   listen 80;
   server_name etherpad.mydomain.com;

   location / {
       client_max_body_size 50M;
       proxy_set_header X-Real-IP $remote_addr;
       proxy_http_version 1.1;
       proxy_pass http://etherpad;
   }
}

Guarda y cierra el archivo y luego activa el archivo de configuración del host virtual Nginx con el siguiente comando:

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

A continuación, comprueba si Nginx tiene algún error de sintaxis con el siguiente comando:

nginx -t

Deberías obtener la siguiente salida:

nginx: the configuration file /etc/nginx/nginx.conf syntax is ok
nginx: configuration file /etc/nginx/nginx.conf test is successful

A continuación, reinicia el servicio Nginx para aplicar los cambios:

systemctl restart nginx

También puedes verificar el estado de Nginx con el siguiente comando:

systemctl status nginx

Deberías obtener la siguiente salida:

? nginx.service - A high performance web server and a reverse proxy server
     Loaded: loaded (/lib/systemd/system/nginx.service; enabled; vendor preset: enabled)
     Active: active (running) since Wed 2020-11-11 06:53:44 UTC; 6s ago
       Docs: man:nginx(8)
    Process: 12984 ExecStartPre=/usr/sbin/nginx -t -q -g daemon on; master_process on; (code=exited, status=0/SUCCESS)
    Process: 12985 ExecStart=/usr/sbin/nginx -g daemon on; master_process on; (code=exited, status=0/SUCCESS)
   Main PID: 13001 (nginx)
      Tasks: 3 (limit: 4691)
     Memory: 3.5M
     CGroup: /system.slice/nginx.service
             ??13001 nginx: master process /usr/sbin/nginx -g daemon on; master_process on;
             ??13002 nginx: worker process
             ??13003 nginx: worker process

Nov 11 06:53:44 ubuntu2004 systemd[1]: Starting A high performance web server and a reverse proxy server...
Nov 11 06:53:44 ubuntu2004 systemd[1]: Started A high performance web server and a reverse proxy server.

Accede a Etherpad

Ahora, abre tu navegador web y escribe la URL http://etherpad.mydomain.com. Serás redirigido a la siguiente página:

Etherpad

Proporciona el nombre de tu página y haz clic en el botón Aceptar. Deberías ver tu panel de control de Etherpad en la siguiente página:

Editor en línea de Etherpad

Conclusión

Enhorabuena! has instalado y configurado con éxito Etherpad con Nginx como proxy inverso en el servidor Ubuntu 20.04. Puedes el Etherpad en el entorno de producción fácilmente. No dudes en preguntarme si tienes alguna duda.

También te podría gustar...