En este artículo, le mostraremos cómo instalar Etherpad en un servidor Debian 9 administrado.
Etherpad es un editor en tiempo real basado en la web y viene como un paquete de código abierto. Esta aplicación permite a los usuarios editar documentos simultáneamente en tiempo real y ver las diferencias mediante el uso de texto en color. Etherpad también tiene un cuadro de chat que permite a los usuarios comunicarse fácilmente entre sí, lo que mejora aún más la productividad. No llevará mucho tiempo instalarlo, así que comencemos
Paso 1:Conéctese a su servidor
Antes de comenzar, debe conectarse a su servidor a través de SSH como usuario raíz o como cuenta de administrador. Para hacer esto, use el siguiente comando:
ssh root@IP_ADDRESS -p PORT_NUMBER
Por supuesto, deberá reemplazar IP_ADDRESS
y PORT_NUMBER
con la dirección IP de su servidor respectivo y el número de puerto SSH. Si es necesario, reemplace "root" con el nombre de usuario de su cuenta de administrador.
Una vez que haya iniciado sesión, asegúrese de que su servidor esté actualizado ejecutando los siguientes comandos:
apt update apt upgrade
Paso 2:Instalar dependencias
Después de iniciar sesión correctamente, deberá ejecutar el siguiente comando para poder instalar todas las dependencias para la instalación de Node.js.
apt install gzip git curl python libssl-dev pkg-config gcc g++ make build-essential -y
Paso 3:Instalar Node.js
Etherpad requiere Node.js versión 8.9.0 o superior, por lo que en este tutorial instalaremos la última versión de Node.js (al momento de escribir este tutorial).
Habilite el repositorio de NodeSource con el siguiente comando curl:
curl -sL https://deb.nodesource.com/setup_11.x | sudo bash -
Ahora, puede instalar Node.js con el siguiente comando:
apt install -y nodejs
Puede verificar las versiones de nodejs y npm usando los siguientes comandos.
nodejs --version npm --version
Paso 4:Instalar y configurar MySQL
Un servidor de base de datos es uno de los requisitos para ejecutar Etherpad. Puede instalar MySQL, que es un excelente servidor de base de datos de código abierto. Escriba el siguiente comando para instalar MySQL en su servidor:
apt install mysql-server mysql-client
Una vez que MySQL esté instalado en su servidor, puede usar los siguientes comandos para detener, iniciar y habilitar el servicio MySQL.
systemctl start mysql systemctl stop mysql systemctl enable mysql
El siguiente comando es opcional, pero recomendado por nosotros. Puede ejecutar el comando si desea proteger el servidor MySQL deshabilitando el acceso raíz remoto, eliminando la base de datos de prueba y configurando una contraseña raíz para MySQL.
mysql_secure_installation
Cuando se le solicite, responda las siguientes preguntas siguiendo la guía.
Enter current password for root (enter for none): Just press the [Enter] key, as no password is set by default. Set root password? [Y/n]: Y New password: Enter your password Re-enter new password: Repeat your password Remove anonymous users? [Y/n]: Y Disallow root login remotely? [Y/n]: Y Remove test database and access to it? [Y/n]: Y Reload privilege tables now? [Y/n]: Y
Reinicie el servidor MySQL para que los cambios surtan efecto.
systemctl restart mysql
Ahora debería poder iniciar sesión en el shell de MySQL con el comando:
mysql -u root -p
Luego escriba la contraseña que creó anteriormente para iniciar sesión. Una vez que esté en el shell de MySQL, puede usar el siguiente comando y crear una base de datos llamada etherpad_db
para la aplicación Etherpad.
CREATE DATABASE etherpad_db;
Para otorgar al usuario etherpad_user acceso completo a etherpad_db, ejecute el comando:
GRANT ALL PRIVILEGES ON etherpad_db.* TO etherpad_user@localhost IDENTIFIED BY 'Str0n9Pas$worD';
FLUSH PRIVILEGES; EXIT;
Paso 5:Descargue e instale Etherpad
Con los siguientes comandos, creará un nuevo usuario llamado etherpad y cambiará a ese usuario.
useradd -m -s /bin/bash etherpad su - etherpad
Ejecute el siguiente comando git y clone el repositorio de etherpad.
git clone git://github.com/ether/etherpad-lite.git
Después de clonar con éxito el repositorio de etherpad, puede ingresar al directorio etherpad-lite y ejecutar bin/run.sh
secuencia de comandos para iniciar Etherpad.
cd etherpad-lite/ bin/run.sh
Etherpad ahora se ha iniciado temporalmente. Para ver la página de inicio de Etherpad, puede abrir su navegador web preferido y escribir la dirección IP pública de su servidor con el puerto 9001.
http://server_IP_address:9001/
Debería poder ver la página de inicio de Etherpad.
Para detener la aplicación, puede presionar 'Ctrl+c' en su terminal. El problema con esto es que el servicio solo se ejecuta temporalmente, solo mientras está abierto en la sesión de su terminal. Para que el servidor se ejecute de forma persistente, debe crear un servicio para él. Esto se explica en Paso 7 .
Paso 6:Configurar Etherpad
Siguiendo este paso del artículo, realizará una configuración básica del editor Etherpad.
Inicie sesión en el usuario de etherpad e ingrese al directorio etherpad-lite.
su - etherpad cd etherpad-lite/
Abra settings.json
archivo de configuración con su editor de texto preferido. En nuestro ejemplo, usaremos nano como el editor de texto elegido.
nano settings.json
Cambie la dirección IP en el archivo de configuración a 'server_IP_address' y, opcionalmente, puede cambiar el puerto de escucha a uno que no sea el predeterminado. En nuestro ejemplo, usaremos el puerto predeterminado.
"ip": "server_IP_address", "port" : 9001,
Deshabilite la base de datos "sucia", que es la predeterminada en el archivo de configuración, utilizando las etiquetas de comentario /*
y */
como se muestra en el siguiente ejemplo.
/* "dbType" : "dirty", "dbSettings" : { "filename" : "var/dirty.db" }, */
Ahora descomente la configuración de la base de datos MySQL e ingrese la información de MySQL que creó en el cuarto paso de este artículo.
"dbType" : "mysql", "dbSettings" : { "user" : "etherpad_user", "host" : "localhost", "port" : 3306, "password": "Str0n9Pas$worD", "database": "etherpad_db", "charset" : "utf8mb4" },
Puede habilitar el usuario administrador eliminando el comentario de esas líneas y reemplazando Str0n9Pas$worD
con una contraseña de su elección.
"users": { "admin": { // "password" can be replaced with "hash" if you install ep_hash_auth "password": "Str0n9Pas$worD", "is_admin": true }, "user": { // "password" can be replaced with "hash" if you install ep_hash_auth "password": "Str0n9Pas$worD", "is_admin": false } },
Una vez que haya terminado con todas las modificaciones, puede guardar el archivo de configuración y salir.
Paso 7:Configure Etherpad como servicio
Método 1:Systemd
En este paso, configurará Etherpad para que se ejecute como un servicio systemd en su sistema Debian 9.
Ejecute el siguiente comando para que pueda crear un nuevo archivo de servicio llamado 'etherpad.service'.
cd /etc/systemd/system/ && nano etherpad.service
Luego pegue la siguiente configuración.
[Unit] Description=etherpad-lite (real-time collaborative document editing) After=syslog.target network.target [Service] Type=simple User=etherpad Group=etherpad WorkingDirectory=/home/etherpad/etherpad-lite Environment=NODE_ENV=development 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
A continuación, puede guardar el archivo de configuración y salir. Use el siguiente comando para recargar la lista de servicios systemd en su servidor.
systemctl daemon-reload
Ahora puedes usar el systemctl
comando para que pueda iniciar y habilitar la aplicación Etherpad de manera fácil y persistente. Cuando el servicio está habilitado, se iniciará automáticamente cada vez que se inicie el sistema.
systemctl start etherpad systemctl enable etherpad
Método 2:Init.d
Si prefiere usar init, puede crear un nuevo script inicial con el siguiente comando.
nano /etc/init.d/etherpad
Pegue el siguiente script.
#!/bin/sh ### BEGIN INIT INFO # Provides: etherpad-lite # Required-Start: $local_fs $remote_fs $network $syslog # Required-Stop: $local_fs $remote_fs $network $syslog # Default-Start: 2 3 4 5 # Default-Stop: 0 1 6 # Short-Description: starts etherpad lite # Description: starts etherpad lite using start-stop-daemon ### END INIT INFO PATH="/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin:/opt/node/bin" LOGFILE="/var/www/etherpad-lite/etherpad-lite.log" EPLITE_DIR="/var/www/etherpad-lite" EPLITE_BIN="bin/safeRun.sh" USER="etherpad" GROUP="etherpad" DESC="Etherpad Lite" NAME="etherpad-lite" set -e . /lib/lsb/init-functions start() { echo "Starting $DESC... " start-stop-daemon --start --chuid "$USER:$GROUP" --background --make-pidfile --pidfile /var/run/$NAME.pid --exec $EPLITE_DIR/$EPLITE_BIN -- $LOGFILE || true echo "done" } #We need this function to ensure the whole process tree will be killed killtree() { local _pid=$1 local _sig=${2-TERM} for _child in $(ps -o pid --no-headers --ppid ${_pid}); do killtree ${_child} ${_sig} done kill -${_sig} ${_pid} } stop() { echo "Stopping $DESC... " while test -d /proc/$(cat /var/run/$NAME.pid); do killtree $(cat /var/run/$NAME.pid) 15 sleep 0.5 done rm /var/run/$NAME.pid echo "done" } status() { status_of_proc -p /var/run/$NAME.pid "" "etherpad-lite" && exit 0 || exit $? } case "$1" in start) start ;; stop) stop ;; restart) stop start ;; status) status ;; *) echo "Usage: $NAME {start|stop|restart|status}" >&2 exit 1 ;; esac exit 0
Guarde y cierre el archivo. Haga que el script sea ejecutable cambiando los permisos del archivo y habilítelo para que se inicie en el arranque.
chmod +x /etc/init.d/etherpad update-rc.d etherpad defaults /etc/init.d/etherpad start
Puede verificar que la aplicación esté funcionando en el puerto 9001 con los siguientes comandos.
systemctl status etherpad and netstat -tunlp | grep 9001
Paso 8:Configuración de un proxy inverso
Debido a que Apache y Nginx son uno de los servidores web más populares en Internet, en este paso le mostraremos cómo crear un proxy inverso para ellos para que pueda abrir el sitio web que contiene Etherpad con un nombre de dominio. Además, esto tiene la ventaja de que no es necesario especificar un número de puerto para acceder a Etherpad.
Suponemos que ya ha instalado Apache o Nginx en su servidor. Puede comprobar el estado del servidor web con los siguientes comandos.
Para Apache2:
systemctl status apache2
Para Nginx:
systemctl status nginx
Si tiene Apache2 instalado en su servidor, puede crear un nuevo archivo de configuración de host virtual para poder acceder a la aplicación Etherpad con un nombre de dominio.
nano /etc/apache2/sites-available/domain_name.conf
agregue el siguiente contenido al archivo:
<VirtualHost *:80> ServerNamedomain_name.com
ServerAliaswww.domain_name.com
ServerSignature Off <IfModule mod_proxy.c> ProxyVia On ProxyRequests Off ProxyPass / http://server_IP_address:9001/ ProxyPassReverse / http://server_IP_address:9001/ ProxyPreserveHost on <Proxy *> Options FollowSymLinks MultiViews AllowOverride All Order allow,deny allow from all </Proxy> </IfModule> </VirtualHost>
Por supuesto, deberá reemplazar nombre_dominio.com con su nombre de dominio registrado real, así como también reemplazar dirección_IP_servidor con la dirección IP pública de su servidor. Una vez que haya terminado de editar el archivo de configuración, guarde el archivo y salga.
Se deben instalar los siguientes módulos de Apache:
a2enmod proxy a2enmod proxy_http a2enmod headers
Para habilitar el host virtual que acaba de crear, ejecute a2ensite
comando:
a2ensite domain_name
Para que los cambios realizados surtan efecto, debe reiniciar Apache:
apache2ctl restart
Si tiene Nginx instalado en su servidor, puede crear un nuevo bloque de servidor para poder acceder a la aplicación Etherpad con un nombre de dominio y sin número de puerto.
Cree el nuevo bloque de servidor etherpad con el comando:
nano /etc/nginx/sites-available/etherpad.conf
agregue el siguiente contenido al archivo:
server { listen 80; server_name domain_name.com; location / { proxy_pass http://server_IP_address:9001/ proxy_set_header Host $host; proxy_buffering off; } }
Deberá reemplazar nombre_dominio.com con su nombre de dominio registrado real, así como también reemplazar dirección_IP_servidor con la dirección IP pública de su servidor. Cuando termine de editar el archivo de configuración, guarde el archivo y salga.
Para activar el host virtual de etherpad, puede crear un enlace simbólico con el comando:
ln -s /etc/nginx/sites-available/etherpad /etc/nginx/sites-enabled/
Una vez hecho esto, pruebe la configuración de Nginx.
nginx -t
Antes de iniciar y habilitar el servicio Nginx, debe asegurarse de que no haya errores durante la prueba de configuración de Nginx. Si todo sale bien, puede ejecutar los siguientes comandos:
systemctl restart nginx systemctl enable nginx
Paso 9:Acceso a Etherpad
Ahora abra su navegador web favorito e ingrese su nombre de dominio.http://domain_name.com/
Debería poder ver el editor Etherpad en su navegador.
Introduzca el nombre de su nuevo Pad y haga clic en el botón Aceptar.
Ahora debería poder ver el editor Etherpad como se muestra en la imagen a continuación.
Para acceder a la URL de administración, agregue /admin/
hasta el final de su nombre de dominio.
http://domain_name.com/admin/
Se le pedirá un nombre de usuario y una contraseña de administrador. Ingrese su nombre de usuario y contraseña de administrador y luego haga clic en el botón Iniciar sesión.
Felicidades. Ha instalado y configurado correctamente el editor Etherpad.
En este artículo, le mostramos cómo instalar Etherpad en Debian 9. Ahora puede continuar usando y explorando esta increíble aplicación de código abierto.
Por supuesto, si usted es uno de nuestros clientes de Debian Hosting, no tiene que instalar Etherpad en su Debian 9 VPS, simplemente pregúntele a nuestros administradores, siéntese y relájese. Nuestros administradores instalarán y configurarán Etherpad en Debian 9 inmediatamente.
PD. Si le gustó esta publicación sobre cómo instalar Etherpad en un VPS Debian 9, compártala con sus amigos en las redes sociales utilizando los botones de compartir a continuación, o simplemente deje un comentario en la sección de comentarios. Gracias.