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 archivo de Office y un editor en línea altamente personalizable.
En este tutorial, lo 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
- Servidor Ubuntu 18.04
- Privilegios de raíz
¿Qué haremos?
- Instalar dependencias de paquetes
- Instalar Nodejs
- Instalar y configurar MySQL
- Descargar Etherpad
- Configurar Etherpad
- Configurar Etherpad como servicio
- Configurar Nginx como proxy inverso para Etherpad
- Configurar el cortafuegos UFW
- Pruebas
Paso 1:instalar dependencias de paquetes
El primer paso que haremos en esta guía es instalar todas las dependencias de paquetes para la instalación de Nodejs.
Ejecute el comando apt a continuación.
sudo apt install gzip git curl python libssl-dev pkg-config gcc g++ make build-essential -y
Espere toda la instalación.
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 de nodesource.
Agrega el repositorio de Nodesource Nodejs e instala el paquete Node.js usando los comandos a continuación.
curl -sL https://deb.nodesource.com/setup_9.x | sudo -E bash -
sudo apt install -y nodejs
Después de esto, verifique los comandos nodejs y npm.
nodejs --versión
npm --versión
Se instaló Node.js v9.11 en el servidor Ubuntu 18.04.
Paso 3:instalar y configurar MySQL
En este tutorial, utilizaremos MySQL como base de datos para Etherpad.
Instale el servidor de base de datos MySQL usando el comando apt a continuación.
sudo apt install mysql-server mysql-client
Una vez completada la instalación, inicie el servicio mysql y permita que se inicie cada vez que se inicie el sistema.
sudo systemctl iniciar mysql
sudo systemctl habilitar mysql
El servidor MySQL ha sido instalado.
A continuación, configuraremos la contraseña raíz de mysql y crearemos una nueva base de datos y un usuario para nuestra instalación de etherpad.
Para configurar la contraseña raíz de MySQL, ejecute el siguiente comando.
instalación_segura_mysql
Escriba su contraseña raíz mysql segura.
Ahora inicie sesión en mysql shell usando el usuario root.
mysql -u raíz -p
Cree una nueva base de datos llamada 'etherpad_db' y el usuario 'hakase', y ejecute las consultas mysql a continuación.
crear base de datos etherpad_db;
otorgar todos los privilegios en etherpad_db.* a [email protected] identificado por '[email protected]#';
privilegios de vaciado;
Se ha creado la base de datos MySQL para la instalación de etherpad.
Paso 4:descarga Etherpad
En este paso, crearemos un nuevo usuario y descargaremos el código fuente de etherpad.
Cree un nuevo usuario llamado 'etherpad' e inicie sesión en el usuario.
useradd -m -s /bin/bash etherpad
su - etherpad
Ahora clone el repositorio de etherpad.
git clon git://github.com/ether/etherpad-lite.git
Vaya al directorio 'etherpad-lite/' y ejecute el script bash para iniciar etherpad.
cd etherpad-lite/
bin/run.sh
Obtendrá el resultado de la siguiente manera.
Abra su navegador web y escriba la dirección IP del servidor con el puerto '9001'.
Y verá la página de inicio de etherpad.
Regrese a su terminal y presione 'Ctrl+c' para salir de la aplicación.
Paso 5:configurar Etherpad
En este paso, haremos la configuración básica del editor colaborativo de etherpad.
Inicie sesión en el usuario de etherpad y vaya al directorio 'etherpad-lite'.
su - etherpad
cd etherpad-lite/
Edite la configuración 'settings.json' usando el editor vim.
configuraciones de vim.json
Cambie 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",
"puerto":9001,
Ahora deshabilite la base de datos sucia predeterminada agregando el comentario '/* .... */' y pegue 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" :{
"usuario" :"hakase",
"host" :"localhost",
"puerto " :3306,
"contraseña":"[email protected]#",
"base de datos":"etherpad_db",
"charset" :"utf8mb4" /pre>
A continuación, habilitaremos el usuario administrador eliminando el comentario de esas líneas y cambiaremos el valor de la contraseña con una nueva contraseña.
"usuarios":{
"admin":{
// "contraseña" se puede reemplazar por "hash" si instala ep_hash_auth
"contraseña":"[email protected] #",
"is_admin":true
},
"usuario":{
// "contraseña" se puede reemplazar con "hash" si instala ep_hash_auth
"contraseña":"[correo electrónico protegido]#",
"is_admin":false
}
},
Guardar y salir.
La configuración básica de etherpad se ha completado.
Paso 6:configurar Etherpad como servicio
Ahora ejecutaremos etherpad como un servicio systemd en nuestro sistema ubuntu.
Vaya al directorio '/etc/systemd/system' y cree un nuevo archivo de servicio llamado 'etherpad.service'.
cd /etc/systemd/system/
vim etherpad.servicioPegue las configuraciones a continuación.
[Unidad]
Descripción=Etherpad-lite, el editor colaborativo.
Después=syslog.target network.target
[Servicio]
Tipo=simple
Usuario=etherpad
Grupo=etherpad
WorkingDirectory=/home/etherpad/etherpad-lite
Entorno=NODE_ENV=producción
ExecStart=/usr/bin/nodejs / home/etherpad/etherpad-lite/node_modules/ep_etherpad-lite/node/server.js
Restart=always # use mysql más un archivo settings.json completo para evitar el tiempo de suspensión del servicio, programando el reinicio.
[Instalar]
Buscado por=multiusuario.objetivoGuardar y salir.
Vuelva a cargar las listas de servicios de systemd.
sudo systemctl demonio-recargarInicie el servicio etherpad y permita que se inicie cada vez que se inicia el sistema.
sudo systemctl iniciar etherpad
sudo systemctl habilitar etherpadY el éter está funcionando como un servicio en la IP localhost con el puerto predeterminado 9001.
Verifique el servicio usando los comandos a continuación.
sudo systemctl status etherpad
netstat -plntuPaso 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.
Instale el servidor web nginx usando el comando apt a continuación.
sudo apt install nginx -yUna vez completada la instalación, vaya al directorio '/etc/nginx/sites-available' y cree un nuevo host virtual 'etherpad'.
cd /etc/nginx/sites-disponible/
vim etherpadPegue las configuraciones a continuación.
servidor {
escuchar 80;
nombre_servidor pad.hakase.io;
reescribir ^(.*) https://$nombre_servidor$1 permanente;
}
# estamos en el contexto http aquí
mapa $http_upgrade $connection_upgrade {
actualización predeterminada;
'' close;
}
servidor {
escuchar 443;
nombre_servidor 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/ss /privkey.pem;
ssl_session_timeout 5 min;
ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
ssl_prefer_server_ciphers activado;
ssl_ciphers "+CDH+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";
ubicación / {
proxy_pass http://localhost:9001/;
proxy_set_header Host $host; proxy_set_header X-Forwarded-For $remote_addr; # registros EP para mostrar la IP remota real
proxy_set_header X-Forwarded-Proto $scheme; # para que EP establezca un indicador de cookies seguras cuando se usa https
proxy_set_header Host $host; # pasar el encabezado del host
proxy_http_version 1.1; # Recomendado con conexiones KeepAlive
# WebSocket proxying - de http://nginx.org/en/docs/http/websocket.html
proxy_set_header Upgrade $ http_upgrade;
proxy_set_header $ conexión_upgrade; <
}
}Guardar y salir.
Nota:
- Asegúrese de cambiar la ruta del SSL con sus propios certificados SSL.
- Cambie el dominio etherpad 'pad.hakase.io' con su propio nombre de dominio.
Ahora active el host virtual etherpad y pruebe la configuración.
ln -s /etc/nginx/sites-disponible/etherpad /etc/nginx/sites-enabled/
nginx -t
Asegúrese de que no haya ningún error, luego inicie el servicio nginx y habilítelo para que se inicie cada vez que se inicie el sistema.
sudo systemctl reiniciar nginx
sudo systemctl habilitar nginx
La instalación y configuración de Nginx como proxy inverso etherpad se completó con éxito.
Paso 8:configurar el cortafuegos UFW
Para la configuración del firewall, solo queremos abrir los servicios de puerto SSH, HTTP y HTTPS.
Ejecute los comandos ufw a continuación.
sudo fuw permite ssh
sudo ufw permite http
sudo ufw permite https
Luego habilite el cortafuegos ufw.
habilitar sudo ufw
Y la configuración del cortafuegos ufw se ha completado.
Paso 9 - Prueba
Abra su navegador web y escriba el nombre de dominio de etherpad, el mío es: http://pad.hakase.io/
Ahora será redirigido a la conexión segura HTTS.
Cree un nuevo pad escribiendo el nombre del pad en el cuadro y haga clic en el botón 'Aceptar'.
Y obtendrá el editor Etherpad como se muestra a continuación.
A continuación, abra la URL de administración de etherpad. El mío es https://pad.hakase.io/admin/
Se le pedirá el nombre de usuario y la contraseña del administrador. Escriba su propio usuario y contraseña, luego haga clic en el botón Iniciar sesión.
Y obtendrá la página de administración predeterminada de Etherpad a continuación.
- Configuración de Etherpad settings.json
- Administrador de complementos de Etherpad
La instalación de Etherpad con MySQL y el proxy inverso Nginx en Ubuntu 18.04 se completó con éxito.