Hvordan installere Wekan (Open Source Kanban) på Ubuntu 16.04

Wekan er et kanban-brett bygget med Meteor JavaScript-rammeverket. Det regnes som et åpen kildekode og selvdrevet alternativ til Trello, og gir nesten de samme funksjonene. Den lar deg lage kortbaserte "to-do"-administrasjonslister. Wekan er svært nyttig for å øke produktiviteten når du jobber i et samarbeidsmiljø. Wekan har et fullt responsivt webgrensesnitt, og det er aktivt oversatt til mange språk.

Forutsetninger

  • En Vultr Ubuntu 16.04-serverforekomst.
  • En sudo-bruker .

For denne opplæringen vil vi bruke wekan.example.comsom domenenavnet peker mot Vultr-forekomsten. Sørg for å erstatte alle forekomster av eksempeldomenenavnet med det faktiske.

Oppdater basissystemet ditt ved å bruke veiledningen Hvordan oppdatere Ubuntu 16.04 . Når systemet ditt har blitt oppdatert, fortsett å installere avhengighetene.

Installer Node.js

Wekan støtter kun Node.js LTS version 4.8. For å installere Node.js bruker vi nodeversjonsbehandleren. Installer nvmved å kjøre installasjonsskriptet.

wget -qO- https://raw.githubusercontent.com/creationix/nvm/v0.33.4/install.sh | bash

For å begynne å bruke umiddelbart nvm, kjør dette.

export NVM_DIR="$HOME/.nvm"
[ -s "$NVM_DIR/nvm.sh" ] && \. "$NVM_DIR/nvm.sh"

Hvis den nvmhar installert vellykket, bør du kunne sjekke versjonen.

user@vultr:~$ nvm --version
0.33.4

Installer Node.js.

nvm install v4.8

Angi standardversjonen av Node.js.

nvm use node

Hvis Node.js har installert vellykket, bør du kunne sjekke versjonen.

node -v

Du vil se denne utgangen.

user@vultr:~$ node -v
v4.8.4

NVM installerer kun Node.js for gjeldende bruker. For at Node.js skal være tilgjengelig globalt, kjør dette.

