Wekan Trello-achtige Kanban installeren en configureren op CentOS 7

Wekan is een open bron Trello-achtig kanban bord, gebaseerd op het Meteor Javascript raamwerk. Het is een web-gebaseerd beheerprogramma waarmee je een bord kunt maken voor je projectsamenwerking. Met het wekan bord hoef je alleen maar een lid voor het bord uit te nodigen en je kunt aan de slag. Op het wekan bord kun je een op kaarten gebaseerd beheer van taken en to-do’s maken, en die dan aan het lid toewijzen.

In deze zelfstudie laat ik je stap-voor-stap zien hoe je Wekan Trello-achtige Kanban installeert en configureert op een CentOS 7 server. We zullen de MongoDB als databank gebruiken en de Nginx webserver als reverse Proxy voor de Wekan toepassing. Deze handleiding behandelt enkele onderwerpen in detail, waaronder het beveiligen van de MongoDB databaseserver en het configureren van Nginx als omgekeerde Proxy.

Vereisten

  • CentOS 7 server
  • Root voorrechten

Wat we zullen doen

  1. Nodejs installeren
  2. MongoDB installeren en configureren
  3. Wekan installeren
  4. Draai Wekan als een dienst op CentOS 7
  5. Installeer en configureer Nginx als omgekeerde proxy voor Wekan
  6. Testen van

Stap 1 – Installeer NodeJS met NVM Node Version Manager

Wekan is een op nodejs gebaseerde toepassing, en het vereist de nodejs versie 4.8. In deze zelfstudie installeren we nodejs niet uit de CentOS repository, maar installeren we nodejs 4.8 met behulp van de nvm Node Version Manager.

Voordat je nodejs installeert, voeg je met het onderstaande commando een nieuwe systeemgebruiker ‘wekan’ toe.

useradd -m -s /bin/bash wekan
passwd wekan

Log in op de gebruiker ‘wekan’, download dan het nvm installatie script en voer het uit.

su - wekan
curl -o- https://raw.githubusercontent.com/creationix/nvm/v0.33.8/install.sh | bash

Installeer NodeJS

Het commando installeert nvm onder ‘wekan’ gebruiker en voegt nieuwe configuratie toe aan het ‘.bashrc’ configuratiebestand. Laad nu het ‘.bashrc’ bestand opnieuw.

source ~/.bashrc

Test met het nvm commando zoals hieronder.

command -v nvm
nvm --version

Nu zie je dat nvm ‘0.33.8’ op het systeem geïnstalleerd is.

Installeer vervolgens nodejs 4.8 met het nvm commando hieronder.

nvm install v4.8
nvm use node

Als de installatie voltooid is, controleer je de node versie.

node -v

En je zult zien dat nodejs 4.8 op de CentOS 7 server geïnstalleerd is, onder de gebruiker ‘wekan’.

nodejs 4.8 is geïnstalleerd

Stap 2 – Installeer en configureer MongoDB

In deze stap installeren we MongoDB 3.2.x met behulp van de officiële repository, en configureren dan de basis beveiliging voor MongoDB NoSQL databaseserver.

Ga naar de ‘/etc/yum.repos.d./ directory en maak een nieuw .repo bestand met devim editor.

cd /etc/yum.repos.d/
vim mongodb-org-3.2.repo

Plak er de volgende MongoDB repository in.

[mongodb-org-3.2]
name=MongoDB Repository
baseurl=https://repo.mongodb.org/yum/redhat/$releasever/mongodb-org/3.2/x86_64/
gpgcheck=1
enabled=1
gpgkey=https://www.mongodb.org/static/pgp/server-3.2.asc

Bewaar en sluit af.

Installeer nu MongoDB met het onderstaande yum commando.

yum -y install mongodb-org mongodb-org-server mongodb-org-shell mongodb-org-mongos mongodb-org-tools

Nadat de installatie voltooid is, start je de MongoDB dienst en zet je hem aan om bij het opstarten van het systeem te starten.

systemctl start mongod
systemctl enable mongod

MongoDB 3.2 is geïnstalleerd op het CentOS 7 systeem.

Installeer en configureer MongoDB

Nu moeten we de MongoDB authenticatie instellen. Meld je aan in de mongo shell en maak een nieuwe gebruiker aan met de naam ‘admin’ voor de superuser toegang.

Log in op de mongo shell.

mongo

