Kako postaviti Leanote poslužitelj na CentOS 7

Leanote je besplatna, lagana i open source alternativa Evernoteu, koji je napisan na Golangu. Imajući na umu korisničko iskustvo, Leanote korisnicima pruža obilje praktičnih značajki, uključujući podršku za više platformi, pisanje u sintaksi MarkDown, javno ili privatno bloganje, prikupljanje i dijeljenje znanja te timsku suradnju.

U ovom članku vodit ću vas kroz postavljanje Leanote poslužitelja na instanci poslužitelja CentOS 7. Iz sigurnosnih razloga, omogućavanje HTTPS supportkorištenja Let's Encrypt SSL certifikata i Nginxa također će biti pokriveno.

Preduvjeti

  • Novopostavljena instanca poslužitelja Vultr CentOS 7. Recimo da je njegova IPv4 adresa 203.0.113.1.
  • Korisnik sudo pod nazivom leanote.
  • Svi softverski paketi na stroju ažurirani su na najnoviji stabilni status pomoću EPEL YUM repo. Detalje pogledajte ovdje .
  • Domena leanote.example.comkoja je usmjerena na gore spomenutu instancu poslužitelja.

Korak 1: Napravite zamjensku datoteku

Prilikom pokretanja nove instance poslužitelja Vultr CentOS 7, uvijek se preporučuje postavljanje swap datoteke kako bi se osiguralo da sustav radi nesmetano. Na primjer, stvaranje swap datoteke veličine 2048 MB odgovara stroju s 2 GB memorije.

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

Napomena: Ako koristite drugu veličinu poslužitelja, možda ćete morati izmijeniti veličinu swap datoteke.

Korak 2: Nabavite binarne datoteke Leanote 2.6.1

Preuzmite i izdvojite najnovije stabilno izdanje Leanotea za 64-bitni Linux sustav:

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

Korak 3: Instalirajte MongoDB Community Edition 4.0

Kao što zahtijeva Leanote, MongoDB NoSQL DBMS mora biti postavljen prije nego što možete uspješno postaviti Leanote poslužitelj.

Postavite MongoDB 4.0 YUM repo

Napravite MongoDB 4.0 YUM repo na sljedeći način:

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

Instalirajte MongoDB 4.0 pakete koristeći YUM

Instalirajte sve komponente i alate MongoDB koristeći prethodno kreiran MongoDB 4.0 YUM repo:

sudo yum install -y mongodb-org

Konfigurirajte SELinux za MongoDB 4.0

Prema zadanim postavkama, MongoDB bi koristio 27017port za vrijeme rada, što nije dopušteno ako je SELinux u enforcingnačinu rada na CentOS 7 stroju. Upotrijebite sljedeću naredbu da potvrdite trenutni način rada SELinux:

sudo getenforce

Na instanci poslužitelja Vultr CentOS 7, SELinux je onemogućen prema zadanim postavkama. Dakle, izlaz gornje naredbe bi bio:

Disabled

U tom slučaju možete slobodno preskočiti sljedeće upute o konfiguriranju SELinuxa i nastaviti dalje.

Međutim, ako koristite izvornu instancu poslužitelja CentOS 7, izlaz gornje naredbe bi bio Enforcing. Morate izvesti bilo koju od tri opcije u nastavku prije nego što možete pokrenuti i omogućiti MongoDB uslugu.

  • Opcija 1: dopustite MongoDB-u da koristi 27017port

    sudo semanage port -a -t mongod_port_t -p tcp 27017
    
  • Opcija 2: Onemogućite SELinux

    sudo sed -i 's/SELINUX=enforcing/SELINUX=disabled/' /etc/selinux/config
    sudo shutdown -r now
    
  • Opcija 3: Promijenite SELinux u permissivenačin rada

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

Pokrenite MongoDB uslugu i neka počne nakon ponovnog pokretanja sustava:

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

Korak 4: Uvezite početne Leanote podatke u MongoDB

Upotrijebite naredbe u nastavku za uvoz početnih Leanote podataka u 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/

Korak 5: Omogućite MongoDB autentifikaciju

Iz sigurnosnih razloga, morate omogućiti kontrolu pristupa MongoDB-u odmah nakon što se MongoDB servis pokrene i pokrene. U tu svrhu morate stvoriti najmanje dva MongoDB korisnička računa: korisnički administratorski račun i račun administratora baze podataka. Također ćete morati izmijeniti MongoDB konfiguraciju.

Unesite ljusku MongoDB:

mongo --host 127.0.0.1:27017

Prebacite se na adminbazu podataka:

use admin

Napravite korisničkog administratora s imenom useradminkoji koristi lozinku useradminpassword:

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

Napomena: Administrator korisnika useradmintrebao bi upravljati svim MongoDB korisnicima, stoga je pametno odabrati jaku lozinku. Naravno, sigurniji savjet je zamijeniti useradminkorisničkim imenom koje je teško pogoditi.

