Kako namestiti Wekan (Open Source Kanban) na CentOS 7

Wekan je kanban plošča, zgrajena z ogrodjem Meteor JavaScript. Šteje se za odprtokodno in samostojno alternativo Trellu, ki zagotavlja skoraj enake funkcije. Omogoča vam ustvarjanje seznamov upravljanja "opravkov", ki temeljijo na karticah. Wekan je v veliko pomoč pri povečanju produktivnosti pri delu v skupnem okolju. Wekan ima popolnoma odziven spletni vmesnik in je aktivno preveden v številne jezike.

Predpogoji

  • Primerek strežnika Vultr CentOS 7.
  • Uporabnik sudo .

Za to vadnico bomo uporabili wekan.example.comkot ime domene, usmerjeno proti primerku Vultr. Prosimo, da zamenjate vse pojavitve vzorčnega imena domene z dejanskim.

Posodobite svoj osnovni sistem z uporabo priročnika Kako posodobiti CentOS 7 . Ko je vaš sistem posodobljen, nadaljujte z namestitvijo odvisnosti.

Namestite Node.js

Wekan podpira samo Node.js LTS version 4.8. Za namestitev Node.js bomo uporabili upravitelja različic vozlišča. Namestite nvmtako, da zaženete namestitveni skript.

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

Če želite takoj začeti uporabljati nvm, zaženite to.

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

Če nvmje bil nameščen uspešno, bi morali imeti možnost preveriti njegovo različico.

[user@vultr ~]$ nvm --version
0.33.4

Namestite Node.js.

nvm install v4.8

Nastavite privzeto različico Node.js.

nvm use node

Če se je Node.js uspešno namestil, bi morali imeti možnost preveriti njegovo različico.

node -v

Videli boste ta izhod.

[user@vultr ~]$ node -v
v4.8.4

NVM namesti Node.js samo za trenutnega uporabnika. Da bo Node.js dostopen globalno, zaženite to.

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

Node.js je zdaj na voljo kot /bin/node.

[user@vultr ~]$ sudo which node
/bin/node

Namestite MongoDB

MongoDB je brezplačen in odprtokodni strežnik baz podatkov NoSQL. Za razliko od tradicionalnih baz podatkov, ki uporabljajo tabele za organiziranje svojih podatkov, je MongoDB usmerjen v dokumente in uporablja dokumente, podobne JSON, brez shem. Wekan uporablja MongoDB za shranjevanje svojih podatkov.

Wekan je združljiv samo z MongoDB version 3.2. MongoDB ni na voljo v privzetem YUMskladišču, zato boste morali ustvariti novo datoteko repozitorija.

sudo nano /etc/yum.repos.d/mongodb-org-3.2.repo

Napolnite datoteko z naslednjo vsebino.

[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

Namestite MongoDB.

sudo yum install -y mongodb-org

Zaženite strežnik MongoDB in omogočite, da se samodejno zažene.

sudo systemctl start mongod
sudo systemctl enable mongod

Zaščita primerka MongoDB

Privzeto v strežniku MongoDB ni omogočeno preverjanje pristnosti. Vsak uporabnik, ki ima dostop do terminala strežnika, bo imel polne privilegije pri namestitvi MongoDB. Da zavarujemo strežnik baz podatkov in omejimo dostop neprivilegiranega uporabnika, bomo morali na strežniku nastaviti avtentikacijo.

MongoDB ponuja mongolupino, ki se uporablja za izvajanje poizvedb v MongoDB. Preklopite na mongolupino tako, da vnesete.

mongo

Ustvarite novega uporabnika MongoDB s pravicami root. Uporabite lahko poljubno uporabniško ime. Prosimo, zamenjajte geslo .

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

Videti bi morali naslednji izhod.

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

...

2017-09-29T20:42:29.042+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"
                }
        ]
}

Zapustite ukazni vmesnik MongoDB v terminal Linux s pritiskom na " Ctrl+C".

Uredite konfiguracijsko datoteko MongoDB.

sudo nano /etc/mongod.conf

Na koncu datoteke dodajte naslednjo vrstico.

security:
 authorization: enabled

Znova zaženite MongoDB, da bo sprememba konfiguracije začela veljati.

sudo systemctl restart mongod

Zdaj, ko je varnost omogočena, lahko preverite, ali deluje, tako da znova preklopite na lupino mongo z mongoukazom. Tokrat, če zaženete poizvedbo, na primer show dbsza prikaz seznama baz podatkov, boste videli sporočilo, ki poroča o neuspešni avtorizaciji. Izhod za sudouporabnika spet po testiranju dnevnik, se kot nov uporabnik ste jo pravkar ustvarili.

Prijavite se kot administratoruporabnik, ki ste ga pravkar ustvarili.

mongo -u admin -p

