Cara Menyiapkan Pelayan Leanote di CentOS 7

Leanote adalah alternatif percuma, ringan, dan sumber terbuka kepada Evernote, yang ditulis dalam Golang. Dengan mempertimbangkan pengalaman pengguna, Leanote menyediakan banyak ciri praktikal kepada pengguna, termasuk sokongan merentas platform, menulis dalam sintaks MarkDown, blogging awam atau swasta, pengumpulan dan perkongsian pengetahuan, dan kerjasama pasukan.

Dalam artikel ini, saya akan membimbing anda melalui Menyediakan pelayan Leanote pada contoh pelayan CentOS 7. Untuk tujuan keselamatan, membolehkan HTTPS supportmenggunakan sijil Let's Encrypt SSL dan Nginx juga akan dilindungi.

Prasyarat

  • Contoh pelayan Vultr CentOS 7 yang baru digunakan. Katakan alamat IPv4nya adalah 203.0.113.1.
  • Seorang pengguna sudo bernama leanote.
  • Semua pakej perisian pada mesin telah dikemas kini ke status stabil terkini menggunakan repo EPEL YUM. Lihat butiran di sini .
  • Domain leanote.example.comyang ditunjukkan ke contoh pelayan yang disebutkan di atas.

Langkah 1: Buat fail swap

Apabila menembak contoh server Vultr CentOS 7 yang baru, ia sentiasa disyorkan untuk menyediakan fail swap untuk memastikan sistem berjalan dengan lancar. Sebagai contoh, membuat fail pertukaran bersaiz 2048MB sesuai 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: Sekiranya anda menggunakan ukuran pelayan yang berbeza, anda mungkin perlu mengubah ukuran fail pertukaran.

Langkah 2: Dapatkan fail binari Leanote 2.6.1

Muat turun dan ekstrak keluaran stabil Leanote untuk sistem Linux 64-bit terkini:

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: Pasang MongoDB Community Edition 4.0

Seperti yang disyaratkan oleh Leanote, MongoDB NoSQL DBMS harus ada sebelum anda berjaya menyiapkan pelayan Leanote.

Sediakan repo MongoDB 4.0 YUM

Buat repo MongoDB 4.0 YUM seperti 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

Pasang pakej MongoDB 4.0 menggunakan YUM

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

sudo yum install -y mongodb-org

Konfigurasikan SELinux untuk MongoDB 4.0

Secara lalai, MongoDB akan menggunakan 27017port semasa bekerja, yang tidak dibenarkan jika SELinux berada dalam enforcingmod pada mesin CentOS 7. Gunakan arahan berikut untuk mengesahkan mod SELinux semasa:

sudo getenforce

Pada contoh pelayan Vultr CentOS 7, SELinux dilumpuhkan secara lalai. Maka output arahan di atas adalah:

Disabled

Dalam kes ini, anda boleh melangkau arahan berikut untuk mengkonfigurasi SELinux dan meneruskannya.

Namun, jika anda menjalankan contoh pelayan CentOS 7 yang asli, output dari perintah di atas adalah Enforcing. Anda perlu melakukan salah satu daripada tiga pilihan di bawah sebelum anda memulakan dan mengaktifkan perkhidmatan MongoDB.

  • Pilihan 1: Benarkan MongoDB menggunakan 27017port

    sudo semanage port -a -t mongod_port_t -p tcp 27017
    
  • Pilihan 2: Lumpuhkan SELinux

    sudo sed -i 's/SELINUX=enforcing/SELINUX=disabled/' /etc/selinux/config
    sudo shutdown -r now
    
  • Pilihan 3: Tukar permissivemod SELinux

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

Mulakan perkhidmatan MongoDB dan buatnya bermula selepas reboot sistem:

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

Langkah 4: Import data Leanote awal ke MongoDB

Gunakan arahan di bawah untuk mengimport 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: Dayakan pengesahan MongoDB

