Wekan adalah papan kanban mirip Trello open source berdasarkan kerangka Meteor Javascript. Ini adalah alat manajemen berbasis web yang memungkinkan Anda membuat papan untuk kolaborasi proyek Anda. Dengan dewan wekan, Anda hanya perlu mengundang anggota ke dewan dan Anda siap melakukannya. Di papan wekan, Anda dapat membuat tugas berbasis kartu dan manajemen tugas, lalu menetapkannya ke anggota.
Dalam tutorial ini, saya akan menunjukkan kepada Anda langkah demi langkah cara menginstal dan mengkonfigurasi Kanban seperti Wekan Trello di server CentOS 7. Kami akan menggunakan MongoDB sebagai database dan server web Nginx sebagai Proxy terbalik untuk aplikasi Wekan. Tutorial ini akan membahas beberapa topik secara mendetail termasuk mengamankan server database MongoDB dan mengonfigurasi Nginx sebagai Proxy Terbalik.
Prasyarat
- Server CentOS 7
- Hak istimewa root
Apa yang akan kami lakukan
- Instal Nodejs
- Instal dan Konfigurasi MongoDB
- Instal Wekan
- Jalankan Wekan sebagai Layanan di CentOS 7
- Instal dan Konfigurasi Nginx sebagai Proxy Terbalik untuk Wekan
- Pengujian
Langkah 1 - Instal NodeJS menggunakan NVM Node Version Manager
Wekan adalah aplikasi berbasis nodejs, dan membutuhkan nodejs versi 4.8. Dalam tutorial ini, kita tidak akan menginstal nodejs dari repositori CentOS, melainkan kita akan menginstal nodejs 4.8 menggunakan nvm Node Version Manager.
Sebelum menginstal nodejs, tambahkan pengguna sistem baru 'wekan' menggunakan perintah di bawah ini.
useradd -m -s /bin/bash wekan
passwd wekan
Masuk ke pengguna 'wekan', lalu unduh dan jalankan skrip penginstal nvm.
su - wekan
curl -o- https://raw.githubusercontent.com/creationix/nvm/v0.33.8/install.sh | bash
Perintah akan menginstal nvm di bawah pengguna 'wekan' dan menambahkan konfigurasi baru ke file konfigurasi '.bashrc'. Sekarang muat ulang file '.bashrc'.
source ~/.bashrc
Uji menggunakan perintah nvm seperti di bawah ini.
command -v nvm
nvm --version
Sekarang Anda dapat melihat nvm '0.33.8' terinstal di sistem.
Selanjutnya, instal nodejs 4.8 menggunakan perintah nvm di bawah ini.
nvm install v4.8
nvm use node
Setelah instalasi selesai, periksa versi node.
node -v
Dan Anda akan melihat nodejs 4.8 diinstal pada server CentOS 7, di bawah pengguna 'wekan'.
Langkah 2 - Instal dan konfigurasikan MongoDB
Pada langkah ini, kita akan menginstal MongoDB 3.2.x menggunakan repositori resmi, dan kemudian mengkonfigurasi keamanan dasar untuk server database MongoDB NoSQL.
Buka direktori '/etc/yum.repos.d./ dan buat file .repo baru menggunakan editor vim.
cd /etc/yum.repos.d/
vim mongodb-org-3.2.repo
Rekatkan repositori MongoDB berikut di sana.
[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
Simpan dan keluar.
Sekarang instal MongoDB menggunakan perintah yum di bawah ini.
yum -y install mongodb-org mongodb-org-server mongodb-org-shell mongodb-org-mongos mongodb-org-tools
Setelah penginstalan selesai, mulai layanan MongoDB dan aktifkan untuk diluncurkan saat boot sistem.
systemctl start mongod
systemctl enable mongod
MongoDB 3.2 telah diinstal pada sistem CentOS 7.
Selanjutnya, kita perlu mengkonfigurasi otentikasi MongoDB. Masuk ke shell mongo dan buat pengguna baru bernama 'admin' untuk akses pengguna super.
Masuk ke cangkang mongo.
mongo
Sekarang buat pengguna 'admin' baru dengan kata sandi 'MyAdminPassword' dengan peran sebagai 'root'. Jalankan kueri MongoDB di bawah ini.
db.createUser(
{
user: "admin",
pwd: "MyAdminPassword",
roles: [ { role: "root", db: "admin" } ]
}
)
Pengguna admin MongoDB telah dibuat.
Sekarang kita perlu mengedit file konfigurasi '/etc/mongod.conf' untuk mengaktifkan otentikasi.
Edit file konfigurasi 'mongod.conf' menggunakan vim.
vim /etc/mongod.conf
Batalkan komentar pada baris 'keamanan' dan tambahkan konfigurasi seperti yang ditunjukkan di bawah ini.
security:
authorization: enabled
Simpan dan keluar.
Sekarang restart layanan MongoDB.
systemctl restart mongod
Otentikasi MongoDB telah diaktifkan.
Selanjutnya, kita perlu membuat database dan pengguna baru untuk Wekan. Kami akan membuat database baru bernama 'wekan' dengan pengguna 'wekan' dan kata sandi 'WekanPassword'.
Masuk ke shell mongo sebagai pengguna admin.
mongo -u admin -p
Ketik kata sandi admin 'MyAdminPassword'.
Dan ketika Anda mendapatkan shell mongo, jalankan kueri MongoDB di bawah ini.
use wekan
db.createUser(
{
user: "wekan",
pwd: "WekanPassword",
roles: ["readWrite"]
}
)
Database dan pengguna untuk instalasi wekan telah dibuat.
Langkah 3 - Instal Wekan
Login sebagai pengguna wekan.
su - wekan
Unduh kode sumber wekan menggunakan perintah wget dan ekstrak.
wget https://github.com/wekan/wekan/releases/download/v0.63/wekan-0.63.tar.gz
tar xf wekan-0.63.tar.gz
Dan Anda akan mendapatkan direktori baru bernama 'bundle' - buka direktori itu dan instal dependensi wekan menggunakan perintah npm seperti yang ditunjukkan di bawah ini.
cd bundle/programs/server
npm install
Setelah semua instalasi dependensi selesai, Anda akan mendapatkan hasil seperti di bawah ini.
Selanjutnya, kita akan mencoba menjalankan Wekan di sistem.
Jalankan perintah berikut untuk menyiapkan variabel lingkungan untuk aplikasi Wekan.
export MONGO_URL='mongodb://wekan:[email protected]:27017/wekan?authSource=wekan'
export ROOT_URL='http://192.168.33.10'
export MAIL_URL='smtp://user:[email protected]:25/'
export MAIL_FROM='[email protected]'
export PORT=8000
Sekarang masuk ke direktori 'bundle' dan jalankan aplikasi wekan.
cd ~/bundle
node main.js
Server Wekan sekarang berjalan di bawah port 8000. Buka browser web Anda dan ketik alamat server Anda dengan port 8000.
http://192.168.33.10:8000/
Dan Anda akan mendapatkan halaman login Wekan seperti di bawah ini.
Wekan sekarang berhasil diinstal pada server CentOS 7.
Langkah 4 - Menjalankan Wekan sebagai Layanan di CentOS 7
Kami akan menjalankan aplikasi wekan sebagai layanan di sistem Ubuntu. Jadi kita perlu membuat file layanan baru di bawah direktori sistem systemd.
Sebelum membuat file layanan wekan, kita perlu membuat file variabel lingkungan.
Login sebagai pengguna wekan.
su - wekan
Buka direktori 'bundle/' dan buat file variabel lingkungan baru '.env' menggunakan vim.
cd bundle/
vim .env
Tempelkan konfigurasi berikut di sana.
MONGO_URL='mongodb://wekan:[email protected]:27017/wekan?authSource=wekan'
ROOT_URL='http://wekan.hakase-labs.co'
MAIL_URL='smtp://user:[email protected]:25/'
MAIL_FROM='[email protected]'
PORT=8000
HTTP_FORWARDED_COUNT=1
Simpan dan keluar.
Selanjutnya, kembali ke terminal root Anda.
Buka direktori '/etc/systemd/system' dan buat file layanan baru 'wekan.service'.
cd /etc/systemd/system
vim wekan.service
Tempelkan konfigurasi berikut di sana.
[Unit]
Description=Wekan Server
After=syslog.target
After=network.target
[Service]
Type=simple
Restart=on-failure
StartLimitInterval=86400
StartLimitBurst=5
RestartSec=10
ExecStart=/home/wekan/.nvm/versions/node/v4.8.7/bin/node bundle/main.js
EnvironmentFile=/home/wekan/bundle/.env
ExecReload=/bin/kill -USR1 $MAINPID
RestartSec=10
User=wekan
Group=wekan
WorkingDirectory=/home/wekan
StandardOutput=syslog
StandardError=syslog
SyslogIdentifier=Wekan
[Install]
WantedBy=multi-user.target
Simpan dan keluar.
Muat ulang sistem systemd menggunakan perintah systemctl.
systemctl daemon-reload
Mulai layanan wekan dan aktifkan peluncurannya setiap kali sistem boot.
systemctl start wekan
systemctl enable wekan
Sekarang periksa layanan wekan menggunakan perintah di bawah ini.
netstat -plntu
systemctl status wekan
Dan berikut adalah hasil dari kasus kita.
Wekan sekarang berjalan sebagai layanan di bawah port 8000 pada sistem CentOS 7.
Langkah 5 - Instal dan Konfigurasi Nginx sebagai Reverse Proxy untuk Wekan
Pada langkah ini, kita akan menginstal server web Nginx dan mengkonfigurasinya sebagai proxy terbalik untuk layanan wekan yang berjalan di bawah port 8000.
Sebelum menginstal server web Nginx, tambahkan repositori EPEL (Paket Ekstra untuk Linux Perusahaan) baru.
yum -y install epel-release
Sekarang instal nginx dari repositori epel menggunakan perintah yum di bawah ini.
yum -y install nginx
Setelah instalasi selesai, masuk ke direktori konfigurasi '/etc/nginx/' dan buat file virtual host baru 'wekan.conf' di bawah direktori 'conf.d'.
cd /etc/nginx
vim conf.d/wekan.conf
Tempelkan konfigurasi host virtual berikut di sana.
server {
server_name wekan.hakase-labs.co;
listen 80;
access_log /var/log/nginx/wekan-access.log;
error_log /var/log/nginx/wekan-error.log;
location / {
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header Host $host;
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection 'upgrade';
proxy_cache_bypass $http_upgrade;
proxy_pass http://127.0.0.1:8000;
}
}
Simpan dan keluar.
Uji konfigurasi nginx dan pastikan tidak ada kesalahan.
nginx -t
Jika tidak ada kesalahan, mulai layanan Nginx dan aktifkan untuk diluncurkan saat boot sistem.
systemctl start nginx
systemctl enable nginx
Sekarang periksa port HTTP menggunakan perintah netstat, dan pastikan port tersebut dalam status 'LISTEN'.
netstat -plntu
Konfigurasi virtual host Nginx untuk Wekan telah selesai.
Langkah 6 - Pengujian
Buka browser web Anda dan ketik instalasi url wekan di bilah alamat.
http://wekan.hakase-labs.co/
Dan Anda akan diarahkan ke halaman login - klik link 'Daftar'.
Sekarang ketik nama pengguna, email, kata sandi, dan biarkan Kode Undangan kosong.
Klik tombol 'Daftar' berwarna biru.
Dan Anda akan mendapatkan pesan 'Internal Server Error'. Tinggalkan dan kembali ke terminal Anda. Karena kita akan mengaktifkan pengguna pertama dari terminal.
Buka terminal Anda dan masuk ke mongo shell sebagai pengguna 'wekan'.
mongo -u wekan -p --authenticationDatabase "wekan"
Sekarang aktifkan pengguna menggunakan kueri di bawah ini.
use wekan
db.users.update({username:'hakase'},{$set:{isAdmin:true}})
Keluar dari cangkang mongo.
Kembali ke browser Anda dan buka lagi instalasi url Wekan.
http://wekan.hakase-labs.co/
Ketik nama pengguna dan kata sandi Anda, lalu klik tombol 'Masuk'.
Dan Anda akan mendapatkan dasbor pengguna Wekan.
Di bawah ini adalah contoh proyek wekan.
Instalasi Wekan pada sistem CentOS 7 dengan server web MongoDB dan Nginx telah berhasil diselesaikan.