Navedite geslo uporabnika za uspešno prijavo. Ustvarite novega uporabnika za Wekanbazo podatkov, ki bo uporabljena za shranjevanje podatkov Wekan.

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

Ne pozabite spremeniti StrongPasswordz močnim geslom. Videli boste naslednji izhod.

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

...

2017-09-29T20:52:32.450+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" ] }

Namestite Wekan

Preverite najnovejšo povezavo do izdaje Wekan na Githubu, saj so nove izdaje zelo pogoste. Prenesite najnovejšo različico Wekana iz Githuba in nadomestite povezavo do namestitvenega paketa.

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

Izvlecite preneseni arhiv v nov imenik z imenom wekan.

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

Install Bzip2, ki je potreben za ekstrakcijo odvisnosti Node.js.

sudo yum -y install bzip2

Namestite odvisnosti Node.js.

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

Strežnik Wekan bere konfiguracije iz spremenljivk okolja. Zaženite naslednje ukaze, da nastavite konfiguracije kot spremenljivke okolja.

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

Prepričajte se, da ste zamenjali geslo MongoDB za wekanuporabnika, ki ste ga ustvarili. Posodobite tudi poštni URL v skladu z nastavitvami strežnika SMTP. Če nimate pripravljenega poštnega strežnika, lahko to konfiguracijo kadar koli spremenite pozneje. Odprite požarni zid, da omogočite vrata 4000skozi požarni zid.

sudo firewall-cmd --zone=public --add-port=4000/tcp --permanent
sudo firewall-cmd --reload

Za takojšen zagon aplikacije.

cd ~/wekan/bundle
node main.js

Zdaj lahko dostopate do aplikacije tako, da obiščete http://wekan.example.com:4000. Videli boste vmesnik za prijavo v Wekan kanban tablo.

Za produkcijsko uporabo je priporočljivo nastaviti povratni proxy, ki bo služil aplikaciji na standardnih HTTPvratih, in systemdstoritev za upravljanje postopka aplikacije. V tej vadnici bomo spletni strežnik Nginx uporabili kot povratni proxy, zaščiten z brezplačnim SSL Let's Encrypt.

Nastavitev povratnega proxyja Nginx

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

sudo yum -y install certbot nginx

Before you can request the SSL certificates, you will need to allow port 80 and 443 through the firewall. Certbot will check the domain authority before issuing certificates.

sudo firewall-cmd --zone=public --add-service=http --permanent
sudo firewall-cmd --zone=public --add-service=https --permanent

Now that we are running Wekan on a standard HTTPS port, we do not need to allow port 4000 through the firewall. Adjust the firewall to remove port 4000.

sudo firewall-cmd --zone=public --remove-port=4000/tcp --permanent
sudo firewall-cmd --reload

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

Ustvarjena potrdila bodo verjetno shranjena v /etc/letsencrypt/live/wekan.example.com/imeniku. Potrdilo SSL bo shranjeno kot fullchain.pem, zasebni ključ pa kot privkey.pem.

Potrdila Let's Encrypt potečejo v 90 dneh, zato je priporočljivo, da s Cronjobom nastavite samodejno obnovo potrdil. Cron je sistemska storitev, ki se uporablja za izvajanje občasnih opravil.

Odprite datoteko opravila cron.

sudo crontab -e

Dodajte naslednjo vrstico na konec datoteke.

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

Zgornje opravilo cron se bo izvajalo vsak dan ob 5.30. Če potrdila potečejo, jih bo samodejno podaljšala.

Ustvarite novega virtualnega gostitelja.

sudo nano /etc/nginx/conf.d/wekan.example.com.conf

Napolnite datoteko z naslednjim.

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

Zamenjajte wekan.example.coms svojim dejanskim imenom domene v zgornji konfiguraciji.

Znova zaženite Nginx, da bodo spremembe začele veljati.

sudo systemctl restart nginx

Omogočite, da se Nginx samodejno zažene ob zagonu.

sudo systemctl enable nginx

Nastavite storitev Systemd

Ustvarite novega uporabnika za postopek.

sudo adduser wekan -s /usr/sbin/nologin -d /opt/wekan

Zdaj premaknite vse datoteke v /opt/wekanimenik.

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

Novoustvarjenemu uporabniku zagotovite lastništvo datotek.

sudo chown -R wekan:wekan /opt/wekan

Wekan ne jemlje podatkov iz nobene konfiguracijske datoteke. Namesto tega do njega dostopa iz spremenljivk okolja. Ustvarili bomo novo datoteko za shranjevanje spremenljivk okolja. Datoteka, ki vsebuje spremenljivke okolja, bo posredovana skozi Systemdstoritev.

Ustvarite novo datoteko za shranjevanje spremenljivk okolja.

 sudo nano /opt/wekan/config.env

Napolnite datoteko z naslednjo vsebino.

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

Prosimo, zamenjajte usernamein password.

wekanUporabniku zagotovite lastništvo .

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