Untuk tujuan keselamatan, anda perlu mendayakan kawalan akses kepada MongoDB sebaik sahaja perkhidmatan MongoDB dijalankan dan dijalankan. Untuk tujuan ini, anda perlu membuat sekurang-kurangnya dua akaun pengguna MongoDB: akaun pentadbir pengguna dan akaun pentadbir pangkalan data. Anda juga perlu mengubah konfigurasi MongoDB.

Masukkan shell MongoDB:

mongo --host 127.0.0.1:27017

Beralih kepada adminpangkalan data:

use admin

Buat pentadbir pengguna bernama useradminyang menggunakan kata laluan useradminpassword:

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

Nota: Pentadbir pengguna useradminsepatutnya menguruskan semua pengguna MongoDB, jadi bijak untuk memilih kata laluan yang kuat. Sudah tentu, hujung yang lebih selamat adalah untuk menggantikan useradmindengan nama pengguna yang sukar diteka.

Beralih kepada leanotepangkalan data:

use leanote

Buat pentadbir pangkalan data bernama leanoteadminyang menggunakan kata laluan leanoteadminpassword:

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

Nota : Sekali lagi, adalah disyorkan untuk memilih nama pengguna yang kurang dikenali dan kata laluan yang sukar ditebak.

Mempunyai pengguna MongoDB yang dibuat, anda boleh mengesahkan hasilnya:

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

Sahkan admin pangkalan data:

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

Kedua-duanya akan dikeluarkan 1sebagai pengesahan.

Keluar shell MongoDB:

exit

Untuk membolehkan kawalan akses ke MongoDB, anda juga perlu memasukkan dua baris ke fail konfigurasi MongoDB /etc/mongod.conf, seperti berikut:

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

Mulakan semula perkhidmatan MongoDB untuk melaksanakan pengubahsuaian:

sudo systemctl restart mongod.service

Mulai sekarang, anda hanya boleh menggunakan kedua-dua akaun pengguna untuk mengakses dan mengurus MongoDB, useradminuntuk mengurus semua pengguna MongoDB dan leanoteadminmenguruskan leanotepangkalan data sahaja.

Langkah 6: Konfigurasikan Leanote

Sandarkan fail konfigurasi Leanote /home/leanote/leanote/conf/app.conf:

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

Gunakan vieditor untuk membuka fail konfigurasi Leanote:

vi app.conf

Cari baris berikut satu persatu:

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

Gantikan mereka, seperti yang ditunjukkan di bawah:

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

Nota: Untuk tujuan keselamatan, nilai app.secretparameter MESTI menjadi rentetan rawak 64-bit yang berbeza dari yang asal. Pastikan untuk menggantikan nilai E52tyCDBRk39HmhdGYJLBS3etXpnz7DymmxkgHBYxd7Y9muWVVJ5QZNdDEaHV2sAdengan nilai rawak 64-bit anda sendiri.

Simpan dan tutup:

:wq!

Langkah 7: Mula Leanote

Ubah peraturan firewall untuk membolehkan lalu lintas TCP masuk di port 9000:

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

Mula Leanote menggunakan skrip rasmi:

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

Apabila melihat Listening on.. 0.0.0.0:9000, http://leanote.example.com:9000tunjuk pelayar web kegemaran anda untuk mula menggunakan laman Leanote.

Gunakan akaun admin Leanote lalai untuk log masuk:

  • Nama pengguna: admin
  • Kata Laluan: abc123

Untuk tujuan keselamatan, anda harus menukar kata laluan lalai sebaik sahaja mendaftar masuk.

Langkah 8: Dayakan HTTPSakses

Buat masa ini, anda boleh mengakses pelayan Leanote menggunakan protokol HTTP, protokol yang kurang selamat. Untuk meningkatkan keselamatan sistem, anda boleh mendayakan HTTPSdengan menggunakan kedua-dua Let's Encrypt Sertifikat SSL dan proxy terbalik Nginx pada mesin anda.

Siapkan nama host dan nama domain yang betul (FQDN)

Sebelum anda boleh mendapatkan Sijil SSL Letakkan Sijil, anda perlu menyiapkan nama hos dan FQDN dengan betul pada mesin anda.

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

Seterusnya, sediakan nama hos dan FQDN seperti 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 boleh mengesahkan hasilnya, juga:

hostname
hostname -f

Ubah suai peraturan firewall

Sekat lalu lintas masuk di pelabuhan 9000dan biarkan lalu lintas masuk di pelabuhan untuk HTTPdan HTTPSperkhidmatan:

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

Memohon sijil Let's Encrypt SSL

Pasang utiliti 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

Memohon untuk Sijil Sijil SSL untuk domain leanote.example.com:

sudo certbot certonly --standalone --agree-tos --no-eff-email -m [email protected] -d leanote.example.com

Sijil dan rantai akan disimpan seperti berikut:

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

Fail kunci peribadi akan disimpan seperti berikut:

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

Secara lalai, sijil Let's Encrypt SSL akan tamat dalam tiga bulan. Anda boleh menyiapkan tugas cron, seperti yang ditunjukkan di bawah, untuk memperbaharui sijil Let's Encrypt anda secara automatik:

sudo crontab -e

Tekan Iuntuk masuk ke insertmod, kemudian masukkan baris berikut:

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

Simpan dan tutup:

:wq!

Pekerjaan cron ini akan cuba memperbaharui sijil Let's Encrypt setiap hari pada waktu tengah hari.

Pasang Nginx sebagai proksi terbalik

Pasang Nginx menggunakan repo YUM repo:

sudo yum install -y nginx

Buat fail 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

Mulakan semula Nginx untuk melaksanakan pengubahsuaian anda:

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

Ubah site.urltetapan dalam fail konfigurasi Leanote:

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

Cari baris berikut:

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

Gantikannya:

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

Simpan dan tutup:

:wq!

Jalankan skrip Leanote sekali lagi:

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

Sekarang, arahkan pelayar web kegemaran anda http://leanote.example.com/, dan anda akan mendapati bahawa HTTPSprotokol diaktifkan secara automatik. Cukup log masuk sebagai adminpengguna dengan kata laluan baru yang anda siapkan lebih awal atau daftarkan akaun pengguna baru untuk kerjasama pasukan.

Sekali lagi, tekan CTRL+ Cuntuk menghentikan skrip Leanote. Kami akan memalsukan skrip ini kemudian.

Langkah 9: Pasang wkhtmltopdfprogram

Leanote memilih untuk menggunakan wkhtmltopdfprogram ini untuk mengeksport laman HTML sebagai fail 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 menghantar wkhtmltopdfjalur perduaan /usr/local/bin/wkhtmltopdfdi Export PDFbahagian di papan pemuka pentadbir web Leanote ketika Leanote kembali aktif.

Nota: Jika anda mendapati aksara yang tidak boleh dibaca dalam fail PDF yang dieksport, anda boleh cuba membetulkan masalah dengan menambah fail font yang diperlukan ke /usr/share/fonts/direktori.

Langkah 10: Gunakan Penyelia untuk memastikan skrip Leanote terus berjalan

Untuk memastikan tapak Leanote anda dalam talian, anda boleh menggunakan utiliti Penyelia untuk memulakan skrip Leanote secara automatik jika ia terhempas.

Pasang Supervisor menggunakan YUM:

sudo yum install -y supervisor

Buat .inifail Penyelia ringkas 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

Mulakan perkhidmatan Penyelia, serta perkhidmatan Leanote:

sudo supervisord -c /etc/supervisord.conf

Sahkan status perkhidmatan Leanote:

sudo supervisorctl status leanote

Output akan menyerupai yang berikut:

leanote                          RUNNING   pid 3707, uptime 0:02:36


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