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
- 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.
Cómo empezar
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. Puede 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. Puede agregarlo con el siguiente comando:
curl -sL https://deb.nodesource.com/setup_14.x -o nodesource_setup.sh
bash nodesource_setup.sh
Una vez agregado 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
Elimina 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:
"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 que todas las dependencias estén instaladas, salga 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 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.
Acceso a Etherpad
Ahora, abra su navegador web y escriba la URL http://etherpad.mydomain.com . Será redirigido a la siguiente página:
Proporcione el nombre de su página y haga clic en Aceptar botón. Debería ver su panel de Etherpad en la siguiente página:
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. Siéntase libre de preguntarme si tiene alguna pregunta.