Wekan Kanban installeren met Nginx en Let’s Encrypt SSL op Debian 10

Wekan is een gratis en open-source Kanban Board, gebouwd met het Meteor JavaScript raamwerk en wordt verspreid onder de MIT licentie. Het lijkt erg op Workflowy en Trello dat je helpt bij het beheren van dagelijkse taken, het opstellen van todo lijsten, het aansturen van andere mensen, enz. Het heeft een volledig responsieve webinterface en is vertaald in vele talen. Wekan heeft een rijke verzameling functies waaronder, Exporteer Wekan bord, Importeer Trello bord, SMTP Instellingen, Herstel een gearchiveerd bord, Gebruikersbeheer module, Sleep en neerzet functies, en nog veel meer.

In deze handleiding laten we je zien hoe je Wekan Kanban bord installeert met Nginx als proxy server op Debian 10.

Vereisten

  • Een server met Debian 10.
  • Een geldige domeinnaam gericht met je server IP.
  • Een root wachtwoord is op je server ingesteld.

Aan de slag

Alvorens te beginnen is het aan te raden je server met de laatste versie te updaten met het volgende commando:

apt-get update -y
apt-get upgrade -y

Zodra je server bijgewerkt is, herstart je hem om de veranderingen door te voeren.

Wekan installeren

De gemakkelijkste manier om Wekan op Debian 10 te installeren is door snap te gebruiken. Standaard is het snap pakket beschikbaar in de Debian 10 repository. Je kunt het installeren door het volgende commando uit te voeren:

apt-get install snapd -y

Zodra de snap is binnengehaald/geïnstalleerd, kun je de Wekan installeren door het volgende commando uit te voeren:

snap install wekan

Zodra Wekan geïnstalleerd is, start het automatisch de Wekan en Mongodb dienst.

Je kunt de status van de Wekan dienst zien met het volgende commando:

systemctl status snap.wekan.wekan

Je zou de volgende uitvoer moeten zien:

? 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

Standaard draait Wekan op de poort 8080. Als je de Wekan poort wilt veranderen in 3001, voer dan het volgende commando uit:

snap set wekan port='3001'

Herstart vervolgens de Wekan en MongoDB dienst om de veranderingen toe te passen:

systemctl restart snap.wekan.mongodb
systemctl restart snap.wekan.wekan

Beheer Wekan en MongoDB diensten

Om de Wekan dienst te starten en te stoppen, voer je het volgende commando uit:

systemctl stop snap.wekan.wekan
systemctl start snap.wekan.wekan

Om de MongoDB dienst te starten en te stoppen, voer je het volgende commando uit:

systemctl stop snap.wekan.mongodb
systemctl start snap.wekan.mongodb

Configureer Nginx als omgekeerde proxy

Wekan is nu geïnstalleerd en luistert op poort 3001. Vervolgens is het een goed idee om Wekan achter de Nginx proxy te draaien.

Om dat te doen installeer je eerst de Nginx webserver met het volgende commando:

apt-get install nginx -y

Open, eenmaal geïnstalleerd, het bestand /etc/nginx/nginx.conf en stel hash_bucket_size in:

nano /etc/nginx/nginx.conf

Haal het commentaar weg op de volgende regel:

        server_names_hash_bucket_size 64;

Sla het bestand op en sluit het als je klaar bent. Herstart dan de Nginx dienst om de veranderingen toe te passen:

systemctl restart nginx

Maak vervolgens een Nginx virtual host bestand voor Wekan zoals hieronder:

nano /etc/nginx/conf.d/wekan.conf

Voeg de volgende regels toe:

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
    }
}

Sla het bestand op en sluit het als je klaar bent. Controleer Nginx dan op een eventuele syntaxfout met het volgende commando:

nginx -t

Je zou de volgende uitvoer moeten zien:

nginx: the configuration file /etc/nginx/nginx.conf syntax is ok
nginx: configuration file /etc/nginx/nginx.conf test is successful

Herstart tenslotte de Nginx dienst om de veranderingen toe te passen:

systemctl restart nginx

Op dit punt is Nginx ingesteld om het verzoek door te sturen naar Wekan poort 3001.

Beveilig Wekan met Let’s Encrypt Free SSL

Vervolgens is het aan te bevelen Wekan te beveiligen met Let’s Encrypt gratis SSL. Om dat te doen moet je de Certbot client op je server installeren. Certbot is een Let’s Encrypt programma dat gebruikt kan worden om gratis SSL te downloaden en Nginx in te stellen om dit certificaat te gebruiken.

Standaard is de nieuwste versie van Certbot niet beschikbaar in de standaard repository van Debian 10. Je zult dus de Certbot repository aan je server moeten toevoegen.

Je kunt de repository toevoegen met het volgende commando:

echo "deb http://ftp.debian.org/debian buster-backports main" >> /etc/apt/sources.list

Werk vervolgens de repository bij en installeer de Certbot client met het volgende commando:

apt-get update -y
apt-get install python-certbot-nginx -t buster-backports

Als de installatie voltooid is, voer je het volgende commando uit om het SSL certificaat voor je domein te verkrijgen en te installeren:

certbot --nginx -d wekan.linuxbuz.com

Je wordt gevraagd je emailadres op te geven en de servicevoorwaarden te accepteren, zoals hieronder:

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

Vervolgens moet je kiezen of je HTTP verkeer al dan niet wilt omleiden naar 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

Typ 2 en druk op Enter om het installatieproces te starten. Als de installatie voltooid is, zou je de volgende uitvoer moeten krijgen:

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

Toegang tot Wekan Web Interface

Open nu je web browser en typ de URL https://wekan.linuxbuz.com. Je wordt doorverwezen naar de volgende pagina:

Wekan Login

Klik op de knop Register. Je zou de volgende pagina moeten zien:

Maak een account aan

Geef je gewenste gebruikersnaam, wachtwoord, e-mail en klik op de Register knop. Klik vervolgens op de sign in knop. Je zou de volgende pagina moeten zien:

Aanmelden

Geef je gebruikersnaam, wachtwoord en klik op de Sign in knop. Je zou het Wekan dashboard op de volgende pagina moeten zien:

Wekan Kanban Bord

Dat is het voor nu. Je hebt met succes de Wekan Kanban op Debian 10 server geïnstalleerd en deze beveiligd met Let’s Encrypt gratis SSL.