Maak nu een nieuwe ‘admin’ gebruiker met wachtwoord ‘MyAdminPassword’ met rol als ‘root’. Voer de onderstaande MongoDB queries uit.

db.createUser(
  {
    user: "admin",
    pwd: "MyAdminPassword",
    roles: [ { role: "root", db: "admin" } ]
  }
)

De MongoDB admin gebruiker is aangemaakt.

Configureer de gebruiker van MongoDB

Nu moeten we het configuratiebestand ‘/etc/mongod.conf’ bewerken om de authenticatie in te schakelen.

Bewerk het configuratiebestand ‘mongod.conf’ met vim.

vim /etc/mongod.conf

Haal het commentaar weg van de regel ‘security’ en voeg de configuratie toe zoals hieronder.

security:
 authorization: enabled

Sla op en sluit af.

Herstart nu de MongoDB dienst.

systemctl restart mongod

De MongoDB authenticatie is ingeschakeld.

Nu moeten we een nieuwe databank en gebruiker voor Wekan aanmaken. We maken een nieuwe database met de naam ‘wekan’ met gebruiker ‘wekan’ en wachtwoord ‘WekanPassword’.

Log in op de mongo shell als de admin gebruiker.

mongo -u admin -p

Typ het admin wachtwoord ‘MyAdminPassword’.

En als je de mongo shell krijgt, voer je de onderstaande MongoDB queries uit.

use wekan
db.createUser(
    {
      user: "wekan",
      pwd: "WekanPassword",
      roles: ["readWrite"]
    }
 )

De database en gebruiker voor de wekan installatie zijn aangemaakt.

Gebruiker is met succes toegevoegd

Stap 3 – Wekan installeren

Log in als de wekan gebruiker.

su - wekan

Download de wekan broncode met het wget commando en pak hem uit.

wget https://github.com/wekan/wekan/releases/download/v0.63/wekan-0.63.tar.gz
tar xf wekan-0.63.tar.gz

En je krijgt een nieuwe map met de naam ‘bundle’ – ga naar die map en installeer de wekan afhankelijkheden met het npm commando zoals hieronder getoond.

cd bundle/programs/server
npm install

Als de installatie van alle afhankelijkheden voltooid is, krijg je het resultaat zoals hieronder.

Installeer de afhankelijkheden van Wekan

Vervolgens zullen we proberen Wekan op het systeem te draaien.

Voer de volgende commando’s uit om de omgevingsvariabele voor de Wekan toepassing in te stellen.

export MONGO_URL='mongodb://wekan:[email protected]:27017/wekan?authSource=wekan'
export ROOT_URL='http://192.168.33.10'
export MAIL_URL='smtp://user:[email protected]:25/'
export MAIL_FROM='[email protected]'
export PORT=8000

Ga nu naar de ‘bundle’ directory en voer de wekan toepassing uit.

cd ~/bundle
node main.js

Loop Wekan

De Wekan server draait nu onder poort 8000. Open je webbrowser en typ het adres van je server met poort 8000.

http://192.168.33.10:8000/

En je krijgt de Wekan login pagina zoals hieronder.

Wekan login

Wekan is nu met succes geïnstalleerd op de CentOS 7 server.

Stap 4 – Wekan als dienst draaien op CentOS 7

We zullen de wekan toepassing als een dienst draaien op een Ubuntu systeem. We moeten dus een nieuw service bestand aanmaken onder de systemd systeemdirectory.

Voordat we het wekan service bestand maken, moeten we eerst het omgevingsvariabele bestand aanmaken.

Log in als de wekan gebruiker.

su - wekan

Ga naar de ‘bundle/’ directory en maak met vim een nieuw omgevingsvariabelen bestand ‘.env’.

cd bundle/
vim .env

Plak er de volgende configuratie in.

MONGO_URL='mongodb://wekan:[email protected]:27017/wekan?authSource=wekan'
ROOT_URL='http://wekan.hakase-labs.co'
MAIL_URL='smtp://user:[email protected]:25/'
MAIL_FROM='[email protected]'
PORT=8000
HTTP_FORWARDED_COUNT=1

Sla op en sluit af.

Kom vervolgens terug naar je root terminal.

Ga naar de ‘/etc/systemd/system’ directory en maak nieuw service bestand ‘wekan.service’.

cd /etc/systemd/system
vim wekan.service

Plak er de volgende configuratie in.

[Unit]
Description=Wekan Server
After=syslog.target
After=network.target

