Cómo instalar Wekan Kanban con Nginx y Let’s Encrypt SSL en Debian 10
Wekan es un Tablero Kanban gratuito y de código abierto construido con el framework JavaScript Meteor y se distribuye bajo la licencia MIT. Es muy similar a Workflowy y Trello, que te ayuda a gestionar las tareas diarias, preparar listas de tareas, gestionar a otras personas, etc. Viene con una interfaz web totalmente receptiva y traducida a muchos idiomas. Wekan viene con un rico conjunto de características que incluyen, Exportar tablero Wekan, Importar tablero Trello, Configuración SMTP, Restaurar un tablero archivado, Módulo de gestión de usuarios, Funciones de arrastrar y soltar, y muchas más.
En este tutorial, te mostraremos cómo instalar el tablero Wekan Kanban con Nginx como servidor proxy en Debian 10.
Requisitos previos
- Un servidor con Debian 10.
- Un nombre de dominio válido apuntado con la IP de tu servidor.
- Una contraseña de root configurada en tu servidor.
Cómo empezar
Antes de empezar, se recomienda actualizar tu servidor con la última versión mediante el siguiente comando:
apt-get update -y
apt-get upgrade -y
Una vez actualizado tu servidor, reinícialo para aplicar los cambios.
Instalar Wekan
La forma más sencilla de instalar Wekan en Debian 10 es utilizando snap. Por defecto, el paquete snap está disponible en el repositorio de Debian 10. Puedes instalarlo ejecutando el siguiente comando:
apt-get install snapd -y
Una vez instalado el snap, puedes instalar el Wekan ejecutando el siguiente comando:
snap install wekan
Una vez instalado el Wekan, se iniciará el servicio Wekan y Mongodb automáticamente.
Puedes ver el estado del servicio Wekan con el siguiente comando:
systemctl status snap.wekan.wekan
Deberías ver la siguiente salida:
? snap.wekan.wekan.service - Service for snap application wekan.wekan Loaded: loaded (/etc/systemd/system/snap.wekan.wekan.service; enabled; vendor preset: enabled) Active: active (running) since Sun 2019-12-22 07:43:34 UTC; 7s ago Main PID: 7836 (wekan-control) Tasks: 11 (limit: 2359) Memory: 156.3M CGroup: /system.slice/snap.wekan.wekan.service ??7836 /bin/bash /snap/wekan/678/bin/wekan-control ??8522 /snap/wekan/678/bin/node main.js Dec 22 07:43:35 debian10 wekan.wekan[7836]: HEADER_LOGIN_EMAIL=Header login email. Example for siteminder: HEADEREMAILADDRESS (default value) Dec 22 07:43:35 debian10 wekan.wekan[7836]: LOGOUT_WITH_TIMER=false (default value) Dec 22 07:43:35 debian10 wekan.wekan[7836]: LOGOUT_IN= (default value) Dec 22 07:43:35 debian10 wekan.wekan[7836]: LOGOUT_ON_HOURS= (default value) Dec 22 07:43:35 debian10 wekan.wekan[7836]: LOGOUT_ON_MINUTES= (default value) Dec 22 07:43:35 debian10 wekan.wekan[7836]: DEFAULT_AUTHENTICATION_METHOD= (default value) Dec 22 07:43:35 debian10 wekan.wekan[7836]: ATTACHMENTS_STORE_PATH= (default value) Dec 22 07:43:35 debian10 wekan.wekan[7836]: MONGO_URL=mongodb://127.0.0.1:27019/wekan Dec 22 07:43:37 debian10 wekan.wekan[7836]: Presence started serverId=ijqY8RbEWv8Hg9RSb Dec 22 07:43:38 debian10 wekan.wekan[7836]: Meteor APM: completed instrumenting the app
Por defecto, Wekan se ejecuta en el puerto 8080. Si quieres cambiar el puerto de Wekan a 3001, ejecuta el siguiente comando:
snap set wekan port='3001'
A continuación, reinicia el servicio de Wekan y MongoDB para aplicar los cambios:
systemctl restart snap.wekan.mongodb
systemctl restart snap.wekan.wekan
Gestionar los servicios de Wekan y MongoDB
Para iniciar y detener el servicio Wekan, ejecuta el siguiente comando:
systemctl stop snap.wekan.wekan
systemctl start snap.wekan.wekan
Para iniciar y detener el servicio MongoDB, ejecuta el siguiente comando:
systemctl stop snap.wekan.mongodb
systemctl start snap.wekan.mongodb
Configurar Nginx como proxy inverso
Ahora Wekan está instalado y escuchando en el puerto 3001. A continuación, es conveniente ejecutar Wekan detrás del proxy Nginx.
Para ello, instala primero el servidor web Nginx con el siguiente comando:
apt-get install nginx -y
Una vez instalado, abre el archivo /etc/nginx/nginx.conf y establece hash_bucket_size:
nano /etc/nginx/nginx.conf
Descomenta la siguiente línea:
server_names_hash_bucket_size 64;
Guarda y cierra el archivo cuando hayas terminado. A continuación, reinicia el servicio Nginx para aplicar los cambios:
systemctl restart nginx
A continuación, crea un archivo de host virtual Nginx para Wekan como se muestra a continuación:
nano /etc/nginx/conf.d/wekan.conf
Añade las siguientes líneas:
map $http_upgrade $connection_upgrade { default upgrade; '' close; } server { listen 80; server_name wekan.linuxbuz.com; if ($http_user_agent ~ "MSIE" ) { return 303 https://browser-update.org/update.html; } location / { proxy_pass http://127.0.0.1:3001; proxy_http_version 1.1; proxy_set_header Upgrade $http_upgrade; # allow websockets proxy_set_header Connection $connection_upgrade; proxy_set_header X-Forwarded-For $remote_addr; # preserve client IP } }
Guarda y cierra el archivo cuando hayas terminado. A continuación, comprueba si el Nginx tiene algún error de sintaxis con el siguiente comando:
nginx -t
Deberías ver la siguiente salida:
nginx: the configuration file /etc/nginx/nginx.conf syntax is ok nginx: configuration file /etc/nginx/nginx.conf test is successful
Por último, reinicia el servicio Nginx para aplicar los cambios:
systemctl restart nginx
En este punto, Nginx está configurado para reenviar la petición al puerto 3001 de Wekan.
Asegura Wekan con Let’s Encrypt Free SSL
A continuación, se recomienda asegurar Wekan con el SSL gratuito de Let’s Encrypt. Para ello, tendrás que instalar el cliente Certbot en tu servidor. Certbot es un cliente de Let’s Encrypt que puede utilizarse para descargar el SSL gratuito y configurar Nginx para que utilice este certificado.
Por defecto, la última versión de Certbot no está disponible en el repositorio por defecto de Debian 10. Por tanto, tendrás que añadir el repositorio de Certbot en tu servidor.
Puedes añadir el repositorio utilizando el siguiente comando:
echo "deb http://ftp.debian.org/debian buster-backports main" >> /etc/apt/sources.list
A continuación, actualiza el repositorio e instala el cliente Certbot con el siguiente comando:
apt-get update -y
apt-get install python-certbot-nginx -t buster-backports
Una vez completada la instalación, ejecuta el siguiente comando para obtener e instalar el certificado SSL para tu dominio:
certbot --nginx -d wekan.linuxbuz.com
Se te pedirá que proporciones tu dirección de correo electrónico y que aceptes las condiciones del servicio, como se muestra a continuación:
Saving debug log to /var/log/letsencrypt/letsencrypt.log Plugins selected: Authenticator nginx, Installer nginx Enter email address (used for urgent renewal and security notices) (Enter 'c' to cancel): [email protected] - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Please read the Terms of Service at https://letsencrypt.org/documents/LE-SA-v1.2-November-15-2017.pdf. You must agree in order to register with the ACME server at https://acme-v02.api.letsencrypt.org/directory - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - (A)gree/(C)ancel: A - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Would you be willing to share your email address with the Electronic Frontier Foundation, a founding partner of the Let's Encrypt project and the non-profit organization that develops Certbot? We'd like to send you email about our work encrypting the web, EFF news, campaigns, and ways to support digital freedom. - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - (Y)es/(N)o: N Obtaining a new certificate Performing the following challenges: http-01 challenge for wekan.linuxbuz.com Waiting for verification... Cleaning up challenges Deploying Certificate to VirtualHost /etc/nginx/conf.d/wekan.conf
A continuación, tendrás que elegir si quieres redirigir el tráfico HTTP a HTTPS:
Please choose whether or not to redirect HTTP traffic to HTTPS, removing HTTP access. - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 1: No redirect - Make no further changes to the webserver configuration. 2: Redirect - Make all requests redirect to secure HTTPS access. Choose this for new sites, or if you're confident your site works on HTTPS. You can undo this change by editing your web server's configuration. - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Select the appropriate number [1-2] then [enter] (press 'c' to cancel): 2
Escribe 2 y pulsa Enter para iniciar el proceso de instalación. Una vez finalizada la instalación, deberías obtener la siguiente salida:
Redirecting all traffic on port 80 to ssl in /etc/nginx/conf.d/wekan.conf - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Congratulations! You have successfully enabled https://wekan.linuxbuz.com You should test your configuration at: https://www.ssllabs.com/ssltest/analyze.html?d=wekan.linuxbuz.com - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - IMPORTANT NOTES: - Congratulations! Your certificate and chain have been saved at: /etc/letsencrypt/live/wekan.linuxbuz.com/fullchain.pem Your key file has been saved at: /etc/letsencrypt/live/wekan.linuxbuz.com/privkey.pem Your cert will expire on 2020-03-25. To obtain a new or tweaked version of this certificate in the future, simply run certbot again with the "certonly" option. To non-interactively renew *all* of your certificates, run "certbot renew" - Your account credentials have been saved in your Certbot configuration directory at /etc/letsencrypt. You should make a secure backup of this folder now. This configuration directory will also contain certificates and private keys obtained by Certbot so making regular backups of this folder is ideal. - If you like Certbot, please consider supporting our work by: Donating to ISRG / Let's Encrypt: https://letsencrypt.org/donate Donating to EFF: https://eff.org/donate-le
Acceder a la interfaz web de Wekan
Ahora abre tu navegador web y escribe la URL https://wekan.linuxbuz.com. Serás redirigido a la siguiente página:
Haz clic en el botón de Registro. Deberías ver la siguiente página:
Proporciona tu nombre de usuario, contraseña y correo electrónico deseados y haz clic en el botón Registrar. A continuación, haz clic en el botón de inicio de sesión. Deberías ver la siguiente página:
Proporciona tu nombre de usuario, contraseña y haz clic en el botón Iniciar sesión. Deberías ver el panel de control de Wekan en la siguiente página:
Eso es todo por ahora. Has instalado con éxito Wekan Kanban en el servidor de Debian 10 y lo has asegurado con el SSL gratuito de Let’s Encrypt.