Cómo instalar el editor colaborativo en tiempo real Etherpad en Ubuntu 18.04

Etherpad es un editor colaborativo en tiempo real basado en Node.js. Es un editor colaborativo de código abierto, basado en la web para el acceso de múltiples usuarios, con la capacidad de importar/exportar a varios formatos de archivos de oficina y un editor en línea altamente personalizable.

En este tutorial, te guiaré paso a paso para instalar y configurar Etherpad-lite en el servidor Ubuntu 18.04. Instalaremos Etherpad-lite con MySQL como base de datos, el servidor web Nginx como proxy inverso y habilitaremos la conexión segura HTTPS en él.

Requisitos previos

  • Servidor Ubuntu 18.04
  • Privilegios de root

¿Qué vamos a hacer?

  1. Instalar las dependencias de los paquetes
  2. Instalar Nodejs
  3. Instalar y configurar MySQL
  4. Descargar Etherpad
  5. Configurar Etherpad
  6. Configurar Etherpad como servicio
  7. Configurar Nginx como proxy inverso para Etherpad
  8. Configurar el cortafuegos UFW
  9. Prueba de

Paso 1 – Instalar las dependencias de los paquetes

El primer paso que haremos en esta guía es instalar todas las dependencias de los paquetes para la instalación de Nodejs.

Ejecuta el siguiente comando apt.

sudo apt install gzip git curl python libssl-dev pkg-config gcc g++ make build-essential -y

Espera a que se instalen todos.

Paso 2 – Instalar Nodejs

Etherpad requiere Node.js >= 6.9, y en este paso instalaremos Nodejs 9.11 que se puede instalar desde el repositorio nodesource.

Añade el repositorio de Nodejs de nodesource e instala el paquete Node.js utilizando los siguientes comandos.

curl -sL https://deb.nodesource.com/setup_9.x | sudo -E bash -
sudo apt install -y nodejs

Después de esto, comprueba los comandos nodejs y npm.

nodejs --version
npm --version

El Node.js v9.11 ha sido instalado en el servidor Ubuntu 18.04.

Instalar node.js

Paso 3 – Instalar y configurar MySQL

En este tutorial, utilizaremos MySQL como base de datos para Etherpad.

Instala el servidor de bases de datos MySQL utilizando el comando apt que aparece a continuación.

sudo apt install mysql-server mysql-client

Una vez completada la instalación, inicia el servicio mysql y habilítalo para que se inicie siempre al arrancar el sistema.

sudo systemctl start mysql
sudo systemctl enable mysql

El servidor MySQL ha sido instalado.

A continuación, configuraremos la contraseña de root de mysql y crearemos una nueva base de datos y un nuevo usuario para nuestra instalación de etherpad.

Para configurar la contraseña raíz de MySQL, ejecuta el siguiente comando.

mysql_secure_installation

Escribe tu contraseña fuerte de root de mysql.

Ahora entra en el shell de mysql utilizando el usuario root.

mysql -u root -p

Crea una nueva base de datos llamada ‘etherpad_db’ y el usuario ‘hakase’, y ejecuta las consultas mysql que aparecen a continuación.

create database etherpad_db;
grant all privileges on etherpad_db.* to hakase@localhost identified by 'Hakase321@#';
flush privileges;

La base de datos MySQL para la instalación de etherpad ha sido creada.

Instalar MySQL

Paso 4 – Descargar Etherpad

En este paso, crearemos un nuevo usuario y descargaremos el código fuente de etherpad.

Crea un nuevo usuario llamado ‘etherpad’ y accede a él.

useradd -m -s /bin/bash etherpad
su - etherpad

Ahora clona el repositorio de etherpad.

git clone git://github.com/ether/etherpad-lite.git

Ve al directorio ‘etherpad-lite/’ y ejecuta el script bash para iniciar etherpad.

cd etherpad-lite/
bin/run.sh

Obtendrás el resultado que se muestra a continuación.

Descargar Etherpad

Abre tu navegador web y escribe la dirección IP del servidor con el puerto ‘9001’.

http://192.168.33.10:9001/

Y verás la página de inicio de etherpad.

Acceso a Etherpad

Vuelve a tu terminal y pulsa ‘Ctrl+c’ para salir de la aplicación.

Paso 5 – Configurar Etherpad

En este paso, haremos la configuración básica del editor colaborativo etherpad.

Accede al usuario de etherpad y ve al directorio ‘etherpad-lite’.

su - etherpad
cd etherpad-lite/

Edita la configuración ‘settings.json’ utilizando el editor vim.

vim settings.json

Cambia la dirección ip a ‘127.0.0.1’ o localhost, porque ejecutaremos el etherpad en el proxy inverso Nginx.

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

Ahora desactiva la base de datos sucia por defecto añadiendo el comentario ‘/* …. */’, y pega la configuración de la base de datos MySQL.

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

Configuración de la base de datos MySQL.

  "dbType" : "mysql",
  "dbSettings" : {
                   "user"    : "hakase",
                   "host"    : "localhost",
                   "port"    : 3306,
                   "password": "Hakase321@#",
                   "database": "etherpad_db",
                   "charset" : "utf8mb4"
                 },

Configuración del Etherpad

A continuación, habilitaremos el usuario admin eliminando el comentario de esas líneas y cambiaremos el valor de la contraseña con una nueva contraseña.

  "users": {
    "admin": {
      // "password" can be replaced with "hash" if you install ep_hash_auth
      "password": "hakase123@#",
      "is_admin": true
    },
    "user": {
      // "password" can be replaced with "hash" if you install ep_hash_auth
      "password": "aqwe123@#",
      "is_admin": false
    }
  },