[Service]
Type=simple
Restart=on-failure
StartLimitInterval=86400
StartLimitBurst=5
RestartSec=10
ExecStart=/home/wekan/.nvm/versions/node/v4.8.7/bin/node bundle/main.js
EnvironmentFile=/home/wekan/bundle/.env
ExecReload=/bin/kill -USR1 $MAINPID
RestartSec=10
User=wekan
Group=wekan
WorkingDirectory=/home/wekan
StandardOutput=syslog
StandardError=syslog
SyslogIdentifier=Wekan

[Install]
WantedBy=multi-user.target

Sla op en sluit af.

Herlaad het systemd systeem met het systemctl commando.

systemctl daemon-reload

Start de wekan dienst en zet hem aan om elke keer bij het opstarten van het systeem te starten.

systemctl start wekan
systemctl enable wekan

Controleer nu de wekan dienst met onderstaande commando’s.

netstat -plntu
systemctl status wekan

En het volgende is het resultaat in ons geval.

Draai Wekan als dienst

Wekan draait nu als een dienst onder poort 8000 op een CentOS 7 systeem.

Stap 5 – Installeer en configureer Nginx als omgekeerde proxy voor Wekan

In deze stap installeren we Nginx webserver en configureren die als een omgekeerde proxy voor de wekan dienst die draait onder poort 8000.

Voordat je de Nginx webserver installeert, voeg je een nieuwe EPEL (Extra Package for Enterprise Linux) repository toe.

yum -y install epel-release

Installeer nu nginx uit de epel repository met het onderstaande yum commando.

yum -y install nginx

Als de installatie voltooid is, ga dan naar de ‘/etc/nginx/’ configuratiemap en maak een nieuw virtuele host bestand ‘wekan.conf’ onder de ‘conf.d’ map.

cd /etc/nginx
vim conf.d/wekan.conf

Plak er de volgende virtuele host configuratie in.

server {
    server_name wekan.hakase-labs.co;
    listen 80;

    access_log /var/log/nginx/wekan-access.log;
    error_log /var/log/nginx/wekan-error.log;

    location / {
        proxy_set_header   X-Real-IP $remote_addr;
        proxy_set_header   Host      $host;
        proxy_http_version 1.1;
        proxy_set_header   Upgrade $http_upgrade;
        proxy_set_header   Connection 'upgrade';
        proxy_cache_bypass $http_upgrade;
        proxy_pass         http://127.0.0.1:8000;
    }
}

Sla op en sluit af.

Test de nginx configuratie en controleer of er geen fout optreedt.

nginx -t

Als er geen fout is, start dan de Nginx dienst en zet hem aan om bij het opstarten van het systeem te starten.

systemctl start nginx
systemctl enable nginx

Controleer nu de HTTP poort met het netstat commando, en controleer of hij op de stand ‘LISTEN’ staat.

netstat -plntu

De Nginx virtuele host configuratie voor Wekan is nu voltooid.

Nginx als omgekeerde proxy

Stap 6 – Testen

Open je webbrowser en typ de wekan url installatie in de adresbalk.

http://wekan.hakase-labs.co/

En je wordt doorgestuurd naar de login pagina – klik op de ‘Register’ link.

Inloggen op Wekan

Typ nu je gebruikersnaam, e-mail, wachtwoord, en laat Invitation Code leeg.

Maak een account aan

Klik op de blauwe ‘Register’ knop.

En je krijgt de boodschap ‘Internal Server Error’. Laat het staan en kom terug naar je terminal. Want we gaan de eerste gebruiker vanaf de terminal activeren.

Open je terminal en log in op de mongo shell als ‘wekan’ gebruiker.

mongo -u wekan -p --authenticationDatabase "wekan"

Activeer nu de gebruiker met onderstaande query’s.

use wekan
db.users.update({username:'hakase'},{$set:{isAdmin:true}})

Verlaat de mongo shell.

Verlaat de Mongo shell

Ga terug naar je browser en open opnieuw de Wekan url installatie.

http://wekan.hakase-labs.co/

Typ je gebruikersnaam en wachtwoord, en klik dan op de ‘Sign In’ knop.

Kan zich aanmelden

En je krijgt het Wekan gebruikersdashboard.

Wekan dashboard

Hieronder staat het wekan voorbeeldproject.

Wekan voorbeeldproject

De Wekan installatie op CentOS 7 systeem met MongoDB en Nginx webserver is met succes voltooid.

Referentie