Hoe Wekan (Open Source Kanban) op Ubuntu 16.04 te installeren

Wekan is een kanban-bord gebouwd met het Meteor JavaScript-framework. Het wordt beschouwd als een open source en zelf-gehost alternatief voor Trello, dat bijna dezelfde functies biedt. Hiermee kunt u op kaarten gebaseerde "to-do" -beheerslijsten maken. Wekan is erg nuttig om de productiviteit te verhogen wanneer u in een samenwerkingsomgeving werkt. Wekan heeft een volledig responsieve webinterface en wordt actief vertaald in vele talen.

Vereisten

Voor deze zelfstudie gebruiken we wekan.example.comde domeinnaam die naar de Vultr-instantie verwijst. Zorg ervoor dat u alle exemplaren van de voorbeelddomeinnaam vervangt door de werkelijke.

Update uw basissysteem met behulp van de handleiding Ubuntu 16.04 bijwerken . Zodra uw systeem is bijgewerkt, gaat u verder met het installeren van de afhankelijkheden.

Installeer Node.js

Wekan ondersteunt alleen Node.js LTS version 4.8. Om Node.js te installeren, gebruiken we de node-versiebeheerder. Installeer nvmdoor het installatiescript uit te voeren.

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

nvmVoer dit uit om onmiddellijk aan de slag te gaan.

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

Als het nvmmet succes is geïnstalleerd, moet u de versie ervan kunnen controleren.

user@vultr:~$ nvm --version
0.33.4

Installeer Node.js.

nvm install v4.8

Stel de standaardversie van Node.js.

nvm use node

Als Node.js met succes is geïnstalleerd, moet u de versie ervan kunnen controleren.

node -v

Je zult deze output zien.

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

NVM installeert Node.js alleen voor de huidige gebruiker. Voer Node.js uit om wereldwijd toegankelijk te zijn.

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

Node.js is nu beschikbaar als /usr/bin/node.

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

Installeer MongoDB

MongoDB is een gratis en open source NoSQL-databaseserver. In tegenstelling tot traditionele databases die tabellen gebruiken om hun gegevens te ordenen, is MongoDB documentgericht en gebruikt het JSON-achtige documenten zonder schema's. Wekan gebruikt MongoDB om zijn gegevens op te slaan.

Wekan is alleen compatibel met MongoDB version 3.2. Maak een nieuw repository-bestand.

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

Importeer de openbare GPG-sleutel van MongoDB en werk de pakketlijst bij.

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

Installeer MongoDB.

sudo apt install -y mongodb-org

Start MongoDB en schakel het automatisch in.

sudo systemctl start mongod
sudo systemctl enable mongod

MongoDB-exemplaar beveiligen

Standaard is er geen verificatie ingeschakeld op een MongoDB-server. Elke gebruiker die toegang heeft tot de terminal van de server heeft volledige rechten op de MongoDB-installatie. Om de databaseserver te beveiligen en de toegang van een onbevoegde gebruiker te beperken, moeten we verificatie op de server instellen.

MongoDB biedt een mongoshell die wordt gebruikt om query's uit te voeren op MongoDB. Schakel over naar de mongoshell.

mongo

Maak een nieuwe MongoDB-gebruiker met rootprivileges. U kunt elke gebruikersnaam van uw keuze gebruiken. Zorg ervoor dat u het wachtwoord vervangt .

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

Je zou de volgende output moeten zien.

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

Sluit de MongoDB-opdrachtinterface af naar de Linux-terminal door op " Ctrl+C" te drukken .

Bewerk het MongoDB-configuratiebestand.

sudo nano /etc/mongod.conf

Voeg de volgende regel toe aan het einde van het bestand.

security:
 authorization: enabled

Start MongoDB opnieuw op, zodat de configuratiewijziging van kracht kan worden.

sudo systemctl restart mongod

Nu de beveiliging is ingeschakeld, kunt u testen of het werkt door opnieuw naar de mongo-shell te schakelen met behulp van de mongoopdracht. Als u deze keer een query uitvoert, bijvoorbeeld show dbsom de lijst met databases weer te geven, ziet u een bericht dat de autorisatie is mislukt. Sluit de sudogebruiker opnieuw af nadat u de login hebt getest als de nieuwe gebruiker die u zojuist hebt gemaakt.

Log in als de administratorgebruiker die u zojuist hebt gemaakt.

mongo -u admin -p

Geef het wachtwoord van de gebruiker op voor een succesvolle login. Maak een nieuwe gebruiker voor de wekandatabase die zal worden gebruikt om Wekan-gegevens op te slaan.

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

Zorg ervoor dat u de vervangt StrongPassworddoor een sterk wachtwoord. Je ziet de volgende output.

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

Installeer Wekan

Controleer op de laatste link naar de Wekan-release op Github, aangezien nieuwe releases zeer frequent zijn. Download de nieuwste versie van Wekan van Github en vervang de link naar het installatiepakket.

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

Pak het gedownloade archief uit in een nieuwe map met de naam wekan.

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

Installeer de afhankelijkheden van Node.js.

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

De Wekan-server leest configuraties van de omgevingsvariabelen. Voer de volgende opdrachten uit om de configuraties in te stellen als omgevingsvariabelen.

export MONGO_URL='mongodb://wekan:[email protected]:27017/wekan?authSource=wekan'
export ROOT_URL='http://wekan.example.com'
export MAIL_URL='smtp://user:[email protected]:25/'
export MAIL_FROM='[email protected]'
export PORT=4000

Zorg ervoor dat u het MongoDB-wachtwoord vervangt voor de wekangebruiker die u hebt gemaakt. Werk ook de e-mail-URL bij volgens uw SMTP-serverinstellingen. Als u geen e-mailserver bij de hand heeft, kunt u deze configuratie later altijd wijzigen.

Om de applicatie onmiddellijk te starten.

cd ~/wekan/bundle
node main.js

U kunt de applicatie nu openen door naar te gaan http://wekan.example.com:4000. Je ziet de interface om in te loggen op het Wekan kanban-bord.

Voor productiegebruik wordt aanbevolen om een ​​reverse proxy in te stellen om de applicatie op de standaardpoort te bedienen HTTPen een systemdservice om het applicatieproces te beheren. In deze tutorial gebruiken we de Nginx-webserver als een reverse proxy, beveiligd met een Let's Encrypt gratis SSL.

Het opzetten van de Nginx Reverse Proxy

Voeg de Certbot PPArepository toe aan het systeem.

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

Installeer Nginx en Certbot, de clienttoepassing voor Let's Encrypt CA.

sudo apt -y install certbot nginx

Opmerking: de domeinnaam die u gebruikt om de certificaten van de Let's Encrypt CA te verkrijgen, moet naar de server worden gericht. De client verifieert de domeinautoriteit voordat de certificaten worden uitgegeven .

Genereer de SSL-certificaten.

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

De gegenereerde certificaten worden waarschijnlijk in de /etc/letsencrypt/live/wekan.example.com/directory opgeslagen . Het SSL-certificaat wordt opgeslagen als fullchain.pemen de privésleutel wordt opgeslagen als privkey.pem.

Let's Encrypt-certificaten verlopen over 90 dagen, dus het wordt aanbevolen om automatische verlenging van de certificaten in te stellen met Cronjob. Cron is een systeemservice die wordt gebruikt om periodieke taken uit te voeren.

Open het cron-taakbestand.

sudo crontab -e

Voeg de volgende regel toe aan het einde van het bestand.

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

De bovenstaande cron-taak wordt elke dag om 05.30 uur uitgevoerd. Als de certificaten vervallen, worden ze automatisch verlengd.

Maak een nieuwe virtuele host.

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

Vul het bestand in met het volgende.

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

Vervang wekan.example.comdoor uw werkelijke domeinnaam in de bovenstaande configuratie.

Schakel de nieuw toegevoegde site in.

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

Start Nginx opnieuw op zodat de wijzigingen van kracht kunnen worden.

sudo systemctl restart nginx

Schakel Nginx in om automatisch te starten tijdens het opstarten.

sudo systemctl enable nginx

Systemd-service instellen

Maak een nieuwe gebruiker aan om het proces uit te voeren.

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

Verplaats nu alle bestanden naar de /opt/wekanmap.

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

Geef de nieuw aangemaakte gebruiker het eigendom van de bestanden.

sudo chown -R wekan:wekan /opt/wekan

Wekan neemt geen gegevens van enig configuratiebestand. In plaats daarvan krijgt het toegang via omgevingsvariabelen. We zullen een nieuw bestand maken om de omgevingsvariabelen op te slaan. Het bestand met de omgevingsvariabelen wordt via de Systemdservice doorgegeven .

Maak een nieuw bestand om omgevingsvariabelen op te slaan.

 sudo nano /opt/wekan/config.env

Vul het bestand met de volgende inhoud.

MONGO_URL='mongodb://wekan:[email protected]:27017/wekan?authSource=wekan'
ROOT_URL='http://wekan.example.com'
MAIL_URL='smtp://user:[email protected]:25/'
MAIL_FROM='[email protected]'
PORT=4000
HTTP_FORWARDED_COUNT=1

Zorg ervoor dat u de usernameen vervangt password.

Geef de wekangebruiker het eigendom door te rennen.

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

