Cara Mengatur Server Leanote pada CentOS 7

Leanote adalah alternatif sumber bebas, ringan, dan terbuka untuk Evernote, yang ditulis dalam Golang. Dengan mempertimbangkan pengalaman pengguna, Leanote menyediakan banyak fitur praktis kepada pengguna, termasuk dukungan lintas platform, penulisan sintaksis MarkDown, blogging publik atau pribadi, pengumpulan dan berbagi pengetahuan, dan kolaborasi tim.

Pada artikel ini, saya akan memandu Anda melalui Menyiapkan server Leanote pada instance server CentOS 7. Untuk tujuan keamanan, mengaktifkan HTTPS supportmenggunakan sertifikat SSL Enkripsi Mari dan Nginx juga akan dicakup.

Prasyarat

  • Contoh server Vultr CentOS 7 yang baru digunakan. Katakan alamat IPv4-nya 203.0.113.1.
  • Seorang pengguna sudo bernama leanote.
  • Semua paket perangkat lunak pada mesin telah diperbarui ke status stabil terbaru menggunakan repo EPEL YUM. Lihat detailnya di sini .
  • Domain leanote.example.comdiarahkan ke instance server yang disebutkan di atas.

Langkah 1: Buat file swap

Saat menjalankan instance server Vultr CentOS 7 yang baru, selalu disarankan untuk menyiapkan file swap untuk memastikan sistem berjalan dengan lancar. Misalnya, membuat file swap berukuran 2048MB cocok untuk mesin dengan memori 2GB.

sudo dd if=/dev/zero of=/swapfile count=2048 bs=1M
sudo chmod 600 /swapfile
sudo mkswap /swapfile
sudo swapon /swapfile
echo '/swapfile   none    swap    sw    0   0' | sudo tee -a /etc/fstab
free -m

Catatan: Jika Anda menggunakan ukuran server yang berbeda, Anda mungkin perlu mengubah ukuran file swap.

Langkah 2: Dapatkan file binary Leanote 2.6.1

Unduh dan ekstrak rilis stabil terbaru Leanote untuk sistem Linux 64-bit:

cd
wget https://sourceforge.net/projects/leanote-bin/files/2.6.1/leanote-linux-amd64-v2.6.1.bin.tar.gz
tar -zxvf leanote-linux-amd64-v2.6.1.bin.tar.gz

Langkah 3: Instal MongoDB Community Edition 4.0

Seperti yang disyaratkan oleh Leanote, MongoDB NoSQL DBMS harus sudah ada sebelum Anda berhasil memasang server Leanote.

Setup repo MongoDB 4.0 YUM

Buat repo YUM MongoDB 4.0 sebagai berikut:

cat <<EOF | sudo tee /etc/yum.repos.d/mongodb-org-4.0.repo
[mongodb-org-4.0]
name=MongoDB Repository
baseurl=https://repo.mongodb.org/yum/redhat/\$releasever/mongodb-org/4.0/x86_64/
gpgcheck=1
enabled=1
gpgkey=https://www.mongodb.org/static/pgp/server-4.0.asc
EOF

Instal paket MongoDB 4.0 menggunakan YUM

Instal semua komponen dan alat MongoDB menggunakan repo YUM MongoDB 4.0 yang dibuat sebelumnya:

sudo yum install -y mongodb-org

Konfigurasikan SELinux untuk MongoDB 4.0

Secara default, MongoDB akan menggunakan 27017port saat bekerja, yang tidak diizinkan jika SELinux dalam enforcingmode pada mesin CentOS 7. Gunakan perintah berikut untuk mengonfirmasi mode SELinux saat ini:

sudo getenforce

Pada instance server Vultr CentOS 7, SELinux dinonaktifkan secara default. Jadi output dari perintah di atas adalah:

Disabled

Dalam hal ini, Anda dapat melompati instruksi berikut ini untuk mengkonfigurasi SELinux dan melanjutkan.

Namun, jika Anda menjalankan instance server CentOS 7 asli, output dari perintah di atas adalah Enforcing. Anda perlu melakukan salah satu dari tiga opsi di bawah ini sebelum Anda dapat memulai dan mengaktifkan layanan MongoDB.

  • Opsi 1: Izinkan MongoDB untuk menggunakan 27017porta

    sudo semanage port -a -t mongod_port_t -p tcp 27017
    
  • Opsi 2: Nonaktifkan SELinux

    sudo sed -i 's/SELINUX=enforcing/SELINUX=disabled/' /etc/selinux/config
    sudo shutdown -r now
    
  • Opsi 3: Ubah SELinux ke permissivemode

    sudo sed -i 's/SELINUX=enforcing/SELINUX=permissive/' /etc/selinux/config
    sudo shutdown -r now
    

Mulai layanan MongoDB dan buat mulai mengikuti reboot sistem:

sudo systemctl start mongod.service
sudo systemctl enable mongod.service

Langkah 4: Impor data Leanote awal ke dalam MongoDB

Gunakan perintah di bawah ini untuk mengimpor data Leanote awal ke MongoDB:

rm /home/leanote/leanote/mongodb_backup/leanote_install_data/.DS_Store
mongorestore --host localhost -d leanote --dir /home/leanote/leanote/mongodb_backup/leanote_install_data/

Langkah 5: Aktifkan otentikasi MongoDB

Untuk tujuan keamanan, Anda harus mengaktifkan kontrol akses ke MongoDB segera setelah layanan MongoDB aktif dan berjalan. Untuk tujuan ini, Anda harus membuat setidaknya dua akun pengguna MongoDB: akun administrator pengguna dan akun administrator basis data. Anda juga perlu memodifikasi konfigurasi MongoDB.

Masukkan shell MongoDB:

mongo --host 127.0.0.1:27017

Beralih ke admindatabase:

use admin

Buat administrator pengguna bernama useradminyang menggunakan kata sandi useradminpassword:

db.createUser({ user: "useradmin", pwd: "useradminpassword", roles: [{ role: "userAdminAnyDatabase", db: "admin" }] })

Catatan: Administrator pengguna useradminseharusnya mengelola semua pengguna MongoDB, jadi sebaiknya pilih kata sandi yang kuat. Tentu saja, tip yang lebih aman adalah mengganti useradmindengan nama pengguna yang sulit ditebak.

Beralih ke leanotedatabase:

use leanote

Buat administrator database bernama leanoteadminyang menggunakan kata sandi leanoteadminpassword:

db.createUser({ user: "leanoteadmin", pwd: "leanoteadminpassword", roles: [{ role: "dbOwner", db: "leanote" }] })

Catatan : Sekali lagi, disarankan untuk memilih nama pengguna yang kurang dikenal dan kata sandi yang sulit ditebak.

Setelah pengguna MongoDB dibuat, Anda dapat mengonfirmasi hasilnya:

use admin
db.auth("useradmin", "useradminpassword")

Konfirmasikan admin basis data:

use leanote
db.auth("leanoteadmin", "leanoteadminpassword")

Keduanya akan ditampilkan 1sebagai konfirmasi.

Keluar dari shell MongoDB:

exit

Untuk mengaktifkan kontrol akses ke MongoDB, Anda juga perlu menambahkan dua baris ke file konfigurasi MongoDB /etc/mongod.conf, sebagai berikut:

sudo bash -c "echo 'security:' >> /etc/mongod.conf"
sudo bash -c "echo '  authorization: enabled' >> /etc/mongod.conf"

Mulai ulang layanan MongoDB agar modifikasi diterapkan:

sudo systemctl restart mongod.service

Mulai sekarang, Anda hanya dapat menggunakan dua akun pengguna untuk mengakses dan mengelola MongoDB, useradminuntuk mengelola semua pengguna MongoDB dan leanoteadminuntuk mengelola leanotebasis data saja.

Langkah 6: Konfigurasikan Leanote

Cadangkan file konfigurasi Leanote /home/leanote/leanote/conf/app.conf:

cd /home/leanote/leanote/conf/
cp app.conf app.conf.bak

Gunakan vieditor untuk membuka file konfigurasi Leanote:

vi app.conf

Temukan baris berikut satu per satu:

site.url=http://localhost:9000
db.username= # if not exists, please leave it blank
db.password= # if not exists, please leave it blank
app.secret=V85ZzBeTnzpsHyjQX4zukbQ8qqtju9y2aDM55VWxAH9Qop19poekx3xkcDVvrD0y

Ganti masing-masing, seperti yang ditunjukkan di bawah ini:

site.url=http://leanote.example.com:9000
db.username=leanoteadmin
db.password=leanoteadminpassword
app.secret=E52tyCDBRk39HmhdGYJLBS3etXpnz7DymmxkgHBYxd7Y9muWVVJ5QZNdDEaHV2sA

