Előfeltételek
Telepítse a Node.js-t
Telepítse a MongoDB-t
Telepítse a Wekan-t
Az Nginx Reverse Proxy beállítása
A Systemd szolgáltatás beállítása
Becsomagolás
A Wekan egy kanban tábla, amely a Meteor JavaScript keretrendszerrel készült. A Trello nyílt forráskódú és saját üzemeltetésű alternatívájának tekintik, amely szinte ugyanazokat a szolgáltatásokat nyújtja. Lehetővé teszi kártya alapú "teendők" kezelési listák létrehozását. A Wekan nagyon hasznos a termelékenység növelésében, amikor együttműködő környezetben dolgozik. A Wekan teljes mértékben reszponzív webes felülettel rendelkezik, és számos nyelvre aktívan lefordítják.
Előfeltételek
Ebben az oktatóanyagban wekan.example.coma Vultr példányra mutató tartománynévként fogjuk használni . Kérjük, ügyeljen arra, hogy a példa domain név minden előfordulását lecserélje a tényleges névre.
Frissítse alaprendszerét az Ubuntu 16.04 frissítése útmutató segítségével . A rendszer frissítése után folytassa a függőségek telepítésével.
Telepítse a Node.js-t
A Wekan csak támogatja Node.js LTS version 4.8. A Node.js telepítéséhez a csomóponti verziókezelőt fogjuk használni. Telepítés nvma telepítő szkript futtatásával.
wget -qO- https://raw.githubusercontent.com/creationix/nvm/v0.33.4/install.sh | bash
A használat azonnali megkezdéséhez nvmfuttassa ezt.
export NVM_DIR="$HOME/.nvm"
[ -s "$NVM_DIR/nvm.sh" ] && \. "$NVM_DIR/nvm.sh"
Ha nvma telepítés sikeres volt, akkor ellenőriznie kell a verzióját.
user@vultr:~$ nvm --version
0.33.4
Telepítse a Node.js-t.
nvm install v4.8
Állítsa be a Node.js alapértelmezett verzióját.
nvm use node
Ha a Node.js telepítése sikeres volt, akkor ellenőriznie kell a verzióját.
node -v
Látni fogja ezt a kimenetet.
user@vultr:~$ node -v
v4.8.4
Az NVM csak az aktuális felhasználó számára telepíti a Node.js fájlt. Ahhoz, hogy a Node.js globálisan elérhető legyen, futtassa ezt.
n=$(which node);n=${n%/bin/node}; chmod -R 755 $n/bin/*; sudo cp -r $n/{bin,lib,share} /usr
A Node.js már elérhető mint /usr/bin/node.
user@vultr:~$ sudo which node
/usr/bin/node
Telepítse a MongoDB-t
A MongoDB egy ingyenes és nyílt forráskódú NoSQL adatbázis-kiszolgáló. A hagyományos adatbázisokkal ellentétben, amelyek táblákat használnak adataik rendszerezésére, a MongoDB dokumentum-orientált, és JSON-szerű dokumentumokat használ sémák nélkül. A Wekan a MongoDB-t használja adatai tárolására.
A Wekan csak a következővel kompatibilis MongoDB version 3.2. Hozzon létre egy új tárolófájlt.
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
Importálja a MongoDB nyilvános GPG kulcsot, és frissítse a csomaglistát.
sudo apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv EA312927
sudo apt update
Telepítse a MongoDB-t.
sudo apt install -y mongodb-org
Indítsa el a MongoDB-t, és engedélyezze az automatikus indulást.
sudo systemctl start mongod
sudo systemctl enable mongod
A MongoDB példány védelme
Alapértelmezés szerint a MongoDB-kiszolgálón nincs engedélyezve a hitelesítés. Minden felhasználó, aki hozzáfér a kiszolgáló termináljához, teljes jogosultsággal rendelkezik a MongoDB telepítésében. Az adatbázis-kiszolgáló biztonságossá tételéhez és a jogosulatlan felhasználók hozzáférésének korlátozásához be kell állítanunk a hitelesítést a szerveren.
A MongoDB egy mongoshellt biztosít, amely lekérdezések futtatására szolgál a MongoDB-n. Váltson a mongohéjra.
mongo
Hozzon létre egy új MongoDB-felhasználót root jogosultságokkal. Bármilyen felhasználónevet használhat. Kérjük, feltétlenül cserélje ki a jelszót .
db.createUser(
{
user: "admin",
pwd: "StrongAdminPassword",
roles: [ { role: "root", db: "admin" } ]
}
)
A következő kimenetet kell látnia.
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"
}
]
}
Lépjen ki a MongoDB parancsfelületről a Linux terminálra a " Ctrl+C" gomb megnyomásával .
Szerkessze a MongoDB konfigurációs fájlt.
sudo nano /etc/mongod.conf
A fájl végéhez fűzze a következő sort.
security:
authorization: enabled
Indítsa újra a MongoDB-t, hogy a konfigurációs módosítás érvénybe lépjen.
sudo systemctl restart mongod
Most, hogy a biztonság engedélyezve van, tesztelheti, hogy működik-e, ha ismét átvált a mongo shellre a mongoparanccsal. Ezúttal, ha lekérdezést futtat, például show dbsaz adatbázisok listáját szeretné megjeleníteni, egy üzenet jelenik meg, amely jelzi a sikertelen engedélyezést. Lépjen ki sudoismét a felhasználóhoz, miután tesztelte a bejelentkezést az imént létrehozott új felhasználóként.
Jelentkezzen be az administratorimént létrehozott felhasználóként.
mongo -u admin -p
A sikeres bejelentkezés érdekében adja meg a felhasználó jelszavát. Hozzon létre egy új felhasználót az wekanadatbázishoz, amelyet a Wekan adatok tárolására fog használni.
use wekan
db.createUser(
{
user: "wekan",
pwd: "StrongPassword",
roles: ["readWrite"]
}
)
Ügyeljen arra, hogy a jelet StrongPassworderős jelszóra cserélje . A következő kimenetet fogja látni.
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" ] }
Telepítse a Wekan-t
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
Engedélyezze az Nginx automatikus indulását rendszerindításkor.
sudo systemctl enable nginx
A Systemd szolgáltatás beállítása
Hozzon létre egy új felhasználót a folyamat futtatásához.
sudo adduser wekan --shell /usr/sbin/nologin --home /opt/wekan
Most helyezze át az összes fájlt a /opt/wekankönyvtárba.
sudo mv ~/wekan/* /opt/wekan/
Adja meg a fájlok tulajdonjogát az újonnan létrehozott felhasználónak.
sudo chown -R wekan:wekan /opt/wekan
A Wekan nem vesz adatokat egyetlen konfigurációs fájlból sem. Ehelyett a környezeti változókból éri el. Létrehozunk egy új fájlt a környezeti változók tárolására. A környezeti változókat tartalmazó fájl átkerül a Systemdszolgáltatáson.
Hozzon létre egy új fájlt a környezeti változók tárolására.
sudo nano /opt/wekan/config.env
Töltse fel a fájlt a következő tartalommal.
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
Kérjük, ügyeljen arra, hogy cserélje ki a usernameés a password.
wekanFuttatással adja meg a tulajdonjogot a felhasználónak.
sudo chown -R wekan:wekan /opt/wekan/config.env
Hozzon létre egy új szolgáltatásfájlt a Wekan systemd szolgáltatáshoz.
sudo nano /etc/systemd/system/wekan.service
Töltse ki a fájlt a következővel.
[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
Mentse el a fájlt, és lépjen ki a szerkesztőből. Most már könnyedén elindíthatja a Wekan-t.
sudo systemctl start wekan
Ahhoz, hogy a Wekan automatikusan elinduljon rendszerindításkor.
sudo systemctl enable wekan
A Wekan szolgáltatás állapotának ellenőrzése.
sudo systemctl status wekan
Becsomagolás
Mostantól elérheti a Wekan példányt a webhelyen https://wekan.example.com. Kezdje új fiók létrehozásával. Miután létrehozta a fiókot, engedélyezheti az adminisztrátori hozzáférést az újonnan létrehozott felhasználó számára. Jelentkezzen be a MongoDB rendszerhéjba rendszergazdai felhasználóként.
mongo -u wekan -p --authenticationDatabase "wekan"
Most válassza ki az wekanadatbázist, és frissítse az objektumot, hogy a felhasználót adminisztrátorrá emelje.
use wekan
db.users.update({username:'admin_user'},{$set:{isAdmin:true}})
Ügyeljen arra, hogy admin_usera létrehozott felhasználó tényleges felhasználónevére cserélje ki. Az adminisztrációs felületen letilthatja az önregisztrációt és frissítheti az SMTP beállításait.
Gratulálunk, sikeresen telepítette a Wekan Kanban táblát Vultr Ubuntu példányára.