Prebacite se na leanotebazu podataka:

use leanote

Napravite administratora baze podataka leanoteadminkoji koristi lozinku leanoteadminpassword:

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

Napomena : Opet, preporuča se odabrati manje poznato korisničko ime i lozinku koju je teško pogoditi.

Nakon kreiranja MongoDB korisnika, možete potvrditi rezultate:

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

Potvrdite administratora baze podataka:

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

Oba će se prikazati 1kao potvrdu.

Izađite iz ljuske MongoDB:

exit

Kako biste omogućili kontrolu pristupa MongoDB-u, također morate dodati dva retka u konfiguracijsku datoteku MongoDB /etc/mongod.conf, kako slijedi:

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

Ponovno pokrenite MongoDB uslugu kako bi izmjene stupile na snagu:

sudo systemctl restart mongod.service

Od sada možete koristiti samo dva korisnička računa za pristup i upravljanje MongoDB-om, useradminza upravljanje svim MongoDB korisnicima i samo leanoteadminza upravljanje leanotebazom podataka.

Korak 6: Konfigurirajte Leanote

Napravite sigurnosnu kopiju konfiguracijske datoteke Leanotea /home/leanote/leanote/conf/app.conf:

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

Koristite viuređivač da otvorite konfiguracijsku datoteku Leanote:

vi app.conf

Pronađite sljedeće retke jedan po jedan:

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

Zamijenite ih, odnosno, kao što je prikazano u nastavku:

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

Napomena: Iz sigurnosnih razloga vrijednost app.secretparametra MORA biti 64-bitni nasumični niz koji se razlikuje od izvornog. Obavezno zamijenite vrijednost E52tyCDBRk39HmhdGYJLBS3etXpnz7DymmxkgHBYxd7Y9muWVVJ5QZNdDEaHV2sAsvojom 64-bitnom nasumičnom vrijednošću.

Spremi i zatvori:

:wq!

Korak 7: Pokrenite Leanote

Izmijenite pravila vatrozida kako biste dopustili ulazni TCP promet na portu 9000:

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

Pokrenite Leanote koristeći službenu skriptu:

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

Kada vidite Listening on.. 0.0.0.0:9000, usmjerite svoj omiljeni web preglednik na http://leanote.example.com:9000kako biste počeli koristiti stranicu Leanote.

Za prijavu koristite zadani Leanote administratorski račun:

  • Korisničko ime: admin
  • Zaporka: abc123

Iz sigurnosnih razloga, trebali biste promijeniti zadanu lozinku odmah nakon prijave.

Korak 8: Omogućite HTTPSpristup

For now, you can already access the Leanote server using the HTTP protocol, a less secure protocol. In order to improve system security, you can enable HTTPS by deploying both a Let's Encrypt SSL certificate and the Nginx reverse proxy on your machine.

Properly setup a hostname and fully qualified domain name (FQDN)

Before you can obtain the Let's Encrypt SSL certificate, you need to properly setup the hostname and FQDN on your machine.

First, press CTRL+C to stop the Leanote script run.sh.

Next, setup the hostname and FQDN as follows:

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

You can confirm the results, as well:

hostname
hostname -f

Modify firewall rules

Block inbound traffic on port 9000 and allow inbound traffic on ports for HTTP and HTTPS services:

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

Apply for a Let's Encrypt SSL certificate

Install the Certbot utility:

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

Prijavite se za Let's Encrypt SSL certifikat za domenu leanote.example.com:

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

Certifikat i lanac bit će spremljeni na sljedeći način:

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

Datoteka privatnog ključa bit će spremljena na sljedeći način:

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

Prema zadanim postavkama, Let's Encrypt SSL certifikat će isteći za tri mjeseca. Možete postaviti cron posao, kao što je prikazano u nastavku, za automatsku obnovu vaših Let's Encrypt certifikata:

sudo crontab -e

Pritisnite Iza ulazak u insertnačin rada, a zatim unesite sljedeći redak:

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

Spremi i zatvori:

:wq!

Ovaj cron posao pokušat će obnoviti certifikat Let's Encrypt svaki dan u podne.

Instalirajte Nginx kao obrnuti proxy

Instalirajte Nginx koristeći EPEL YUM repo:

sudo yum install -y nginx

Napravite konfiguracijsku datoteku za 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

Ponovno pokrenite Nginx kako biste svoje izmjene stavili na snagu:

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

Promijenite site.urlpostavku u konfiguracijskoj datoteci Leanote:

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

Pronađite sljedeći redak:

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

Zamijenite ga:

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

Spremi i zatvori:

:wq!

Ponovno pokrenite skriptu Leanote:

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

Sada usmjerite svoj omiljeni web preglednik na http://leanote.example.com/, i vidjet ćete da se HTTPSprotokol automatski aktivira. Jednostavno se prijavite kao adminkorisnik s novom lozinkom koju ste ranije postavili ili registrirajte nove korisničke račune za timsku suradnju.