Catatan: Untuk tujuan keamanan, nilai app.secretparameter HARUS berupa string acak 64-bit yang berbeda dari yang asli. Pastikan untuk mengganti nilai E52tyCDBRk39HmhdGYJLBS3etXpnz7DymmxkgHBYxd7Y9muWVVJ5QZNdDEaHV2sAdengan nilai acak 64-bit Anda sendiri.

Simpan dan keluar:

:wq!

Langkah 7: Mulai Leanote

Ubah aturan firewall untuk memungkinkan lalu lintas TCP masuk pada port 9000:

sudo firewall-cmd --permanent --add-port=9000/tcp
sudo systemctl reload firewalld.service

Mulai Leanote menggunakan skrip resmi:

cd /home/leanote/leanote/bin
bash run.sh

Setelah melihat Listening on.. 0.0.0.0:9000, arahkan browser web favorit Anda http://leanote.example.com:9000untuk mulai menggunakan situs Leanote.

Gunakan akun admin Leanote default untuk masuk:

  • Nama pengguna: admin
  • Kata sandi: abc123

Untuk tujuan keamanan, Anda harus segera mengganti kata sandi default setelah masuk.

Langkah 8: Aktifkan HTTPSakses

Untuk saat ini, Anda sudah dapat mengakses server Leanote menggunakan protokol HTTP, protokol yang kurang aman. Untuk meningkatkan keamanan sistem, Anda dapat mengaktifkannya HTTPSdengan menyebarkan sertifikat Let's Encrypt SSL dan proxy reverse Nginx pada mesin Anda.

Siapkan nama host dan nama domain yang sepenuhnya memenuhi syarat (FQDN)

Sebelum Anda dapat memperoleh sertifikat SSL Enkripsi Ayo, Anda perlu mengatur nama host dan FQDN dengan benar pada mesin Anda.

Pertama, tekan CTRL+ Cuntuk menghentikan skrip Leanote run.sh.

Selanjutnya, atur nama host dan FQDN sebagai berikut:

sudo hostnamectl set-hostname leanote
cat <<EOF | sudo tee /etc/hosts
127.0.0.1   localhost localhost.localdomain localhost4 localhost4.localdomain4
::1         localhost localhost.localdomain localhost6 localhost6.localdomain6
203.0.113.1 leanote.example.com leanote
EOF

Anda dapat mengkonfirmasi hasilnya, juga:

hostname
hostname -f

Ubah aturan firewall

Memblokir lalu lintas masuk di pelabuhan 9000dan memungkinkan lalu lintas masuk di pelabuhan untuk HTTPdan HTTPSlayanan:

sudo firewall-cmd --permanent --remove-port=9000/tcp
sudo firewall-cmd --permanent --add-service=http
sudo firewall-cmd --permanent --add-service=https
sudo systemctl reload firewalld.service

Terapkan untuk sertifikat SSL Enkripsi Ayo

Instal utilitas Certbot:

sudo yum -y install yum-utils
sudo yum-config-manager --enable rhui-REGION-rhel-server-extras rhui-REGION-rhel-server-optional
sudo yum install -y certbot

Terapkan untuk Mari Enkripsi sertifikat SSL untuk domain leanote.example.com:

sudo certbot certonly --standalone --agree-tos --no-eff-email -m admin@example.com -d leanote.example.com

Sertifikat dan rantai akan disimpan sebagai berikut:

/etc/letsencrypt/live/leanote.example.com/fullchain.pem

File kunci pribadi akan disimpan sebagai berikut:

/etc/letsencrypt/live/leanote.example.com/privkey.pem

Secara default, sertifikat SSL Enkripsi Ayo akan kedaluwarsa dalam tiga bulan. Anda dapat mengatur pekerjaan cron, seperti yang ditunjukkan di bawah ini, untuk memperbarui secara otomatis sertifikat Let's Enkripsi Anda:

sudo crontab -e

Tekan Iuntuk masuk ke insertmode, dan kemudian masukkan baris berikut:

0 0,12 * * * python -c 'import random; import time; time.sleep(random.random() * 3600)' && certbot renew

Simpan dan keluar:

:wq!

Pekerjaan cron ini akan mencoba memperbarui sertifikat Let's Encrypt setiap hari pada siang hari.

Instal Nginx sebagai proxy terbalik

Instal Nginx menggunakan repo EPEL YUM:

