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
Állítsa be a Systemd szolgáltatást
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 a CentOS 7 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"
[ -s "$NVM_DIR/bash_completion" ] && \. "$NVM_DIR/bash_completion"
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ő néven /bin/node.
[user@vultr ~]$ sudo which node
/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. A MongoDB nem érhető el az alapértelmezett YUMtárolóban, ezért új tárfájlt kell létrehoznia.
sudo nano /etc/yum.repos.d/mongodb-org-3.2.repo
Töltse fel a fájlt a következő tartalommal.
[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
Telepítse a MongoDB-t.
sudo yum install -y mongodb-org
Indítsa el a MongoDB kiszolgálót, és engedélyezze az automatikus indulást.
sudo systemctl start mongod
sudo systemctl enable mongod
A MongoDB példány biztonságossá tétele
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 mongoparancsértelmezőre gépeléssel.
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-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"
}
]
}
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éshez 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 StrongPassworderős jelszóval módosítsa . 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-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" ] }
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.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
A generált tanúsítványok valószínűleg a /etc/letsencrypt/live/wekan.example.com/könyvtárban lesznek tárolva . Az SSL-tanúsítványt a rendszer fullchain.pem, a privát kulcsot pedig néven tárolja privkey.pem.
Az Encrypt tanúsítványok 90 napon belül lejárnak, ezért ajánlatos beállítani a tanúsítványok automatikus megújítását a Cronjob segítségével. A Cron egy rendszerszolgáltatás, amelyet időszakos feladatok futtatására használnak.
Nyissa meg a cron feladatfájlt.
sudo crontab -e
Adja hozzá a következő sort a fájl végéhez.
30 5 * * * /usr/bin/certbot renew --quiet
A fenti cron-feladat minden nap 5:30-kor fog futni. Ha a tanúsítványoknak lejárt a lejárata, automatikusan megújítja azokat.
Hozzon létre egy új virtuális gazdagépet.
sudo nano /etc/nginx/conf.d/wekan.example.com.conf
Töltse ki a fájlt a következővel.
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;
}
}
Cserélje wekan.example.comki a tényleges domain nevét a fenti konfigurációban.
Indítsa újra az Nginxet, hogy a változtatások érvénybe lépjenek.
sudo systemctl restart nginx
Engedélyezze az Nginx automatikus indulását rendszerindításkor.
sudo systemctl enable nginx
Állítsa be a Systemd szolgáltatást
Hozzon létre egy új felhasználót a folyamathoz.
sudo adduser wekan -s /usr/sbin/nologin -d /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.
Adja meg a tulajdonjogot a wekanfelhaszná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=/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 CentOS példányára.