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:

Inicio de sesión en Wekan

Haz clic en el botón de Registro. Deberías ver la siguiente página:

Crear una cuenta

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:

Regístrate en

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:

Tablero Kanban Wekan

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.

También te podría gustar...