Preduvjeti
Instalirajte Node.js
Instalirajte MongoDB
Instalirajte Wekan
Postavljanje obrnutog proxyja Nginx
Postavite uslugu Systemd
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 CentOS 7.
- 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 CentOS 7 . 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"
[ -s "$NVM_DIR/bash_completion" ] && \. "$NVM_DIR/bash_completion"
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 u sada je dostupan kao /bin/node.
[user@vultr ~]$ sudo which node
/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. MongoDB nije dostupan u zadanom YUMrepozitoriju, pa ćete morati stvoriti novu datoteku spremišta.
sudo nano /etc/yum.repos.d/mongodb-org-3.2.repo
Popunite datoteku sljedećim sadržajem.
[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
Instalirajte MongoDB.
sudo yum install -y mongodb-org
Pokrenite MongoDB poslužitelj 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 upisivanjem.
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-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"
}
]
}
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 promijenite 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-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" ] }
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.41/wekan-0.41.tar.gz
Extract the downloaded archive into a new directory named wekan.
mkdir wekan
tar xzvf wekan-*.tar.gz -C wekan
Install Bzip2, which is required to extract the Node.js dependencies.
sudo yum -y install bzip2
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 mail server ready, you can always change this configuration later. Open the firewall to allow port 4000 through the firewall.
sudo firewall-cmd --zone=public --add-port=4000/tcp --permanent
sudo firewall-cmd --reload
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 to 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
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
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/conf.d/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.
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 uslugu Systemd
Stvorite novog korisnika za proces.
sudo adduser wekan -s /usr/sbin/nologin -d /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.
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=/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 CentOS instancu.