n=$(which node);n=${n%/bin/node}; chmod -R 755 $n/bin/*; sudo cp -r $n/{bin,lib,share} /usr

Node.js er nå tilgjengelig som /usr/bin/node.

user@vultr:~$ sudo which node
/usr/bin/node

Installer MongoDB

MongoDB er en gratis og åpen kildekode NoSQL-databaseserver. I motsetning til tradisjonelle databaser som bruker tabeller for å organisere dataene sine, er MongoDB dokumentorientert og bruker JSON-lignende dokumenter uten skjemaer. Wekan bruker MongoDB til å lagre dataene sine.

Wekan er kun kompatibel med MongoDB version 3.2. Opprett en ny depotfil.

echo "deb http://repo.mongodb.org/apt/ubuntu xenial/mongodb-org/3.2 multiverse" | sudo tee /etc/apt/sources.list.d/mongodb-org-3.2.list

Importer MongoDB offentlige GPG-nøkkel og oppdater pakkelisten.

sudo apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv EA312927
sudo apt update

Installer MongoDB.

sudo apt install -y mongodb-org

Start MongoDB og la den starte automatisk.

sudo systemctl start mongod
sudo systemctl enable mongod

Sikring av MongoDB-forekomst

Som standard er det ingen autentisering aktivert i en MongoDB-server. Enhver bruker som har tilgang til terminalen på serveren vil ha fulle rettigheter på MongoDB-installasjonen. For å sikre databaseserveren og begrense tilgangen til en uprivilegert bruker, må vi sette opp autentisering på serveren.

MongoDB gir et mongoskall som brukes til å kjøre spørringer på MongoDB. Bytt til mongoskallet.

mongo

Opprett en ny MongoDB-bruker med root-privilegier. Du kan bruke hvilket som helst brukernavn du ønsker. Sørg for å erstatte passordet .

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

Du bør se følgende utgang.

user@vultr:~$ mongo
MongoDB shell version: 3.2.17
connecting to: test
Welcome to the MongoDB shell.

...

2017-09-30T18:11:40.274+0000 I CONTROL  [initandlisten]
> db.createUser(
...   {
...     user: "admin",
...     pwd: "StrongAdminPassword",
...     roles: [ { role: "root", db: "admin" } ]
...   }
... )
Successfully added user: {
        "user" : "admin",
        "roles" : [
                {
                        "role" : "root",
                        "db" : "admin"
                }
        ]
}

Gå ut av MongoDB-kommandogrensesnittet til Linux-terminalen ved å trykke " Ctrl+C".

Rediger MongoDB-konfigurasjonsfilen.

sudo nano /etc/mongod.conf

Legg til følgende linje på slutten av filen.

security:
 authorization: enabled

Start MongoDB på nytt slik at konfigurasjonsendringen kan tre i kraft.

sudo systemctl restart mongod

Nå som sikkerheten er aktivert, kan du teste om den fungerer ved å bytte til mongo-skallet igjen ved å bruke mongokommandoen. Denne gangen, hvis du kjører en spørring, for eksempel for show dbså vise listen over databaser, vil du se en melding som rapporterer mislykket autorisasjon. Gå ut til sudobrukeren igjen etter å ha testet innloggingen som den nye brukeren du nettopp opprettet.

Logg inn som administratorbrukeren du nettopp opprettet.

mongo -u admin -p

Oppgi passordet til brukeren for en vellykket pålogging. Opprett en ny bruker for wekandatabasen som skal brukes til å lagre Wekan-data.

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

Sørg for å erstatte StrongPasswordmed et sterkt passord. Du vil se følgende utgang.

user@vultr:~$ mongo -u admin -p
MongoDB shell version: 3.2.17
Enter password:
connecting to: test

...

2017-09-30T18:13:26.007+0000 I CONTROL  [initandlisten]
>
> use wekan
switched to db wekan
> db.createUser(
...     {
...       user: "wekan",
...       pwd: "StrongPassword",
...       roles: ["readWrite"]
...     }
...  )
Successfully added user: { "user" : "wekan", "roles" : [ "readWrite" ] }

Installer Wekan

Check for the latest link to the Wekan release on Github as new releases are very frequent. Download the latest version of Wekan from Github replacing the link to the installer package.

cd ~
wget https://github.com/wekan/wekan/releases/download/v0.44/wekan-0.44.tar.gz

Extract the downloaded archive into a new directory named wekan.

mkdir wekan
tar xzvf wekan-*.tar.gz -C wekan

Install the Node.js dependencies.

cd wekan/bundle/programs/server && npm install

The Wekan server reads configurations from the environment variables. Run the following commands to set the configurations as environment variables.

export MONGO_URL='mongodb://wekan:StrongPassword@127.0.0.1:27017/wekan?authSource=wekan'
export ROOT_URL='http://wekan.example.com'
export MAIL_URL='smtp://user:pass@mail.example.com:25/'
export MAIL_FROM='wekan@example.com'
export PORT=4000

Make sure to replace the MongoDB password for the wekan user you have created. Also, update the mail URL according to your SMTP server settings. If you do not have an email server ready, you can always change this configuration later.

To immediately start the application.

cd ~/wekan/bundle
node main.js

You can now access the application by going to http://wekan.example.com:4000. You will see the interface to log-in into the Wekan kanban board.

For production use, it is recommended to set up a reverse proxy to serve the application on the standard HTTP port and a systemd service to manage the application process. In this tutorial, we will use the Nginx web server as a reverse proxy, secured with a Let's Encrypt free SSL.

Setting up the Nginx Reverse Proxy

Add the Certbot PPA repository to the system.

sudo add-apt-repository ppa:certbot/certbot
sudo apt update

Install Nginx and Certbot, which is the client application for Let's Encrypt CA.

sudo apt -y install certbot nginx

Note: The domain name which you are using to obtain the certificates from the Let's Encrypt CA must be pointed towards the server. The client verifies the domain authority before issuing the certificates.

Generate the SSL certificates.

sudo certbot certonly --standalone -d wekan.example.com

The generated certificates are likely to be stored in the /etc/letsencrypt/live/wekan.example.com/ directory. The SSL certificate will be stored as fullchain.pem, and private key will be stored as privkey.pem.

Let's Encrypt certificates expire in 90 days, so it is recommended to set up auto-renewal of the certificates using Cronjob. Cron is a system service which is used to run periodic tasks.

Open the cron job file.

sudo crontab -e

Add the following line at the end of the file.

30 5 * * * /usr/bin/certbot renew --quiet

The above cron job will run every day at 5:30 AM. If the certificates are due for expiration, it will automatically renew them.

Create a new virtual host.

sudo nano /etc/nginx/sites-available/wekan.example.com.conf

Populate the file with the following.

upstream wekan {
        server 127.0.0.1:4000;
}
server {
        listen  80;
        listen [::]:80;
        server_name  wekan.example.com;

        location / {
                if ($ssl_protocol = "") {
                        rewrite     ^   https://$server_name$request_uri? permanent;
                }
        }
}

server {
        listen 443 ssl;
        listen [::]:443 ssl;
        server_name wekan.example.com;

        add_header Strict-Transport-Security "max-age=15768000";

        ssl_certificate /etc/letsencrypt/live/wekan.example.com/fullchain.pem;
        ssl_certificate_key /etc/letsencrypt/live/wekan.example.com/privkey.pem;

        ssl_session_timeout 1d;
        ssl_session_cache shared:SSL:10m;
        ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
        ssl_ciphers 'ECDHE-ECDSA-CHACHA20-POLY1305:ECDHE-RSA-CHACHA20-POLY1305:ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-GCM-SHA384:DHE-RSA-AES128-GCM-SHA256:DHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-AES128-SHA256:ECDHE-RSA-AES128-SHA256:ECDHE-ECDSA-AES128-SHA:ECDHE-RSA-AES256-SHA384:ECDHE-RSA-AES128-SHA:ECDHE-ECDSA-AES256-SHA384:ECDHE-ECDSA-AES256-SHA:ECDHE-RSA-AES256-SHA:DHE-RSA-AES128-SHA256:DHE-RSA-AES128-SHA:DHE-RSA-AES256-SHA256:DHE-RSA-AES256-SHA:ECDHE-ECDSA-DES-CBC3-SHA:ECDHE-RSA-DES-CBC3-SHA:EDH-RSA-DES-CBC3-SHA:AES128-GCM-SHA256:AES256-GCM-SHA384:AES128-SHA256:AES256-SHA256:AES128-SHA:AES256-SHA:DES-CBC3-SHA:!DSS';
        ssl_prefer_server_ciphers on;

        ssl_stapling on;
        ssl_stapling_verify on;

        error_page 497  https://$host:$server_port$request_uri;
        location / {
            proxy_pass http://wekan;
            proxy_http_version 1.1;
            proxy_set_header Host $host:$server_port;
            proxy_set_header Referer $http_referer;
            proxy_set_header X-Real-IP $remote_addr;
            proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
            proxy_set_header X-Forwarded-Proto https;
            proxy_set_header X-Forwarded-Ssl on;
            proxy_set_header X-Nginx-Proxy true;

            proxy_set_header Upgrade $http_upgrade;
            proxy_set_header Connection "upgrade";

            proxy_redirect off;

            proxy_send_timeout 86400;
            proxy_read_timeout 86400;
        }
}

Replace wekan.example.com with your actual domain name in the above configuration.

Enable the newly added site.

sudo ln -s /etc/nginx/sites-available/wekan.example.com.conf /etc/nginx/sites-enabled/wekan.example.com.conf

Restart Nginx so that the changes can take effect.

sudo systemctl restart nginx

Aktiver Nginx til å starte automatisk ved oppstart.

sudo systemctl enable nginx

Konfigurer Systemd Service

Opprett en ny bruker for at prosessen skal kjøre.

sudo adduser wekan --shell /usr/sbin/nologin --home /opt/wekan

Flytt nå alle filene til /opt/wekankatalogen.

sudo mv ~/wekan/* /opt/wekan/

Gi eierskap til filene til den nyopprettede brukeren.

sudo chown -R wekan:wekan /opt/wekan

Wekan tar ikke data fra noen konfigurasjonsfil. I stedet får den tilgang til den fra miljøvariabler. Vi vil opprette en ny fil for å lagre miljøvariablene. Filen som inneholder miljøvariablene sendes gjennom Systemdtjenesten.

Opprett en ny fil for å lagre miljøvariabler.

 sudo nano /opt/wekan/config.env

Fyll filen med følgende innhold.

MONGO_URL='mongodb://wekan:StrongPassword@127.0.0.1:27017/wekan?authSource=wekan'
ROOT_URL='http://wekan.example.com'
MAIL_URL='smtp://user:pass@mail.example.com:25/'
MAIL_FROM='wekan@example.com'
PORT=4000
HTTP_FORWARDED_COUNT=1

Sørg for å erstatte usernameog password.

Gi eierskapet til wekanbrukeren ved å kjøre.

sudo chown -R wekan:wekan /opt/wekan/config.env

Opprett en ny tjenestefil for Wekan systemd-tjenesten.

sudo nano /etc/systemd/system/wekan.service

Fyll filen med følgende.

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

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

[Install]
WantedBy=multi-user.target

Lagre filen og gå ut av redigeringsprogrammet. Nå kan du enkelt starte Wekan.

sudo systemctl start wekan

For å aktivere Wekan til å starte automatisk ved oppstart.

sudo systemctl enable wekan

For å sjekke statusen til Wekan-tjenesten.

sudo systemctl status wekan

Innpakning

Du kan nå få tilgang til Wekan-forekomsten på https://wekan.example.com. Start med å opprette en ny konto. Når du har opprettet kontoen, kan du aktivere administrativ tilgang til den nyopprettede brukeren. Logg på MongoDB-skallet som administrativ bruker.

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

Velg nå wekandatabasen og oppdater objektet for å promotere brukeren til adminbrukeren.

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

Sørg for å erstatte admin_usermed det faktiske brukernavnet til brukeren du opprettet. Fra administrasjonsgrensesnittet vil du kunne deaktivere selvregistrering og oppdatere SMTP-innstillinger.

Gratulerer, du har installert Wekan Kanban-kortet på din Vultr Ubuntu-forekomst.

Legg igjen en kommentar

The Rise of Machines: Real World Applications of AI

The Rise of Machines: Real World Applications of AI

Kunstig intelligens er ikke i fremtiden, det er her akkurat i nåtiden I denne bloggen Les hvordan kunstig intelligens-applikasjoner har påvirket ulike sektorer.

DDOS-angrep: en kort oversikt

DDOS-angrep: en kort oversikt

Er du også et offer for DDOS-angrep og forvirret over forebyggingsmetodene? Les denne artikkelen for å løse spørsmålene dine.

Har du noen gang lurt på hvordan hackere tjener penger?

Har du noen gang lurt på hvordan hackere tjener penger?

Du har kanskje hørt at hackere tjener mye penger, men har du noen gang lurt på hvordan tjener de den slags penger? la oss diskutere.

Revolusjonerende oppfinnelser fra Google som vil gjøre livet ditt enkelt.

Revolusjonerende oppfinnelser fra Google som vil gjøre livet ditt enkelt.

Vil du se revolusjonerende oppfinnelser fra Google og hvordan disse oppfinnelsene forandret livet til alle mennesker i dag? Les deretter til bloggen for å se oppfinnelser fra Google.

Fredag ​​Essential: Hva skjedde med AI-drevne biler?

Fredag ​​Essential: Hva skjedde med AI-drevne biler?

Konseptet med selvkjørende biler som skal ut på veiene ved hjelp av kunstig intelligens er en drøm vi har hatt en stund nå. Men til tross for flere løfter, er de ingen steder å se. Les denne bloggen for å lære mer...

Teknologisk singularitet: en fjern fremtid for menneskelig sivilisasjon?

Teknologisk singularitet: en fjern fremtid for menneskelig sivilisasjon?

Ettersom vitenskapen utvikler seg raskt og tar over mye av innsatsen vår, øker også risikoen for å utsette oss for en uforklarlig singularitet. Les hva singularitet kan bety for oss.

Funksjonaliteter til Big Data Reference Architecture Layers

Funksjonaliteter til Big Data Reference Architecture Layers

Les bloggen for å kjenne ulike lag i Big Data Architecture og deres funksjoner på den enkleste måten.

Evolusjon av datalagring – infografikk

Evolusjon av datalagring – infografikk

Lagringsmetodene for dataene har vært i utvikling kan være siden fødselen av dataene. Denne bloggen dekker utviklingen av datalagring på grunnlag av en infografikk.

6 fantastiske fordeler ved å ha smarte hjemmeenheter i livene våre

6 fantastiske fordeler ved å ha smarte hjemmeenheter i livene våre

I denne digitaldrevne verden har smarthusenheter blitt en avgjørende del av livet. Her er noen fantastiske fordeler med smarthusenheter om hvordan de gjør livet vårt verdt å leve og enklere.

macOS Catalina 10.15.4 tilleggsoppdatering forårsaker flere problemer enn å løse

macOS Catalina 10.15.4 tilleggsoppdatering forårsaker flere problemer enn å løse

Nylig lanserte Apple macOS Catalina 10.15.4 en tilleggsoppdatering for å fikse problemer, men det ser ut til at oppdateringen forårsaker flere problemer som fører til muring av mac-maskiner. Les denne artikkelen for å lære mer