Preduvjeti
Instalirajte Node.js
Instalirajte MongoDB
Instalirajte Wekan
Postavljanje obrnutog proxyja Nginx
Postavite Systemd uslugu
Završavati
Wekan je kanban ploča izgrađena s Meteor JavaScript okvirom. Smatra se alternativom Trellu otvorenog koda i samostalno hostiranom, pružajući gotovo iste značajke. Omogućuje vam stvaranje popisa upravljanja "to-do" na temelju kartica. Wekan je vrlo koristan za povećanje produktivnosti kada radite u suradničkom okruženju. Wekan ima potpuno responzivno web sučelje i aktivno se prevodi na mnoge jezike.
Preduvjeti
- Instanca poslužitelja Vultr Ubuntu 16.04.
- Korisnik sudoa .
Za ovaj vodič koristit ćemo wekan.example.comkao ime domene usmjereno na Vultr instancu. Svakako zamijenite sva pojavljivanja primjera naziva domene stvarnim.
Ažurirajte svoj osnovni sustav pomoću vodiča Kako ažurirati Ubuntu 16.04 . Nakon što se vaš sustav ažurira, nastavite s instalacijom ovisnosti.
Instalirajte Node.js
Wekan podržava samo Node.js LTS version 4.8. Da bismo instalirali Node.js, koristit ćemo upravitelj verzija čvora. Instalirajte nvmpokretanjem skripte za instalaciju.
wget -qO- https://raw.githubusercontent.com/creationix/nvm/v0.33.4/install.sh | bash
Da biste odmah počeli koristiti nvm, pokrenite ovo.
export NVM_DIR="$HOME/.nvm"
[ -s "$NVM_DIR/nvm.sh" ] && \. "$NVM_DIR/nvm.sh"
Ako nvmje instaliran uspješno, trebali biste moći provjeriti njegovu verziju.
user@vultr:~$ nvm --version
0.33.4
Instalirajte Node.js.
nvm install v4.8
Postavite zadanu verziju Node.js.
nvm use node
Ako je Node.js uspješno instaliran, trebali biste moći provjeriti njegovu verziju.
node -v
Vidjet ćete ovaj izlaz.
user@vultr:~$ node -v
v4.8.4
NVM instalira Node.js samo za trenutnog korisnika. Da bi Node.js bio dostupan globalno, pokrenite ovo.
n=$(which node);n=${n%/bin/node}; chmod -R 755 $n/bin/*; sudo cp -r $n/{bin,lib,share} /usr
Node.js je sada dostupan kao /usr/bin/node.
user@vultr:~$ sudo which node
/usr/bin/node
Instalirajte MongoDB
MongoDB je besplatni NoSQL poslužitelj baze podataka otvorenog koda. Za razliku od tradicionalnih baza podataka koje koriste tablice za organiziranje svojih podataka, MongoDB je orijentiran na dokumente i koristi dokumente slične JSON-u bez shema. Wekan koristi MongoDB za pohranu svojih podataka.
Wekan je kompatibilan samo s MongoDB version 3.2. Napravite novu datoteku spremišta.
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
Uvezite MongoDB javni GPG ključ i ažurirajte popis paketa.
sudo apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv EA312927
sudo apt update
Instalirajte MongoDB.
sudo apt install -y mongodb-org
Pokrenite MongoDB i omogućite njegovo automatsko pokretanje.
sudo systemctl start mongod
sudo systemctl enable mongod
Osiguravanje MongoDB instance
Prema zadanim postavkama, na MongoDB poslužitelju nije omogućena autentifikacija. Svaki korisnik koji ima pristup terminalu poslužitelja imat će pune privilegije na instalaciju MongoDB. Kako bismo osigurali poslužitelj baze podataka i ograničili pristup neprivilegiranom korisniku, morat ćemo postaviti autentifikaciju na poslužitelju.
MongoDB pruža mongoljusku koja se koristi za pokretanje upita na MongoDB. Prijeđite na mongoljusku.
mongo
Stvorite novog MongoDB korisnika s root privilegijama. Možete koristiti bilo koje korisničko ime po svom izboru. Obavezno zamijenite lozinku .
db.createUser(
{
user: "admin",
pwd: "StrongAdminPassword",
roles: [ { role: "root", db: "admin" } ]
}
)
Trebali biste vidjeti sljedeći izlaz.
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"
}
]
}
Izađite iz naredbenog sučelja MongoDB na Linux terminal pritiskom na " Ctrl+C".
Uredite konfiguracijsku datoteku MongoDB.
sudo nano /etc/mongod.conf
Dodajte sljedeći redak na kraj datoteke.
security:
authorization: enabled
Ponovno pokrenite MongoDB kako bi promjena konfiguracije mogla stupiti na snagu.
sudo systemctl restart mongod
Sada kada je sigurnost omogućena, možete provjeriti radi li tako da se ponovno prebacite na mongo ljusku pomoću mongonaredbe. Ovaj put, ako pokrenete upit, kao što show dbsje prikaz popisa baza podataka, vidjet ćete poruku koja izvještava o neuspjelom autorizaciji. sudoPonovno izađite na korisnika nakon testiranja prijave kao novog korisnika kojeg ste upravo stvorili.
Prijavite se kao administratorkorisnik kojeg ste upravo stvorili.
mongo -u admin -p
Navedite lozinku korisnika za uspješnu prijavu. Napravite novog korisnika za wekanbazu podataka koja će se koristiti za pohranu Wekan podataka.
use wekan
db.createUser(
{
user: "wekan",
pwd: "StrongPassword",
roles: ["readWrite"]
}
)
Obavezno zamijenite StrongPasswordjakom lozinkom. Vidjet ćete sljedeći izlaz.
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" ] }
Instalirajte 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.
Generirajte SSL certifikate.
sudo certbot certonly --standalone -d wekan.example.com
Generirani certifikati će vjerojatno biti pohranjeni u /etc/letsencrypt/live/wekan.example.com/imeniku. SSL certifikat će biti pohranjen kao fullchain.pem, a privatni ključ će biti pohranjen kao privkey.pem.
Certifikati Let's Encrypt istječu za 90 dana, stoga je preporučljivo postaviti automatsku obnovu certifikata pomoću Cronjoba. Cron je sistemska usluga koja se koristi za izvršavanje periodičnih zadataka.
Otvorite cron datoteku posla.
sudo crontab -e
Dodajte sljedeći redak na kraj datoteke.
30 5 * * * /usr/bin/certbot renew --quiet
Gornji cron posao će se izvoditi svaki dan u 5:30 ujutro. Ako potvrde dospijevaju do isteka, automatski će se obnoviti.
Napravite novi virtualni host.
sudo nano /etc/nginx/sites-available/wekan.example.com.conf
Popunite datoteku sljedećim.
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;
}
}
Zamijenite wekan.example.comsvojim stvarnim imenom domene u gornjoj konfiguraciji.
Omogućite novo dodano mjesto.
sudo ln -s /etc/nginx/sites-available/wekan.example.com.conf /etc/nginx/sites-enabled/wekan.example.com.conf
Ponovno pokrenite Nginx kako bi promjene stupile na snagu.
sudo systemctl restart nginx
Omogućite Nginx da se automatski pokrene prilikom pokretanja.
sudo systemctl enable nginx
Postavite Systemd uslugu
Stvorite novog korisnika za pokretanje procesa.
sudo adduser wekan --shell /usr/sbin/nologin --home /opt/wekan
Sada premjestite sve datoteke u /opt/wekandirektorij.
sudo mv ~/wekan/* /opt/wekan/
Omogućite vlasništvo nad datotekama novostvorenom korisniku.
sudo chown -R wekan:wekan /opt/wekan
Wekan ne preuzima podatke ni iz jedne konfiguracijske datoteke. Umjesto toga, pristupa mu iz varijabli okruženja. Napravit ćemo novu datoteku za pohranu varijabli okruženja. Datoteka koja sadrži varijable okruženja bit će proslijeđena kroz Systemduslugu.
Napravite novu datoteku za pohranu varijabli okruženja.
sudo nano /opt/wekan/config.env
Popunite datoteku sljedećim sadržajem.
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
Obavezno zamijenite usernamei password.
Omogućite vlasništvo wekankorisniku pokretanjem.
sudo chown -R wekan:wekan /opt/wekan/config.env
Izradite novu servisnu datoteku za Wekan systemd uslugu.
sudo nano /etc/systemd/system/wekan.service
Popunite datoteku sljedećim.
[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
Spremite datoteku i izađite iz uređivača. Sada možete jednostavno pokrenuti Wekan.
sudo systemctl start wekan
Da biste omogućili Wekan da se automatski pokrene prilikom pokretanja.
sudo systemctl enable wekan
Za provjeru statusa usluge Wekan.
sudo systemctl status wekan
Završavati
Sada možete pristupiti Wekan instanci na https://wekan.example.com. Započnite stvaranjem novog računa. Nakon što kreirate račun, možete omogućiti administrativni pristup novostvorenom korisniku. Prijavite se na ljusku MongoDB kao administrativni korisnik.
mongo -u wekan -p --authenticationDatabase "wekan"
Sada odaberite wekanbazu podataka i ažurirajte objekt kako biste korisnika promovirali u administratorskog korisnika.
use wekan
db.users.update({username:'admin_user'},{$set:{isAdmin:true}})
Obavezno zamijenite admin_userstvarnim korisničkim imenom korisnika kojeg ste stvorili. S administratorskog sučelja moći ćete onemogućiti samoregistraciju i ažurirati SMTP postavke.
Čestitamo, uspješno ste instalirali Wekan Kanban ploču na svoju Vultr Ubuntu instancu.