Cara Memasang Wekan (Open Source Kanban) di CentOS 7

Wekan adalah papan kanban yang dibina dengan rangka kerja Meteor JavaScript. Ia dianggap sebagai sumber terbuka dan alternatif yang dihoskan sendiri untuk Trello, menyediakan ciri yang hampir sama. Ia membolehkan anda membuat senarai pengurusan "yang perlu dilakukan" berdasarkan kad. Wekan sangat membantu meningkatkan produktiviti ketika bekerja di persekitaran kolaboratif. Wekan mempunyai antara muka web yang responsif sepenuhnya, dan ia diterjemahkan secara aktif dalam banyak bahasa.

Prasyarat

  • Contoh server Vultr CentOS 7.
  • Pengguna sudo .

Untuk tutorial ini, kami akan gunakan wekan.example.comsebagai nama domain menunjuk ke arah contoh Vultr. Sila pastikan untuk menggantikan semua kejadian nama domain contoh dengan yang sebenarnya.

Kemas kini sistem asas anda menggunakan panduan Cara Mengemas kini CentOS 7 . Setelah sistem anda diperbaharui, teruskan memasang dependensi.

Pasang Node.js

Wekan hanya menyokong Node.js LTS version 4.8. Untuk memasang Node.js, kami akan menggunakan pengurus versi nod. Pasang nvmdengan menjalankan skrip pemasang.

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

Untuk mula menggunakan nvm, jalankan ini.

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

Sekiranya nvmberjaya dipasang, anda semestinya dapat memeriksa versinya.

[user@vultr ~]$ nvm --version
0.33.4

Pasang Node.js.

nvm install v4.8

Tetapkan versi lalai Node.js.

nvm use node

Sekiranya Node.js berjaya dipasang, anda semestinya dapat menyemak versinya.

node -v

Anda akan melihat output ini.

[user@vultr ~]$ node -v
v4.8.4

NVM memasang Node.js untuk pengguna semasa sahaja. 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 kini tersedia sebagai /bin/node.

[user@vultr ~]$ sudo which node
/bin/node

Pasang MongoDB

MongoDB adalah pelayan pangkalan data NoSQL sumber terbuka dan bebas. Tidak seperti pangkalan data tradisional yang menggunakan jadual untuk mengatur data mereka, MongoDB berorientasikan dokumen dan menggunakan dokumen seperti JSON tanpa skema. Wekan menggunakan MongoDB untuk menyimpan datanya.

Wekan hanya serasi dengan MongoDB version 3.2. MongoDB tidak tersedia di YUMrepositori lalai , jadi anda perlu membuat fail repositori baru.

sudo nano /etc/yum.repos.d/mongodb-org-3.2.repo

Isi fail dengan kandungan berikut.