Maak een nieuw servicebestand voor de Wekan systemd-service.

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

Vul het bestand in met het volgende.

[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

Sla het bestand op en verlaat de editor. Nu kunt u Wekan eenvoudig starten.

sudo systemctl start wekan

Om Wekan in staat te stellen automatisch te starten tijdens het opstarten.

sudo systemctl enable wekan

Om de status van de Wekan-service te controleren.

sudo systemctl status wekan

Afsluiten

U hebt nu toegang tot de Wekan-instantie op https://wekan.example.com. Begin met het aanmaken van een nieuw account. Nadat u het account heeft aangemaakt, kunt u beheerderstoegang voor de nieuw aangemaakte gebruiker inschakelen. Log in op de MongoDB-shell als de administratieve gebruiker.

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

Selecteer nu de wekandatabase en werk het object bij om de gebruiker te promoten bij de admin-gebruiker.

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

Zorg ervoor dat u deze vervangt admin_userdoor de daadwerkelijke gebruikersnaam van de gebruiker die u heeft gemaakt. Vanuit de admin-interface kunt u zelfregistratie uitschakelen en SMTP-instellingen bijwerken.

Gefeliciteerd, je hebt met succes het Wekan Kanban-bord op je Vultr Ubuntu-instantie geïnstalleerd.



Leave a Comment

Kan AI vechten met toenemend aantal ransomware-aanvallen?

Kan AI vechten met toenemend aantal ransomware-aanvallen?

Ransomware-aanvallen nemen toe, maar kan AI helpen het nieuwste computervirus het hoofd te bieden? Is AI het antwoord? Lees hier weten is AI boezem of vloek

ReactOS: is dit de toekomst van Windows?

ReactOS: is dit de toekomst van Windows?

ReactOS, een open source en gratis besturingssysteem is hier met de nieuwste versie. Kan het voldoen aan de behoeften van moderne Windows-gebruikers en Microsoft uitschakelen? Laten we meer te weten komen over deze oude stijl, maar een nieuwere OS-ervaring.

Blijf verbonden via WhatsApp Desktop-app 24 * 7

Blijf verbonden via WhatsApp Desktop-app 24 * 7

WhatsApp heeft eindelijk de Desktop-app voor Mac- en Windows-gebruikers gelanceerd. Nu heb je eenvoudig toegang tot WhatsApp vanuit Windows of Mac. Beschikbaar voor Windows 8+ en Mac OS 10.9+

Hoe AI procesautomatisering naar een hoger niveau kan tillen?

Hoe AI procesautomatisering naar een hoger niveau kan tillen?

Lees dit om te weten hoe kunstmatige intelligentie populair wordt onder de kleinschalige bedrijven en hoe het de kansen vergroot om ze te laten groeien en hun concurrenten voorsprong te geven.

macOS Catalina 10.15.4 Supplement Update veroorzaakt meer problemen dan het oplost

macOS Catalina 10.15.4 Supplement Update veroorzaakt meer problemen dan het oplost

Onlangs heeft Apple macOS Catalina 10.15.4 uitgebracht, een aanvullende update om problemen op te lossen, maar het lijkt erop dat de update meer problemen veroorzaakt die ertoe leiden dat mac-machines worden gemetseld. Lees dit artikel voor meer informatie

13 Commerciële data-extractietools voor big data

13 Commerciële data-extractietools voor big data

13 Commerciële data-extractietools voor big data

Wat is een logboekbestandssysteem en hoe werkt het?

Wat is een logboekbestandssysteem en hoe werkt het?

Onze computer slaat alle gegevens op een georganiseerde manier op, het zogenaamde Journaling-bestandssysteem. Het is een efficiënte methode waarmee de computer bestanden kan zoeken en weergeven zodra u op zoeken drukt.https://wethegeek.com/?p=94116&preview=true

Technologische singulariteit: een verre toekomst van de menselijke beschaving?

Technologische singulariteit: een verre toekomst van de menselijke beschaving?

Naarmate de wetenschap zich snel ontwikkelt en veel van onze inspanningen overneemt, nemen ook de risico's toe om onszelf te onderwerpen aan een onverklaarbare singulariteit. Lees, wat singulariteit voor ons kan betekenen.

Een inzicht in 26 Big Data-analysetechnieken: deel 1

Een inzicht in 26 Big Data-analysetechnieken: deel 1

Een inzicht in 26 Big Data-analysetechnieken: deel 1

De impact van kunstmatige intelligentie in de gezondheidszorg 2021

De impact van kunstmatige intelligentie in de gezondheidszorg 2021

AI in de zorg heeft de afgelopen decennia grote sprongen gemaakt. De toekomst van AI in de gezondheidszorg groeit dus nog steeds met de dag.