Ustvarite novo storitveno datoteko za storitev Wekan systemd.

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

Napolnite datoteko z naslednjim.

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

[Service]
Type=simple
Restart=on-failure
StartLimitInterval=86400
StartLimitBurst=5
RestartSec=10
ExecStart=/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

Shranite datoteko in zapustite urejevalnik. Zdaj lahko enostavno zaženete Wekan.

sudo systemctl start wekan

Če želite omogočiti, da se Wekan samodejno zažene ob zagonu.

sudo systemctl enable wekan

Za preverjanje stanja storitve Wekan.

sudo systemctl status wekan

Zavijanje

Zdaj lahko dostopate do primerka Wekan na https://wekan.example.com. Začnite z ustvarjanjem novega računa. Ko ustvarite račun, lahko novoustvarjenemu uporabniku omogočite skrbniški dostop. Prijavite se v lupino MongoDB kot skrbniški uporabnik.

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

Zdaj izberite wekanbazo podatkov in posodobite objekt, da boste uporabnika povišali v skrbniškega uporabnika.

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

Ne pozabite zamenjati admin_userz dejanskim uporabniškim imenom uporabnika, ki ste ga ustvarili. V skrbniškem vmesniku boste lahko onemogočili samoregistracijo in posodobili nastavitve SMTP.

Čestitamo, uspešno ste namestili ploščo Wekan Kanban na vaš primerek Vultr CentOS.

Pusti komentar

Vzpon strojev: aplikacije AI v resničnem svetu

Vzpon strojev: aplikacije AI v resničnem svetu

Umetna inteligenca ni v prihodnosti, tukaj je prav v sedanjosti. V tem blogu preberite, kako so aplikacije umetne inteligence vplivale na različne sektorje.

DDOS napadi: kratek pregled

DDOS napadi: kratek pregled

Ste tudi vi žrtev DDOS napadov in ste zmedeni glede načinov preprečevanja? Preberite ta članek, če želite rešiti svoja vprašanja.

Ste se kdaj vprašali, kako hekerji zaslužijo denar?

Ste se kdaj vprašali, kako hekerji zaslužijo denar?

Morda ste že slišali, da hekerji zaslužijo veliko denarja, a ste se kdaj vprašali, kako zaslužijo takšen denar? razpravljajmo.

Revolucionarni Googlovi izumi, ki vam bodo olajšali življenje.

Revolucionarni Googlovi izumi, ki vam bodo olajšali življenje.

Ali želite videti revolucionarne izume Googla in kako so ti izumi danes spremenili življenje vsakega človeka? Nato preberite v blogu in si oglejte Googlove izume.

Friday Essential: Kaj se je zgodilo z avtomobili, ki jih poganja umetna inteligenca?

Friday Essential: Kaj se je zgodilo z avtomobili, ki jih poganja umetna inteligenca?

Koncept samovozečih avtomobilov, ki zapeljejo na ceste s pomočjo umetne inteligence, so sanje, ki jih imamo že nekaj časa. A kljub številnim obljubam jih ni nikjer. Preberite ta blog, če želite izvedeti več…

Tehnološka singularnost: oddaljena prihodnost človeške civilizacije?

Tehnološka singularnost: oddaljena prihodnost človeške civilizacije?

Ker se znanost hitro razvija in prevzame veliko naših prizadevanj, se povečuje tudi tveganje, da se podvržemo nerazložljivi singularnosti. Preberite, kaj bi za nas lahko pomenila singularnost.

Funkcionalnosti slojev referenčne arhitekture velikih podatkov

Funkcionalnosti slojev referenčne arhitekture velikih podatkov

Preberite blog, če želite na najpreprostejši način spoznati različne plasti v arhitekturi velikih podatkov in njihove funkcionalnosti.

Razvoj shranjevanja podatkov – Infografika

Razvoj shranjevanja podatkov – Infografika

Metode shranjevanja podatkov so se lahko razvijale od rojstva podatkov. Ta blog pokriva razvoj shranjevanja podatkov na podlagi infografike.

6 neverjetnih prednosti pametnih naprav za dom v našem življenju

6 neverjetnih prednosti pametnih naprav za dom v našem življenju

V tem digitalno vodenem svetu so pametne naprave za dom postale ključni del življenja. Tukaj je nekaj neverjetnih prednosti pametnih naprav za dom o tem, kako naredijo naše življenje vredno življenja in poenostavijo.

Posodobitev dodatka macOS Catalina 10.15.4 povzroča več težav kot jih rešuje

Posodobitev dodatka macOS Catalina 10.15.4 povzroča več težav kot jih rešuje

Pred kratkim je Apple izdal macOS Catalina 10.15.4 dopolnilno posodobitev za odpravo težav, vendar se zdi, da posodobitev povzroča več težav, ki vodijo do opečenja računalnikov Mac. Preberite ta članek, če želite izvedeti več