[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

Pasang MongoDB.

sudo yum install -y mongodb-org

Mulakan pelayan MongoDB dan aktifkan untuk memulakannya secara automatik.

sudo systemctl start mongod
sudo systemctl enable mongod

Menjamin contoh MongoDB

Secara lalai, tidak ada pengesahan yang diaktifkan dalam pelayan MongoDB. Mana-mana pengguna yang mempunyai akses ke terminal pelayan akan mempunyai hak penuh pada pemasangan MongoDB. Untuk mengamankan pelayan pangkalan data dan menyekat akses pengguna yang tidak mempunyai hak istimewa, kita perlu mengatur pengesahan pada pelayan.

MongoDB menyediakan mongoshell, yang digunakan untuk menjalankan pertanyaan pada MongoDB. Tukar ke mongoshell dengan menaip.

mongo

Buat pengguna MongoDB baru dengan hak root. Anda boleh menggunakan mana-mana nama pengguna pilihan anda. Pastikan untuk mengganti kata laluan .

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

Anda mesti melihat output berikut.

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

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

Edit fail konfigurasi MongoDB.

sudo nano /etc/mongod.conf

Lampirkan baris berikut di akhir fail.

security:
 authorization: enabled

Mulakan semula MongoDB supaya perubahan konfigurasi dapat berlaku.

sudo systemctl restart mongod

Setelah keselamatan diaktifkan, anda boleh menguji apakah ia berfungsi dengan beralih ke shell mongo sekali lagi menggunakan mongoperintah. Kali ini, jika anda menjalankan pertanyaan, seperti show dbsuntuk menunjukkan senarai pangkalan data, anda akan melihat mesej yang melaporkan kebenaran yang gagal. Keluar ke sudopengguna sekali lagi setelah menguji log masuk sebagai pengguna baru yang baru anda buat.

Log masuk sebagai administratorpengguna yang baru anda buat.

mongo -u admin -p

Berikan kata laluan pengguna untuk log masuk yang berjaya. Buat pengguna baru untuk Wekanpangkalan data yang akan digunakan untuk menyimpan data Wekan.

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

Pastikan menukar StrongPassworddengan kata laluan 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-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" ] }

Pasang Wekan

Periksa pautan terbaru ke rilis Wekan di Github kerana rilis baru sangat kerap. Muat turun versi terbaru dari Wekan dari Github menggantikan pautan ke pakej pemasang.

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

Ekstrak arkib yang dimuat turun ke direktori baru bernama wekan.

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

Pasang Bzip2, yang diperlukan untuk mengekstrak kebergantungan Node.js.

sudo yum -y install bzip2

Pasang kebergantungan Node.js.

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

Pelayan Wekan membaca konfigurasi dari pemboleh ubah persekitaran. Jalankan arahan berikut untuk menetapkan konfigurasi sebagai pemboleh ubah persekitaran.

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 laluan MongoDB untuk wekanpengguna yang telah anda buat. Juga, kemas kini URL mel mengikut tetapan pelayan SMTP anda. Sekiranya anda tidak menyediakan pelayan mel, anda boleh menukar konfigurasi ini kemudian. Buka firewall untuk membenarkan port 4000melalui firewall.

sudo firewall-cmd --zone=public --add-port=4000/tcp --permanent
sudo firewall-cmd --reload

Untuk segera memulakan permohonan.

cd ~/wekan/bundle
node main.js

Anda kini boleh mengakses aplikasi dengan pergi ke http://wekan.example.com:4000. Anda akan melihat antara muka untuk log masuk ke papan kanban Wekan.

Untuk penggunaan produksi, disarankan untuk mengatur proksi terbalik untuk melayani aplikasi di HTTPport standar dan systemdlayanan untuk mengelola proses aplikasi. Dalam tutorial ini, kami akan menggunakan pelayan web Nginx sebagai proksi terbalik, dijamin dengan SSL percuma Let's Encrypt.

Menetapkan Proksi Berbalik Nginx

Pasang pelayan web Nginx dan Certbot, yang merupakan aplikasi klien untuk Let's Encrypt CA.

sudo yum -y install certbot nginx

Sebelum anda boleh meminta sijil SSL, anda perlu membenarkan port 80dan 443melalui firewall. Certbot akan memeriksa pihak berkuasa domain sebelum mengeluarkan sijil.

sudo firewall-cmd --zone=public --add-service=http --permanent
sudo firewall-cmd --zone=public --add-service=https --permanent

Sekarang kita menjalankan Wekan pada HTTPSport standard , kita tidak perlu membenarkan port 4000melalui firewall. Laraskan firewall untuk mengeluarkan port 4000.

sudo firewall-cmd --zone=public --remove-port=4000/tcp --permanent
sudo firewall-cmd --reload

Catatan: Nama domain yang anda gunakan untuk mendapatkan sijil dari Let's Encrypt CA mesti dihalakan ke arah pelayan. Pelanggan mengesahkan pihak berkuasa domain sebelum mengeluarkan sijil .

Menjana sijil SSL.

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

Sijil yang dihasilkan kemungkinan akan disimpan dalam /etc/letsencrypt/live/wekan.example.com/direktori. Sijil SSL akan disimpan sebagai fullchain.pem, dan kunci peribadi akan disimpan sebagai privkey.pem.

Mari Encrypt sijil tamat dalam 90 hari, jadi disarankan untuk membuat pembaharuan sijil secara automatik menggunakan Cronjob. Cron adalah perkhidmatan sistem yang digunakan untuk menjalankan tugas berkala.

Buka fail kerja cron.

sudo crontab -e

Tambahkan garisan berikut pada akhir fail.

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

Pekerjaan cron di atas akan dijalankan setiap hari pada jam 5:30 pagi. Sekiranya sijil jatuh tempo, kad kredit akan diperbaharui secara automatik.

Buat tuan rumah maya yang baru.

sudo nano /etc/nginx/conf.d/wekan.example.com.conf

Isi fail dengan yang berikut.

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 sebenar anda dalam konfigurasi di atas.

Restart Nginx supaya perubahan tersebut dapat diterapkan.

sudo systemctl restart nginx

Dayakan Nginx untuk memulakan secara automatik pada waktu boot.

sudo systemctl enable nginx

Sediakan Perkhidmatan Systemd

Buat pengguna baru untuk proses tersebut.

sudo adduser wekan -s /usr/sbin/nologin -d /opt/wekan

Sekarang pindahkan semua fail ke /opt/wekandirektori.

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

Berikan hak milik fail kepada pengguna yang baru dibuat.

sudo chown -R wekan:wekan /opt/wekan

Wekan tidak mengambil data dari sebarang fail konfigurasi. Sebaliknya, ia mengaksesnya dari pemboleh ubah persekitaran. Kami akan membuat fail baru untuk menyimpan pemboleh ubah persekitaran. Fail yang mengandungi pemboleh ubah persekitaran akan diteruskan melalui Systemdperkhidmatan.

Buat fail baru untuk menyimpan pemboleh ubah persekitaran.

 sudo nano /opt/wekan/config.env

Isi fail dengan kandungan 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 menggantikan usernamedan password.

Berikan hak milik kepada wekanpengguna.

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

Buat fail perkhidmatan baru untuk perkhidmatan Wekan systemd.

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

Isi fail dengan yang berikut.

[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

Simpan fail dan keluar dari editor. Kini anda boleh memulakan Wekan dengan mudah.

sudo systemctl start wekan

Untuk membolehkan Wekan bermula secara automatik pada waktu boot.

sudo systemctl enable wekan

Untuk memeriksa status perkhidmatan Wekan.

sudo systemctl status wekan

Mengakhiri

Anda kini boleh mengakses instance Wekan di https://wekan.example.com. Mulakan dengan membuat akaun baru. Setelah membuat akaun, anda boleh mengaktifkan akses pentadbiran kepada pengguna yang baru dibuat. Log masuk ke shell MongoDB sebagai pengguna pentadbiran.

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

Sekarang pilih wekanpangkalan data dan kemas kini objek untuk mempromosikan pengguna menjadi pengguna pentadbir.

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

Pastikan untuk mengganti admin_userdengan nama pengguna sebenar pengguna yang anda buat. Dari antara muka pentadbir, anda dapat mematikan pendaftaran diri dan mengemas kini tetapan SMTP.

Tahniah, anda berjaya memasang papan Wekan Kanban pada instance Vultr CentOS anda.



Leave a Comment

Pandangan tentang 26 Teknik Analisis Data Besar: Bahagian 1

Pandangan tentang 26 Teknik Analisis Data Besar: Bahagian 1

Pandangan tentang 26 Teknik Analisis Data Besar: Bahagian 1

6 Perkara Yang Sangat Menggila Tentang Nintendo Switch

6 Perkara Yang Sangat Menggila Tentang Nintendo Switch

Ramai daripada anda tahu Switch akan keluar pada Mac 2017 dan ciri baharunya. Bagi yang tidak tahu, kami telah menyediakan senarai ciri yang menjadikan 'Tukar' sebagai 'gajet yang mesti ada'.

Janji Teknologi Yang Masih Tidak Ditepati

Janji Teknologi Yang Masih Tidak Ditepati

Adakah anda menunggu gergasi teknologi memenuhi janji mereka? semak apa yang masih belum dihantar.

Fungsi Lapisan Seni Bina Rujukan Data Besar

Fungsi Lapisan Seni Bina Rujukan Data Besar

Baca blog untuk mengetahui lapisan berbeza dalam Seni Bina Data Besar dan fungsinya dengan cara yang paling mudah.

Bagaimana AI Boleh Mengambil Automasi Proses ke Tahap Seterusnya?

Bagaimana AI Boleh Mengambil Automasi Proses ke Tahap Seterusnya?

Baca ini untuk mengetahui cara Kecerdasan Buatan semakin popular di kalangan syarikat berskala kecil dan cara ia meningkatkan kebarangkalian untuk menjadikan mereka berkembang dan memberikan pesaing mereka kelebihan.

CAPTCHA: Berapa Lama Ia Boleh Kekal Sebagai Teknik Berdaya maju Untuk Perbezaan Manusia-AI?

CAPTCHA: Berapa Lama Ia Boleh Kekal Sebagai Teknik Berdaya maju Untuk Perbezaan Manusia-AI?

CAPTCHA telah menjadi agak sukar untuk diselesaikan oleh pengguna dalam beberapa tahun kebelakangan ini. Adakah ia dapat kekal berkesan dalam pengesanan spam dan bot pada masa hadapan?

Keunikan Teknologi: Masa Depan Tamadun Manusia yang Jauh?

Keunikan Teknologi: Masa Depan Tamadun Manusia yang Jauh?

Apabila Sains Berkembang pada kadar yang pantas, mengambil alih banyak usaha kita, risiko untuk menundukkan diri kita kepada Ketunggalan yang tidak dapat dijelaskan juga meningkat. Baca, apakah makna ketunggalan bagi kita.

Teleperubatan Dan Penjagaan Kesihatan Jauh: Masa Depan Ada Di Sini

Teleperubatan Dan Penjagaan Kesihatan Jauh: Masa Depan Ada Di Sini

Apakah teleperubatan, penjagaan kesihatan jauh dan impaknya kepada generasi akan datang? Adakah ia tempat yang baik atau tidak dalam situasi pandemik? Baca blog untuk mencari paparan!

Pernahkah Anda Terfikir Bagaimana Penggodam Mendapatkan Wang?

Pernahkah Anda Terfikir Bagaimana Penggodam Mendapatkan Wang?

Anda mungkin pernah mendengar bahawa penggodam memperoleh banyak wang, tetapi pernahkah anda terfikir bagaimana mereka memperoleh wang seperti itu? Mari berbincang.

Kemas Kini Tambahan macOS Catalina 10.15.4 Menyebabkan Lebih Banyak Isu Daripada Penyelesaian

Kemas Kini Tambahan macOS Catalina 10.15.4 Menyebabkan Lebih Banyak Isu Daripada Penyelesaian

Baru-baru ini Apple mengeluarkan macOS Catalina 10.15.4 kemas kini tambahan untuk menyelesaikan masalah tetapi nampaknya kemas kini itu menyebabkan lebih banyak masalah yang membawa kepada pemusnahan mesin mac. Baca artikel ini untuk mengetahui lebih lanjut