Cómo instalar Etherpad en Ubuntu 20.04

etherpad

Etherpad es un editor en línea en tiempo real basado en la web que permite a los escritores editar simultáneamente un documento de texto y monitorear todas las ediciones en tiempo real. Es de código abierto, personalizable y con la capacidad de mostrar el texto de cada autor en su propio color. También proporciona una API HTTP que puede integrar con sus aplicaciones para administrar usuarios y grupos. Ofrece varios complementos que lo ayudan a integrar notificaciones por correo electrónico, carga de archivos, videollamadas en Etherpad. En este tutorial, le mostraremos cómo instalar el editor basado en web Etherpad en el servidor Ubuntu 20.04.

requisitos previos

  • Un servidor con Ubuntu 20.04.
  • Un nombre de dominio v√°lido apuntado con la IP de su servidor.
  • Se configura una contrase√Īa de root en el servidor.

Empezando

Antes de comenzar, deber√° actualizar los paquetes de su sistema a la √ļltima versi√≥n. Puede actualizarlos ejecutando el siguiente comando:

apt-get update -y

Una vez que todos los paquetes estén actualizados, deberá instalar algunas dependencias en su sistema. Puede instalarlos todos con el siguiente comando:

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

Una vez que todos los paquetes estén instalados, puede continuar con el siguiente paso.

Instalar y configurar la base de datos MariaDB

Etherpad utiliza MariaDB como base de datos. Por lo tanto, deber√° instalar el servidor MariaDB en su sistema. Puedes instalarlo con el siguiente comando:

apt-get install mariadb-server -y

Después de instalar MariaDB, inicie sesión en el shell de MariaDB con el siguiente comando:

mysql

Después de iniciar sesión, cree 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, elimine los privilegios y salga de MariaDB con el siguiente comando:

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

En este punto, su base de datos est√° configurada para Etherpad. Ahora puede continuar con el siguiente paso.

Instalar Node.js

Etherpad se basa en Node.js. Por lo tanto, deber√° instalar Node.js en su sistema. De forma predeterminada, la √ļltima versi√≥n de Node.js no est√° disponible en el repositorio est√°ndar de Ubuntu 20.04. Por lo tanto, deber√° agregar el repositorio Node.js a su sistema. Puedes agregarlo con el siguiente comando:

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

Una vez que se agrega el repositorio, instale Node.js con el siguiente comando:

apt-get install nodejs -y

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

node -v

Deberías obtener el siguiente resultado:

v14.15.0

Una vez que haya terminado, puede continuar con el siguiente paso.

Instalar y configurar Etherpad

Antes de instalar Etherpad. Se recomienda ejecutar Etherpad como un usuario independiente. Puede crear un nuevo usuario para Etherpad con el siguiente comando:

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

Se le pedir√° que establezca 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, proporcione los permisos adecuados al directorio de inicio de Etherpad con el siguiente comando:

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

A continuaci√≥n, cambie el usuario a Etherpad y descargue la √ļltima versi√≥n de Etherpad desde el repositorio de Git usando el siguiente comando:

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

Luego, cambie el directorio al directorio descargado y ejecute Etherpad usando el siguiente comando:

cd etherpad-lite
bin/run.sh

Esto instalará todas las dependencias e iniciará el servidor Etherpad. Una vez que el servidor se haya iniciado correctamente, debería obtener el siguiente resultado:

[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

Luego, presione CTRL + C para detener el servidor. A continuación, deberá editar el archivo settings.json y definir su base de datos y la configuración de administración:

nano settings.json

Eliminar las siguientes líneas:

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

Cambie 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"
  },

Cambie la línea trustProxy a verdadero:

  "trustProxy": true,

Defina una contrase√Īa para el usuario administrador: Anuncio

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

Guarde y cierre el archivo, luego instale las dependencias requeridas con el siguiente comando:

./bin/installDeps.sh

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

exit

En este punto, Etherpad est√° instalado y configurado. Ahora puede continuar con el siguiente paso.

Crear un archivo de servicio de Systemd para Etherpad

A continuación, deberá crear un archivo de servicio systemd para administrar el servicio Etherpad. Puedes crearlo con el siguiente comando:

nano /etc/systemd/system/etherpad.service

Agregue 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

Guarde y cierre el archivo, luego vuelva a cargar el demonio systemd ejecutando el siguiente comando:

systemctl daemon-reload

A continuación, inicie el servicio Etherpad y habilítelo para que se inicie al reiniciar el sistema con el siguiente comando:

systemctl start etherpad
systemctl enable etherpad

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

systemctl status etherpad

Debería ver el siguiente resultado:

? 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 se inicia y escucha en el puerto 9001. A continuación, deberá instalar y configurar Nginx como un proxy inverso para acceder a Etherpad. Primero, instale Nginx con el siguiente comando:

apt-get install nginx -y

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

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

Agregue 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;
   }
}

Guarde y cierre el archivo, luego active 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, compruebe si hay alg√ļn error de sintaxis en Nginx con el siguiente comando:

nginx -t

Deberías obtener el siguiente resultado:

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

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

systemctl restart nginx

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

systemctl status nginx

Deberías obtener el siguiente resultado:

? 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.

Acceder a Etherpad

Ahora, abra su navegador web y escriba la URL http://etherpad.midominio.com. Ser√° redirigido a la siguiente p√°gina:

etherpad

Proporcione el nombre de su página y haga clic en el OK botón. Debería ver su tablero de Etherpad en la siguiente página:

Editor en línea de Etherpad

Conclusión

¡Felicidades! Ha instalado y configurado correctamente Etherpad con Nginx como proxy inverso en el servidor Ubuntu 20.04. Puede usar el Etherpad en el entorno de producción fácilmente. No dude en preguntarme si tiene alguna pregunta.

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *