Cara Memasang Wekan (Open Source Kanban) di Ubuntu 16.04

Wekan adalah papan kanban yang dibangun dengan kerangka JavaScript Meteor. Ini dianggap sebagai sumber terbuka dan alternatif yang di-host-sendiri untuk Trello, menyediakan fitur yang hampir sama. Ini memungkinkan Anda membuat daftar manajemen "yang harus dilakukan" berdasarkan kartu. Wekan sangat membantu untuk meningkatkan produktivitas ketika bekerja di lingkungan yang kolaboratif. Wekan memiliki antarmuka web yang sepenuhnya responsif, dan diterjemahkan secara aktif dalam banyak bahasa.

Prasyarat

Untuk tutorial ini, kita akan menggunakan wekan.example.comnama domain yang menunjuk ke instance Vultr. Pastikan untuk mengganti semua kemunculan nama domain contoh dengan yang sebenarnya.

Perbarui sistem basis Anda menggunakan panduan Cara Memperbarui Ubuntu 16.04 . Setelah sistem Anda diperbarui, lanjutkan untuk menginstal dependensi.

Instal Node.js

Wekan hanya mendukung Node.js LTS version 4.8. Untuk menginstal Node.js, kita akan menggunakan pengelola versi simpul. Instal nvmdengan menjalankan skrip penginstal.

wget -qO- https://raw.githubusercontent.com/creationix/nvm/v0.33.4/install.sh | bash

Untuk segera mulai menggunakan nvm, jalankan ini.

export NVM_DIR="$HOME/.nvm"
[ -s "$NVM_DIR/nvm.sh" ] && \. "$NVM_DIR/nvm.sh"

Jika nvmtelah menginstal dengan sukses, maka Anda harus dapat memeriksa versinya.

user@vultr:~$ nvm --version
0.33.4

Instal Node.js.

nvm install v4.8

Tetapkan versi default Node.js.

nvm use node

Jika Node.js berhasil diinstal, maka Anda harus dapat memeriksa versinya.

node -v

Anda akan melihat output ini.

user@vultr:~$ node -v
v4.8.4

NVM menginstal Node.js hanya untuk pengguna saat ini. Agar Node.js dapat diakses secara global, jalankan ini.

