Parakushtet
Instaloni Node.js
Instaloni MongoDB
Instaloni Wekan
Konfigurimi i përfaqësuesit të kundërt Nginx
Konfiguro shërbimin e sistemit
Përfundimi
Wekan është një tabelë kanban e ndërtuar me kornizën Meteor JavaScript. Konsiderohet si një alternativë me burim të hapur dhe të vetë-pritur për Trello, duke ofruar pothuajse të njëjtat veçori. Kjo ju lejon të krijoni lista të menaxhimit të "për të bërë" të bazuara në karta. Wekan është shumë i dobishëm për të rritur produktivitetin kur punoni në një mjedis bashkëpunues. Wekan ka një ndërfaqe uebi plotësisht të përgjegjshme dhe përkthehet në mënyrë aktive në shumë gjuhë.
Parakushtet
Për këtë tutorial, ne do të përdorim wekan.example.comsi emër domaini të drejtuar drejt shembullit Vultr. Ju lutemi sigurohuni që të zëvendësoni të gjitha dukuritë e emrit të domenit shembull me atë aktual.
Përditësoni sistemin tuaj bazë duke përdorur udhëzuesin Si të përditësoni Ubuntu 16.04 . Pasi sistemi juaj të jetë përditësuar, vazhdoni të instaloni varësitë.
Instaloni Node.js
Wekan mbështet vetëm Node.js LTS version 4.8. Për të instaluar Node.js, ne do të përdorim menaxherin e versionit të nyjeve. Instaloni nvmduke ekzekutuar skriptin e instaluesit.
wget -qO- https://raw.githubusercontent.com/creationix/nvm/v0.33.4/install.sh | bash
Për të filluar menjëherë përdorimin nvm, ekzekutoni këtë.
export NVM_DIR="$HOME/.nvm"
[ -s "$NVM_DIR/nvm.sh" ] && \. "$NVM_DIR/nvm.sh"
Nëse nvmështë instaluar me sukses, atëherë duhet të jeni në gjendje të kontrolloni versionin e tij.
user@vultr:~$ nvm --version
0.33.4
Instaloni Node.js.
nvm install v4.8
Cakto versionin e paracaktuar të Node.js.
nvm use node
Nëse Node.js është instaluar me sukses, atëherë duhet të jeni në gjendje të kontrolloni versionin e tij.
node -v
Do ta shihni këtë dalje.
user@vultr:~$ node -v
v4.8.4
NVM instalon Node.js vetëm për përdoruesin aktual. Që Node.js të jetë i aksesueshëm globalisht, ekzekutoni këtë.
n=$(which node);n=${n%/bin/node}; chmod -R 755 $n/bin/*; sudo cp -r $n/{bin,lib,share} /usr
Node.js tani është në dispozicion si /usr/bin/node.
user@vultr:~$ sudo which node
/usr/bin/node
Instaloni MongoDB
MongoDB është një server i bazës së të dhënave NoSQL pa pagesë dhe me burim të hapur. Ndryshe nga bazat e të dhënave tradicionale që përdorin tabela për të organizuar të dhënat e tyre, MongoDB është i orientuar drejt dokumenteve dhe përdor dokumente të ngjashme me JSON pa skema. Wekan përdor MongoDB për të ruajtur të dhënat e tij.
Wekan është i pajtueshëm vetëm me MongoDB version 3.2. Krijoni një skedar të ri depoje.
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
Importoni çelësin publik GPG të MongoDB dhe përditësoni listën e paketave.
sudo apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv EA312927
sudo apt update
Instaloni MongoDB.
sudo apt install -y mongodb-org
Nisni MongoDB dhe aktivizoni që të fillojë automatikisht.
sudo systemctl start mongod
sudo systemctl enable mongod
Sigurimi i shembullit MongoDB
Si parazgjedhje, nuk ka asnjë vërtetim të aktivizuar në një server MongoDB. Çdo përdorues që ka akses në terminalin e serverit do të ketë privilegje të plota në instalimin e MongoDB. Për të siguruar serverin e bazës së të dhënave dhe për të kufizuar aksesin e një përdoruesi të paprivilegjuar, do të na duhet të konfigurojmë vërtetimin në server.
MongoDB ofron një mongoguaskë e cila përdoret për të ekzekutuar pyetje në MongoDB. Kaloni në mongoguaskë.
mongo
Krijoni një përdorues të ri MongoDB me privilegje rrënjësore. Ju mund të përdorni çdo emër përdoruesi që dëshironi. Ju lutemi sigurohuni që të zëvendësoni fjalëkalimin .
db.createUser(
{
user: "admin",
pwd: "StrongAdminPassword",
roles: [ { role: "root", db: "admin" } ]
}
)
Ju duhet të shihni daljen e mëposhtme.
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"
}
]
}
Dilni ndërfaqen e komandës MongoDB në terminalin Linux duke shtypur " Ctrl+C".
Redaktoni skedarin e konfigurimit MongoDB.
sudo nano /etc/mongod.conf
Shtoni rreshtin e mëposhtëm në fund të skedarit.
security:
authorization: enabled
Rinisni MongoDB në mënyrë që ndryshimi i konfigurimit të mund të hyjë në fuqi.
sudo systemctl restart mongod
Tani që siguria është aktivizuar, mund të provoni nëse po funksionon duke kaluar përsëri në guaskën mongo duke përdorur mongokomandën. Këtë herë, nëse kryeni një pyetje, të tillë si show dbspër të shfaqur listën e bazave të të dhënave, do të shihni një mesazh që raporton autorizimin e dështuar. Dilni sudopërsëri te përdoruesi pasi të keni testuar hyrjen si përdoruesi i ri që sapo keni krijuar.
Hyni si administratorpërdoruesi që sapo keni krijuar.
mongo -u admin -p
Jepni fjalëkalimin e përdoruesit për një hyrje të suksesshme. Krijo një përdorues të ri për wekanbazën e të dhënave që do të përdoret për të ruajtur të dhënat Wekan.
use wekan
db.createUser(
{
user: "wekan",
pwd: "StrongPassword",
roles: ["readWrite"]
}
)
Sigurohuni që ta zëvendësoni StrongPasswordme një fjalëkalim të fortë. Do të shihni daljen e mëposhtme.
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" ] }
Instaloni 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
Aktivizo Nginx që të fillojë automatikisht në kohën e nisjes.
sudo systemctl enable nginx
Konfiguro shërbimin e sistemit
Krijoni një përdorues të ri që procesi të ekzekutohet.
sudo adduser wekan --shell /usr/sbin/nologin --home /opt/wekan
Tani lëvizni të gjithë skedarët në /opt/wekandrejtori.
sudo mv ~/wekan/* /opt/wekan/
Jepni pronësinë e skedarëve përdoruesit të sapokrijuar.
sudo chown -R wekan:wekan /opt/wekan
Wekan nuk merr të dhëna nga asnjë skedar konfigurimi. Në vend të kësaj, ai akseson atë nga variablat e mjedisit. Ne do të krijojmë një skedar të ri për të ruajtur variablat e mjedisit. Skedari që përmban variablat e mjedisit do të kalojë përmes Systemdshërbimit.
Krijoni një skedar të ri për të ruajtur variablat e mjedisit.
sudo nano /opt/wekan/config.env
Plotësoni skedarin me përmbajtjen e mëposhtme.
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
Ju lutemi sigurohuni që të zëvendësoni usernamedhe password.
Jepni pronësinë wekanpërdoruesit duke ekzekutuar.
sudo chown -R wekan:wekan /opt/wekan/config.env
Krijo një skedar të ri shërbimi për shërbimin Wekan systemd.
sudo nano /etc/systemd/system/wekan.service
Plotësoni skedarin me sa vijon.
[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
Ruani skedarin dhe dilni nga redaktori. Tani mund të filloni lehtësisht Wekan.
sudo systemctl start wekan
Për të mundësuar që Wekan të fillojë automatikisht në kohën e nisjes.
sudo systemctl enable wekan
Për të kontrolluar statusin e shërbimit Wekan.
sudo systemctl status wekan
Përfundimi
Tani mund të përdorni shembullin Wekan në https://wekan.example.com. Filloni duke krijuar një llogari të re. Pasi të keni krijuar llogarinë, mund të aktivizoni aksesin administrativ te përdoruesi i sapokrijuar. Hyni në guaskën MongoDB si përdorues administrativ.
mongo -u wekan -p --authenticationDatabase "wekan"
Tani zgjidhni wekanbazën e të dhënave dhe përditësoni objektin për të promovuar përdoruesin te përdoruesi admin.
use wekan
db.users.update({username:'admin_user'},{$set:{isAdmin:true}})
Ju lutemi sigurohuni që ta zëvendësoni admin_userme emrin aktual të përdoruesit të përdoruesit që keni krijuar. Nga ndërfaqja e administratorit, do të jeni në gjendje të çaktivizoni vetë-regjistrimin dhe të përditësoni cilësimet SMTP.
Urime, ju keni instaluar me sukses tabelën Wekan Kanban në shembullin tuaj Vultr Ubuntu.