Configurar contraseña

Guarda y sal.

La configuración básica de etherpad se ha completado.

Paso 6 – Configurar Etherpad como servicio

Ahora vamos a ejecutar etherpad como un servicio systemd en nuestro sistema ubuntu.

Ve al directorio ‘/etc/systemd/system’ y crea un nuevo archivo de servicio llamado ‘etherpad.service’.

cd /etc/systemd/system/
vim etherpad.service

Pega las configuraciones de abajo.

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

[Service]
Type=simple
User=etherpad
Group=etherpad
WorkingDirectory=/home/etherpad/etherpad-lite
Environment=NODE_ENV=production
ExecStart=/usr/bin/nodejs /home/etherpad/etherpad-lite/node_modules/ep_etherpad-lite/node/server.js
Restart=always # use mysql plus a complete settings.json to avoid Service hold-off time over, scheduling restart.

[Install]
WantedBy=multi-user.target

Guarda y sal.

Vuelve a cargar las listas de servicios de systemd.

sudo systemctl daemon-reload

Inicia el servicio etherpad y habilítalo para que se inicie cada vez al arrancar el sistema.

sudo systemctl start etherpad
sudo systemctl enable etherpad

Y el ether está en marcha como servicio en localhost ip con el puerto 9001 por defecto.

Ejecutar Etherpad como servicio

Comprueba el servicio con los siguientes comandos.

sudo systemctl status etherpad
netstat -plntu

Paso 7 – Instalar y configurar Nginx como proxy inverso

En este paso, instalaremos y configuraremos el servidor web Nginx como proxy inverso para el servicio etherpad.

Instala el servidor web nginx utilizando el comando apt que aparece a continuación.

sudo apt install nginx -y

Una vez completada la instalación, ve al directorio ‘/etc/nginx/sites-available’ y crea un nuevo host virtual ‘etherpad’.

cd /etc/nginx/sites-available/
vim etherpad

Pega las configuraciones de abajo.

server {
    listen      80;
    server_name pad.hakase.io;
    rewrite     ^(.*)   https://$server_name$1 permanent;
}

# we're in the http context here
map $http_upgrade $connection_upgrade {
  default upgrade;
  ''      close;
}

server {
        listen       443;
        server_name  pad.hakase.io;

        access_log  /var/log/nginx/eplite.access.log;
        error_log   /var/log/nginx/eplite.error.log;

        ssl                  on;
        ssl_certificate      /etc/nginx/ssl/fullchain.pem;
        ssl_certificate_key  /etc/nginx/ssl/privkey.pem;

        ssl_session_timeout  5m;

        ssl_protocols TLSv1 TLSv1.1 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://localhost:9001/;
            proxy_set_header       Host $host;
            proxy_pass_header Server;
            # be careful, this line doesn't override any proxy_buffering on set in a conf.d/file.conf
            proxy_buffering off;
            proxy_set_header X-Real-IP $remote_addr;  # http://wiki.nginx.org/HttpProxyModule
            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_set_header Host $host;  # pass the host header                                                  
            proxy_http_version 1.1;  # recommended with keepalive connections                                                   
            # WebSocket proxying - from http://nginx.org/en/docs/http/websocket.html
            proxy_set_header Upgrade $http_upgrade;
            proxy_set_header Connection $connection_upgrade;

        }
}

Guarda y sal.

Nota:

  • Asegúrate de cambiar la ruta del SSL con tus propios certificados ssl.
  • Cambia el dominio de etherpad ‘pad.hakase.io’ por tu propio nombre de dominio.

Ahora activa el host virtual de etherpad y prueba la configuración.

ln -s /etc/nginx/sites-available/etherpad /etc/nginx/sites-enabled/
nginx -t

Asegúrate de que no hay ningún error, y luego inicia el servicio nginx y habilítalo para que se inicie siempre al arrancar el sistema.

sudo systemctl restart nginx
sudo systemctl enable nginx

Etherpad detrás del proxy nginx

La instalación y configuración de Nginx como proxy inverso de etherpad se ha completado con éxito.

Paso 8 – Configurar el cortafuegos UFW

Para la configuración del cortafuegos, sólo queremos abrir los servicios de puerto SSH, HTTP y HTTPS.

Ejecuta los siguientes comandos ufw.

sudo fuw allow ssh
sudo ufw allow http
sudo ufw allow https

A continuación, activa el cortafuegos ufw.

sudo ufw enable

Y la configuración del cortafuegos ufw se ha completado.

Paso 9 – Prueba

Abre tu navegador web y escribe el nombre de dominio de etherpad, el mío:http://pad.hakase.io/

Ahora serás redirigido a la conexión segura HTTS.

Acceso a Etherpad

Crea un nuevo pad escribiendo el nombre del pad en la casilla y haz clic en el botón «Aceptar».

Y obtendrás el editor de Etherpad como se indica a continuación.

Editor de Etherpad

A continuación, abre la URL del administrador de etherpad. La mía eshttps://pad.hakase.io/admin/

Se te pedirá el nombre de usuario y la contraseña del administrador. Escribe tu propio usuario y contraseña, y haz clic en el botón Iniciar sesión.

Área de administración de Etherpad

Y obtendrás la página de administración de Etherpad por defecto que aparece a continuación.

– Configuración de Etherpad settings.json

Configuración de Etherpad settings.json

– Administrador de plugins de Etherpad

Gestor de plugins

La instalación de Etherpad con MySQL y el proxy inverso Nginx en Ubuntu 18.04 se ha completado con éxito.

Referencia

También te podría gustar...