n=$(which node);n=${n%/bin/node}; chmod -R 755 $n/bin/*; sudo cp -r $n/{bin,lib,share} /usr

Node.js sekarang tersedia sebagai /usr/bin/node.

user@vultr:~$ sudo which node
/usr/bin/node

Instal MongoDB

MongoDB adalah server database NoSQL sumber bebas dan terbuka. Tidak seperti database tradisional yang menggunakan tabel untuk mengatur datanya, MongoDB berorientasi dokumen dan menggunakan dokumen mirip JSON tanpa skema. Wekan menggunakan MongoDB untuk menyimpan datanya.

Wekan hanya kompatibel dengan MongoDB version 3.2. Buat file repositori baru.

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

Impor kunci GPG MongoDB publik dan perbarui daftar paket.

sudo apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv EA312927
sudo apt update

Instal MongoDB.

sudo apt install -y mongodb-org

Mulai MongoDB dan aktifkan untuk memulai secara otomatis.

sudo systemctl start mongod
sudo systemctl enable mongod

Mengamankan instance MongoDB

Secara default, tidak ada otentikasi yang diaktifkan di server MongoDB. Setiap pengguna yang memiliki akses ke terminal server akan memiliki hak penuh penuh pada instalasi MongoDB. Untuk mengamankan server database dan membatasi akses pengguna yang tidak memiliki hak, kita perlu mengatur otentikasi pada server.

MongoDB menyediakan mongoshell yang digunakan untuk menjalankan kueri di MongoDB. Beralih ke mongoshell.

mongo

Buat pengguna MongoDB baru dengan hak akses root. Anda dapat menggunakan nama pengguna apa pun pilihan Anda. Pastikan untuk mengganti kata sandi .

db.createUser(
  {
    user: "admin",
    pwd: "StrongAdminPassword",
    roles: [ { role: "root", db: "admin" } ]
  }
)

Anda akan melihat output berikut.

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"
                }
        ]
}

Keluar dari antarmuka perintah MongoDB ke terminal Linux dengan menekan " Ctrl+C".

Edit file konfigurasi MongoDB.

sudo nano /etc/mongod.conf

Tambahkan baris berikut di akhir file.

security:
 authorization: enabled

Mulai ulang MongoDB agar perubahan konfigurasi dapat berlaku.

sudo systemctl restart mongod

Sekarang keamanan telah diaktifkan, Anda dapat menguji apakah itu berfungsi dengan beralih ke shell mongo lagi menggunakan mongoperintah. Kali ini, jika Anda menjalankan kueri, seperti show dbsuntuk menampilkan daftar database, Anda akan melihat pesan yang melaporkan otorisasi yang gagal. Keluar ke sudopengguna lagi setelah menguji login sebagai pengguna baru yang baru saja Anda buat.

Masuk sebagai administratorpengguna yang baru saja Anda buat.

mongo -u admin -p

Berikan kata sandi pengguna untuk login yang berhasil. Buat pengguna baru untuk wekanbasis data yang akan digunakan untuk menyimpan data Wekan.

use wekan
db.createUser(
    {
      user: "wekan",
      pwd: "StrongPassword",
      roles: ["readWrite"]
    }
 ) 

Pastikan untuk mengganti StrongPassworddengan kata sandi yang kuat. Anda akan melihat output berikut.

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" ] }

Instal Wekan

Periksa tautan terbaru ke rilis Wekan di Github karena rilis baru sangat sering. Unduh versi terbaru Wekan dari Github menggantikan tautan ke paket pemasang.

cd ~
wget https://github.com/wekan/wekan/releases/download/v0.44/wekan-0.44.tar.gz

Ekstrak arsip yang diunduh ke direktori baru bernama wekan.

mkdir wekan
tar xzvf wekan-*.tar.gz -C wekan

Instal dependensi Node.js.

cd wekan/bundle/programs/server && npm install

Server Wekan membaca konfigurasi dari variabel lingkungan. Jalankan perintah berikut untuk mengatur konfigurasi sebagai variabel lingkungan.

export MONGO_URL='mongodb://wekan:[email protected]:27017/wekan?authSource=wekan'
export ROOT_URL='http://wekan.example.com'
export MAIL_URL='smtp://user:[email protected]:25/'
export MAIL_FROM='[email protected]'
export PORT=4000

Pastikan untuk mengganti kata sandi MongoDB untuk wekanpengguna yang telah Anda buat. Juga perbarui URL email sesuai dengan pengaturan server SMTP Anda. Jika Anda tidak memiliki server email yang siap, Anda selalu dapat mengubah konfigurasi ini nanti.

Untuk segera memulai aplikasi.

cd ~/wekan/bundle
node main.js

Anda sekarang dapat mengakses aplikasi dengan masuk ke http://wekan.example.com:4000. Anda akan melihat antarmuka untuk masuk ke papan kanban Wekan.

Untuk penggunaan produksi, disarankan untuk menyiapkan proxy terbalik untuk melayani aplikasi pada HTTPport standar dan systemdlayanan untuk mengelola proses aplikasi. Dalam tutorial ini, kita akan menggunakan server web Nginx sebagai proksi terbalik, diamankan dengan Let's Encrypt SSL gratis.

Menyiapkan Nginx Reverse Proxy

Tambahkan Certbot PPArepositori ke sistem.

sudo add-apt-repository ppa:certbot/certbot
sudo apt update

Instal Nginx dan Certbot, yang merupakan aplikasi klien untuk Let's Encrypt CA.

sudo apt -y install certbot nginx

Catatan: Nama domain yang Anda gunakan untuk mendapatkan sertifikat dari Let's Encrypt CA harus diarahkan ke server. Klien memverifikasi otoritas domain sebelum menerbitkan sertifikat .

Buat sertifikat SSL.

sudo certbot certonly --standalone -d wekan.example.com

Sertifikat yang dihasilkan cenderung disimpan di /etc/letsencrypt/live/wekan.example.com/direktori. Sertifikat SSL akan disimpan sebagai fullchain.pem, dan kunci pribadi akan disimpan sebagai privkey.pem.

Mari Enkripsi sertifikat kedaluwarsa dalam 90 hari, jadi disarankan untuk mengatur perpanjangan otomatis sertifikat menggunakan Cronjob. Cron adalah layanan sistem yang digunakan untuk menjalankan tugas-tugas berkala.

Buka file tugas cron.

sudo crontab -e

Tambahkan baris berikut di akhir file.

30 5 * * * /usr/bin/certbot renew --quiet

Pekerjaan cron di atas akan berjalan setiap hari pada pukul 5:30 pagi. Jika sertifikat jatuh tempo, sertifikat akan diperpanjang secara otomatis.

Buat host virtual baru.

sudo nano /etc/nginx/sites-available/wekan.example.com.conf

Isi file dengan yang berikut ini.

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;
        }
}

Ganti wekan.example.comdengan nama domain Anda yang sebenarnya dalam konfigurasi di atas.

Aktifkan situs yang baru ditambahkan.

sudo ln -s /etc/nginx/sites-available/wekan.example.com.conf /etc/nginx/sites-enabled/wekan.example.com.conf

Nyalakan kembali Nginx agar perubahan dapat diterapkan.

sudo systemctl restart nginx

Aktifkan Nginx untuk mulai secara otomatis saat boot.

sudo systemctl enable nginx

Pengaturan Systemd Layanan

Buat pengguna baru untuk menjalankan proses.

sudo adduser wekan --shell /usr/sbin/nologin --home /opt/wekan

Sekarang pindahkan semua file ke /opt/wekandirektori.

sudo mv ~/wekan/* /opt/wekan/

Berikan kepemilikan file kepada pengguna yang baru dibuat.

sudo chown -R wekan:wekan /opt/wekan

Wekan tidak mengambil data dari file konfigurasi apa pun. Sebaliknya, itu mengaksesnya dari variabel lingkungan. Kami akan membuat file baru untuk menyimpan variabel lingkungan. File yang berisi variabel lingkungan akan diteruskan melalui Systemdlayanan.

Buat file baru untuk menyimpan variabel lingkungan.

 sudo nano /opt/wekan/config.env

Isi file dengan konten berikut.

MONGO_URL='mongodb://wekan:[email protected]:27017/wekan?authSource=wekan'
ROOT_URL='http://wekan.example.com'
MAIL_URL='smtp://user:[email protected]:25/'
MAIL_FROM='[email protected]'
PORT=4000
HTTP_FORWARDED_COUNT=1

Pastikan untuk mengganti usernamedan password.

Berikan kepemilikan kepada wekanpengguna dengan menjalankan.

sudo chown -R wekan:wekan /opt/wekan/config.env

Buat file layanan baru untuk layanan Wekan systemd.

sudo nano /etc/systemd/system/wekan.service

Isi file dengan yang berikut ini.

[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

Simpan file dan keluar dari editor. Sekarang Anda dapat dengan mudah memulai Wekan.

sudo systemctl start wekan

Untuk mengaktifkan Wekan secara otomatis mulai saat boot.

sudo systemctl enable wekan

Untuk memeriksa status layanan Wekan.

sudo systemctl status wekan

Membungkus

Anda sekarang dapat mengakses instance Wekan pada https://wekan.example.com. Mulailah dengan membuat akun baru. Setelah membuat akun, Anda dapat mengaktifkan akses administratif ke pengguna yang baru dibuat. Masuk ke shell MongoDB sebagai pengguna administratif.

mongo -u wekan -p --authenticationDatabase "wekan"

Sekarang pilih wekandatabase dan perbarui objek untuk mempromosikan pengguna ke pengguna admin.

use wekan
db.users.update({username:'admin_user'},{$set:{isAdmin:true}})

Pastikan untuk mengganti admin_userdengan nama pengguna sebenarnya dari pengguna yang Anda buat. Dari antarmuka admin, Anda dapat menonaktifkan registrasi mandiri dan memperbarui pengaturan SMTP.

Selamat, Anda telah berhasil menginstal papan Wekan Kanban pada instance Vultr Ubuntu Anda.



Leave a Comment

Wawasan tentang 26 Teknik Analisis Data Besar: Bagian 1

Wawasan tentang 26 Teknik Analisis Data Besar: Bagian 1

Wawasan tentang 26 Teknik Analisis Data Besar: Bagian 1

6 Hal yang Sangat Menggila dari Nintendo Switch

6 Hal yang Sangat Menggila dari Nintendo Switch

Banyak dari Anda tahu Switch keluar pada Maret 2017 dan fitur-fitur barunya. Bagi yang belum tahu, kami sudah menyiapkan daftar fitur yang membuat 'Switch' menjadi 'gadget yang wajib dimiliki'.

Janji Teknologi Yang Masih Belum Ditepati

Janji Teknologi Yang Masih Belum Ditepati

Apakah Anda menunggu raksasa teknologi untuk memenuhi janji mereka? periksa apa yang belum terkirim.

Fungsionalitas Lapisan Arsitektur Referensi Big Data

Fungsionalitas Lapisan Arsitektur Referensi Big Data

Baca blog untuk mengetahui berbagai lapisan dalam Arsitektur Big Data dan fungsinya dengan cara yang paling sederhana.

Bagaimana AI Dapat Membawa Otomatisasi Proses ke Tingkat Selanjutnya?

Bagaimana AI Dapat Membawa Otomatisasi Proses ke Tingkat Selanjutnya?

Baca ini untuk mengetahui bagaimana Kecerdasan Buatan menjadi populer di antara perusahaan skala kecil dan bagaimana hal itu meningkatkan kemungkinan untuk membuat mereka tumbuh dan memberi keunggulan pada pesaing mereka.

CAPTCHA: Berapa Lama Itu Bisa Tetap Menjadi Teknik yang Layak Untuk Perbedaan Human-AI?

CAPTCHA: Berapa Lama Itu Bisa Tetap Menjadi Teknik yang Layak Untuk Perbedaan Human-AI?

CAPTCHA telah berkembang cukup sulit bagi pengguna untuk dipecahkan dalam beberapa tahun terakhir. Apakah itu akan tetap efektif dalam deteksi spam dan bot di masa mendatang?

Singularitas Teknologi: Masa Depan Peradaban Manusia yang Jauh?

Singularitas Teknologi: Masa Depan Peradaban Manusia yang Jauh?

Saat Sains Berkembang dengan kecepatan tinggi, mengambil alih banyak upaya kita, risiko menundukkan diri kita pada Singularitas yang tidak dapat dijelaskan juga meningkat. Baca, apa arti singularitas bagi kita.

Telemedicine Dan Perawatan Kesehatan Jarak Jauh: Masa Depan Ada Di Sini

Telemedicine Dan Perawatan Kesehatan Jarak Jauh: Masa Depan Ada Di Sini

Apa itu telemedicine, perawatan kesehatan jarak jauh dan dampaknya terhadap generasi mendatang? Apakah itu tempat yang bagus atau tidak dalam situasi pandemi? Baca blog untuk menemukan tampilan!

Pernahkah Anda Bertanya-tanya Bagaimana Hacker Menghasilkan Uang?

Pernahkah Anda Bertanya-tanya Bagaimana Hacker Menghasilkan Uang?

Anda mungkin pernah mendengar bahwa peretas menghasilkan banyak uang, tetapi pernahkah Anda bertanya-tanya bagaimana cara mereka mendapatkan uang sebanyak itu? mari berdiskusi.

Pembaruan Tambahan macOS Catalina 10.15.4 Menyebabkan Lebih Banyak Masalah Daripada Menyelesaikan

Pembaruan Tambahan macOS Catalina 10.15.4 Menyebabkan Lebih Banyak Masalah Daripada Menyelesaikan

Baru-baru ini Apple merilis macOS Catalina 10.15.4 pembaruan suplemen untuk memperbaiki masalah tetapi tampaknya pembaruan menyebabkan lebih banyak masalah yang mengarah ke bricking mesin mac. Baca artikel ini untuk mempelajari lebih lanjut