sudo yum install -y nginx

Buat file konfigurasi untuk Leanote:

cat <<EOF | sudo tee /etc/nginx/conf.d/leanote.conf
# Redirect HTTP to HTTPS
server {
    listen      80;
    server_name leanote.example.com;
    return      301 https://\$server_name\$request_uri;
}

server {

    # Setup HTTPS certificates
    listen       443 default ssl;
    server_name  leanote.example.com;
    ssl_certificate      /etc/letsencrypt/live/leanote.example.com/fullchain.pem;
    ssl_certificate_key  /etc/letsencrypt/live/leanote.example.com/privkey.pem;

    # Proxy to the Leanote server
    location / {
        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-Host  \$http_host;
        proxy_set_header Host              \$http_host;
        proxy_max_temp_file_size           0;
        proxy_pass                         http://127.0.0.1:9000;
        proxy_redirect                     http:// https://;
    }
}
EOF

Mulai ulang Nginx untuk mengaktifkan modifikasi Anda:

sudo systemctl daemon-reload
sudo systemctl restart nginx.service
sudo systemctl enable nginx.service

Ubah site.urlpengaturan dalam file konfigurasi Leanote:

cd /home/leanote/leanote/conf/
vi app.conf

Temukan baris berikut:

site.url=http://leanote.example.com:9000

Ganti itu:

site.url=https://leanote.example.com

Simpan dan keluar:

:wq!

Jalankan skrip Leanote lagi:

cd /home/leanote/leanote/bin
bash run.sh

Sekarang, arahkan browser web favorit Anda http://leanote.example.com/, dan Anda akan menemukan bahwa HTTPSprotokol tersebut diaktifkan secara otomatis. Cukup masuk sebagai adminpengguna dengan kata sandi baru yang Anda buat sebelumnya atau daftarkan akun pengguna baru untuk kolaborasi tim.

Sekali lagi, tekan CTRL+ Cuntuk menghentikan skrip Leanote. Kami akan mengubah naskah ini nanti.

Langkah 9: Instal wkhtmltopdfprogram

Leanote memilih untuk menggunakan wkhtmltopdfprogram ini untuk mengekspor halaman HTML sebagai file PDF. Pasang wkhtmltopdf:

cd
wget https://downloads.wkhtmltopdf.org/0.12/0.12.5/wkhtmltox-0.12.5-1.centos7.x86_64.rpm
sudo yum localinstall -y wkhtmltox-0.12.5-1.centos7.x86_64.rpm
which wkhtmltopdf

Jangan lupa untuk mengirimkan wkhtmltopdflintasan biner /usr/local/bin/wkhtmltopdfdi Export PDFbagian di dasbor admin web Leanote ketika Leanote aktif dan berjalan kembali.

Catatan: Jika Anda menemukan karakter yang tidak dapat dibaca dalam file PDF yang diekspor, Anda dapat mencoba untuk memperbaiki masalah dengan menambahkan file font yang diperlukan ke /usr/share/fonts/direktori.

Langkah 10: Gunakan Supervisor untuk membuat skrip Leanote tetap aktif

Agar situs Leanote tetap online, Anda dapat menggunakan utilitas Supervisor untuk memulai skrip Leanote secara otomatis jika macet.

Instal Supervisor menggunakan YUM:

sudo yum install -y supervisor

Buat .inifile Supervisor sederhana untuk Leanote:

cat <<EOF | sudo tee /etc/supervisord.d/leanote.ini
[program:leanote]
command=bash /home/leanote/leanote/bin/run.sh
directory=/home/leanote/leanote/bin/
priority=999
autostart=true
autorestart=true
user=leanote
redirect_stderr=true
EOF

Mulai layanan Pengawas, serta layanan Leanote:

sudo supervisord -c /etc/supervisord.conf

Konfirmasikan status layanan Leanote:

sudo supervisorctl status leanote

Outputnya akan menyerupai berikut ini:

leanote                          RUNNING   pid 3707, uptime 0:02:36

Tinggalkan Komentar

Cara Memasang Panel Kontrol Hosting Mudah di Ubuntu 16.04

Cara Memasang Panel Kontrol Hosting Mudah di Ubuntu 16.04

Pelajari langkah-langkah untuk memasang Panel Kontrol Hosting Mudah (EHCP) di Ubuntu 16.04 dengan panduan ini.

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

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.

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.

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.

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.

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?

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.