Ponovno pritisnite CTRL+ Cda zaustavite Leanote skriptu. Kasnije ćemo demonizirati ovu skriptu.

Korak 9: Instalirajte wkhtmltopdfprogram

Leanote odlučuje koristiti wkhtmltopdfprogram za izvoz HTML stranica kao PDF datoteka. Instaliraj 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

Nemojte zaboraviti poslati wkhtmltopdfbinarni put /usr/local/bin/wkhtmltopdfu Export PDFodjeljku na nadzornoj ploči Leanote web administratora kada se Leanote ponovno pokrene.

Napomena: Ako pronađete nečitljive znakove u izvezenim PDF datotekama, možete pokušati riješiti problem dodavanjem potrebnih datoteka fontova u /usr/share/fonts/direktorij.

Korak 10: Koristite Supervisor da održite Leanote skriptu u radu

Kako biste zadržali svoju Leanote stranicu online, možete koristiti uslužni program Supervisor za automatsko pokretanje Leanote skripte ako se sruši.

Instalirajte Supervisor koristeći YUM:

sudo yum install -y supervisor

Napravite jednostavnu .inidatoteku Supervisora za 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

Pokrenite uslugu Supervisor, kao i uslugu Leanote:

sudo supervisord -c /etc/supervisord.conf

Potvrdite status usluge Leanote:

sudo supervisorctl status leanote

Izlaz će izgledati sljedeće:

leanote                          RUNNING   pid 3707, uptime 0:02:36

Ostavite komentar

Uspon strojeva: primjene AI u stvarnom svijetu

Uspon strojeva: primjene AI u stvarnom svijetu

Umjetna inteligencija nije u budućnosti, ovdje je upravo u sadašnjosti. U ovom blogu Pročitajte kako su aplikacije umjetne inteligencije utjecale na različite sektore.

DDOS napadi: kratak pregled

DDOS napadi: kratak pregled

Jeste li i vi žrtva DDOS napada i zbunjeni ste metodama prevencije? Pročitajte ovaj članak kako biste riješili svoje upite.

Jeste li se ikada zapitali kako hakeri zarađuju novac?

Jeste li se ikada zapitali kako hakeri zarađuju novac?

Možda ste čuli da hakeri zarađuju mnogo novca, ali jeste li se ikada zapitali kako zarađuju toliki novac? raspravimo.

Revolucionarni Googleovi izumi koji će vam olakšati život.

Revolucionarni Googleovi izumi koji će vam olakšati život.

Želite li vidjeti revolucionarne izume Googlea i kako su ti izumi promijenili život svakog čovjeka danas? Zatim čitajte na blogu kako biste vidjeli Googleove izume.

Friday Essential: Što se dogodilo s automobilima s umjetnom inteligencijom?

Friday Essential: Što se dogodilo s automobilima s umjetnom inteligencijom?

Koncept samovozećih automobila koji će krenuti na ceste uz pomoć umjetne inteligencije san je koji već neko vrijeme imamo. No, unatoč nekoliko obećanja, nigdje ih nema. Pročitajte ovaj blog kako biste saznali više…

Tehnološka singularnost: daleka budućnost ljudske civilizacije?

Tehnološka singularnost: daleka budućnost ljudske civilizacije?

Kako se znanost razvija velikom brzinom, preuzimajući mnoge naše napore, raste i rizik da se podvrgnemo neobjašnjivoj Singularnosti. Pročitajte što bi za nas mogla značiti singularnost.

Funkcionalnosti slojeva referentne arhitekture velikih podataka

Funkcionalnosti slojeva referentne arhitekture velikih podataka

Pročitajte blog kako biste na najjednostavniji način upoznali različite slojeve u arhitekturi velikih podataka i njihove funkcionalnosti.

Evolucija pohrane podataka – Infografika

Evolucija pohrane podataka – Infografika

Metode pohrane podataka su se razvijale možda od rođenja podataka. Ovaj blog pokriva evoluciju pohrane podataka na temelju infografike.

6 nevjerojatnih prednosti posjedovanja pametnih kućnih uređaja u našim životima

6 nevjerojatnih prednosti posjedovanja pametnih kućnih uređaja u našim životima

U ovom digitalnom svijetu, pametni kućni uređaji postali su ključni dio života. Evo nekoliko nevjerojatnih prednosti pametnih kućnih uređaja o tome kako naš život čine vrijednim življenja i jednostavnijim.

Ažuriranje dodataka macOS Catalina 10.15.4 uzrokuje više problema nego što ih rješava

Ažuriranje dodataka macOS Catalina 10.15.4 uzrokuje više problema nego što ih rješava

Nedavno je Apple izdao macOS Catalina 10.15.4 dodatak ažuriranju kako bi riješio probleme, ali čini se da ažuriranje uzrokuje više problema koji dovode do zalijevanja mac strojeva. Pročitajte ovaj članak da biste saznali više