Etherpad es un editor de texto basado en la colaboración en tiempo real. Permite a varios autores editar simultáneamente un documento de texto en la web, y ver todos los participantes en las ediciones en tiempo real, con la capacidad de mostrar el texto de cada autor en diferente color. También hay una ventana de chat en la barra lateral para permitir la comunicación directa.
Como siempre iniciamos actualizando repositorios:
sudo apt update
Ahora, Instalamos las dependencias que vamos a utilizar:
sudo apt install gzip git curl python libssl-dev pkg-config gcc g++ make build-essential -y
Descargamos nodejs:
sudo curl -sL https://deb.nodesource.com/setup_10.x | sudo -E bash -
y lo instalamos:
sudo apt install -y nodejs
Actualizar NPM
sudo npm install -g npm@latest
Instalamos MySQL, que usaremos para crear la base de datos donde se guardará toda la información del servicio:
sudo apt install mysql-server mysql-client
Iniciar MySQL
sudo systemctl start mysql
Ahora le diremos a la computadora que incie el servicio de manera automática:
sudo systemctl enable mysql
Ahora configuramo la contraseña de MySQL
sudo mysql_secure_installation
Primero te preguntará si usarás contraseñas seguras o contraseñas simples, en este caso recomendamos usar contraseñas seguras, por lo cuál ante la primera pregunta, respondemos si:
Y
A continuación MySQL te preguntará que nivel de seguridad deseas para tu contraseña, selecciona la opción 1 (Medium):
Luego te pedirá escribir la contraseña que desees para MySQL dos veces, recuerda utilizar una con letras, números, símbolos y altas y bajas.
Ahora te hará varias preguntas, responde a todas ellas con un sí (Y)
Finalizada esa configuración, Ingresamos a MySQL, te pedirá una contraseña, escribes la que acabas de inventar en el paso anterior:
sudo mysql -u root -p
Ahora estamos dentro de MySQL y lo primero que haremos, será crear una base de datos para nuestro Etherpad, aquí se almacenará toda la información contenida en los pads alojados en el servicio.
create database etherpad_db;
En este caso la palabra etherpad_db, es solo a modo de ejemplo, este es el nombre de nuestra base de datos y podemos darle el nombre que deseemos (y recordemos)
En el siguiente paso, daremos los permisos necesarios para que nuestro etherpad pueda ingresar y leer información en la base de datos, para ello:
grant all privileges on etherpad_db.* to etherpad@localhost identified by 'ALGUNA_CLAVE_SEGURA';
En este caso la palabra etherpad_db, es solo a modo de ejemplo, este es el nombre de nuestra base de datos y aquí ponemos el nombre de la base de datos que creamos recientemente para nuestro Etherpad. Así mismo, la frase ALGUNA_CLAVE_SEGURA, es solo un ejemplo, ahí debemos anotar una contraseña que nos inventemos para nuestra base de datos, recuerda utilizar una con letras, números, altas y bajas
Actualizamos los privilegios de MySQL:
flush privileges;
y salimos del programa:
exit
Una vez fuera de MySQL, creamos un usuario llamado etherpad
sudo useradd -m -s /bin/bash etherpad
ahora le asignamos una contraseña que inventemos a este usuario:
sudo passwd etherpad
Ingresamos a la sesión del usuario etherpad, nos pedirá la contraseña que acabas de crear para ese usuario:
su - etherpad
Finalmente tenemos todo listo para comenzar a descargar e instalar etherpad:
git clone git://github.com/ether/etherpad-lite.git
Vamos a la carpeta donde se descargó etherpad:
cd etherpad-lite/
y ejecutamos el script instalador:
bin/run.sh
Con esto hemos ejecutado Etherpad, y si esta todo correcto debería verse de la siguiente manera:
Cerramos el proceso de Etherpad presionando al mismo tiempo en el teclado crtl + C
Ahora, salimos del usuario etherpad:
exit
y vamos a la carpeta donde está el servicio:
cd /home/etherpad/etherpad-lite
Y abrimos el archivo de configuraciones de Etherpad:
sudo nano settings.json
Nos deslizamos hasta donde viene la información del puerto y la IP
y agregamos la IP (y el puerto opcionalmente) de la computadora donde hemos instalado el servicio de Etherpad
"ip": "192.168.1.101",
"port" : 9001,
En este caso el 192.168.1.101 es un ejemplo, aquí va la ip de la máquina donde hemos instalado Etherpad.
Ahora viene una parte un poco complicada, lo que haremos será deshabilitar la base de datos "dirty" y activaremos la configuración para que el servicio use la base de datos que hemos creado anteriormente para ella.
Los archivos de configuración en texto si bien son distintos unos de otros, por lo general tienen una misma regla, y es que hay que señalares de alguna manera que frases son efectvamente configuraciones y cuales son solo textos explicando las funciones de las configuraciones. En este caso, Etherpad utiliza el siguiente método:
Las frases contenidas entre un /* y un */ , el software asumirá que son textos explicativos por lo que no las leerá, y por el contrario, las frases que carezcan de este símbolo serán tomadas por el softwate como instrucciones de configuración y éstas afectaran el funcionamiento de Etherpad
Entonces, buscamos dónde la Dirty DataBase se encuentra activa:
y la desactivamos de dejándola de la siguiente manera:
Ahora, en el mismo archivo de configuración de Etherpad viene un ejemplo de una base de datos:
La modificamos quitando los /* */ y agregando la información que entregamos a MySQL cuando creamos nuestra base de datos:
En este caso las palabras etherpad_db y ALGUNA_CLAVE_SEGURA, son solo a modo de ejemplo, este es el nombre de nuestra base de datos y la contraseña que creamos anterioremente dentro de MySQL
Cerramos el documento con crtl + X y aceptamos guardar las modificaciones
Ya estamos casi acabando, ahora lo que haremos es crear el servicio de Etherpad en Systemd, para que podemos controlar y chekar el status de Etherpad con unos simples comandos
cd /etc/systemd/system/
Creamos un documento en blanco, donde pondremos las configuraciones:
sudo nano etherpad.service
Copiamos y pegamos en él la siguiente configuracion:
[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
Cerramos el documento con crtl + X y aceptamos guardar las modificaciones
reiniciamos el sistema de control de servicios:
sudo systemctl daemon-reload
iniciamos etherpad
sudo systemctl start etherpad
dejamos etherpad con inicio automático
sudo systemctl enable etherpad
y finalmente reiniciamos etherpad
sudo systemctl restart etherpad
y comprobamos que etherpad funcione correctamente
sudo systemctl status etherpad
Si no hay errores, ahora podemos acceder desde cualquier navegador web, anotando en la barra de direcciones la IP o Dominio de la máquina, acompañado del puerto :9001, a modo de ejemplo el Etherpad de esta guía lo encontraríamos en:
http://192.168.1.101:9001
sudo systemctl status etherpad
sudo systemctl stop etherpad
sudo systemctl start etherpad
sudo systemctl restart etherpad
sudo nano /home/etherpad/etherpad-lite/settings.json