Ako nastaviť server Leanote na CentOS 7

Leanote je bezplatná, ľahká a open source alternatíva k Evernote, ktorá je napísaná v jazyku Golang. S ohľadom na používateľskú skúsenosť poskytuje Leanote používateľom množstvo praktických funkcií vrátane podpory viacerých platforiem, písania v syntaxi MarkDown, verejného alebo súkromného blogovania, zhromažďovania a zdieľania vedomostí a tímovej spolupráce.

V tomto článku vás prevediem nastavením servera Leanote na inštancii servera CentOS 7. Z bezpečnostných dôvodov HTTPS supportbude zahrnuté aj povolenie používania certifikátu Let's Encrypt SSL a Nginx.

Predpoklady

  • Novo nasadená inštancia servera Vultr CentOS 7. Povedzme, že jeho adresa IPv4 je 203.0.113.1.
  • Užívateľ sudo menovaný leanote.
  • Všetky softvérové ​​balíky na stroji boli aktualizované na najnovší stabilný stav pomocou EPEL YUM repo. Podrobnosti nájdete tu .
  • Doména leanote.example.comsmerujúca na inštanciu servera uvedenú vyššie.

Krok 1: Vytvorte odkladací súbor

Pri spúšťaní novej inštancie servera Vultr CentOS 7 sa vždy odporúča nastaviť odkladací súbor, aby sa zabezpečilo hladké fungovanie systému. Napríklad vytvorenie odkladacieho súboru s veľkosťou 2 048 MB je vhodné pre počítač s 2 GB pamäte.

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

Poznámka: Ak používate inú veľkosť servera, možno budete musieť upraviť veľkosť odkladacieho súboru.

Krok 2: Získajte binárne súbory Leanote 2.6.1

Stiahnite si a rozbaľte najnovšiu stabilnú verziu Leanote pre 64-bitový systém Linux:

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

Krok 3: Nainštalujte MongoDB Community Edition 4.0

Ako vyžaduje Leanote, MongoDB NoSQL DBMS musí byť na svojom mieste predtým, ako budete môcť úspešne nastaviť server Leanote.

Nastavte repo MongoDB 4.0 YUM

Vytvorte repo MongoDB 4.0 YUM nasledovne:

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

Nainštalujte balíky MongoDB 4.0 pomocou YUM

Nainštalujte všetky komponenty a nástroje MongoDB pomocou repozitára MongoDB 4.0 YUM vytvoreného skôr:

sudo yum install -y mongodb-org

Nakonfigurujte SELinux pre MongoDB 4.0

V predvolenom nastavení MongoDB používa 27017port pri práci, čo nie je povolené, ak je SELinux v enforcingrežime na počítači CentOS 7. Na potvrdenie aktuálneho režimu SELinux použite nasledujúci príkaz:

sudo getenforce

Na inštancii servera Vultr CentOS 7 je SELinux predvolene vypnutý. Takže výstup vyššie uvedeného príkazu bude:

Disabled

V tomto prípade môžete pokojne preskočiť nasledujúce pokyny na konfiguráciu SELinuxu a ísť ďalej.

Ak však používate pôvodnú inštanciu servera CentOS 7, výstup vyššie uvedeného príkazu bude Enforcing. Pred spustením a povolením služby MongoDB musíte vykonať ktorúkoľvek z troch nižšie uvedených možností .

  • Možnosť 1: Povoľte MongoDB používať 27017port

    sudo semanage port -a -t mongod_port_t -p tcp 27017
    
  • Možnosť 2: Zakážte SELinux

    sudo sed -i 's/SELINUX=enforcing/SELINUX=disabled/' /etc/selinux/config
    sudo shutdown -r now
    
  • Možnosť 3: Zmeňte SELinux na permissiverežim

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

Spustite službu MongoDB a spustite ju po reštarte systému:

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

Krok 4: Importujte počiatočné údaje Leanote do MongoDB

Pomocou nižšie uvedených príkazov importujte počiatočné údaje Leanote do 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/

Krok 5: Povoľte overenie MongoDB

Z bezpečnostných dôvodov musíte povoliť riadenie prístupu k MongoDB hneď po spustení a spustení služby MongoDB. Na tento účel si musíte vytvoriť aspoň dva používateľské účty MongoDB: používateľské konto správcu a konto správcu databázy. Budete tiež musieť upraviť konfiguráciu MongoDB.

Zadajte shell MongoDB:

mongo --host 127.0.0.1:27017

Prepnite sa do admindatabázy:

use admin

Vytvorte správcu používateľov s názvom, useradminktorý používa heslo useradminpassword:

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

Poznámka: Správca používateľov useradminmá spravovať všetkých používateľov MongoDB, takže je rozumné zvoliť si silné heslo. Samozrejme, bezpečnejší tip je nahradiť useradminho ťažko uhádnuteľným užívateľským menom.

Prepnite sa do leanotedatabázy:

use leanote

Vytvorte správcu databázy s názvom, leanoteadminktorý používa heslo leanoteadminpassword:

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

Poznámka : Opäť sa odporúča zvoliť si menej známe meno používateľa a ťažko uhádnuteľné heslo.

Po vytvorení používateľov MongoDB môžete potvrdiť výsledky:

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

Potvrďte správcu databázy:

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

Obidve sa zobrazia 1ako potvrdenie.

Ukončite prostredie MongoDB:

exit

Ak chcete povoliť riadenie prístupu k MongoDB, musíte tiež pripojiť dva riadky do konfiguračného súboru MongoDB /etc/mongod.conftakto:

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

Reštartujte službu MongoDB, aby sa zmeny prejavili:

sudo systemctl restart mongod.service

Odteraz môžete používať dva používateľské účty iba na prístup a správu MongoDB, useradminna správu všetkých používateľov MongoDB a iba leanoteadminna správu leanotedatabázy.

Krok 6: Nakonfigurujte Leanote

Zálohujte konfiguračný súbor Leanote /home/leanote/leanote/conf/app.conf:

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

Pomocou vieditora otvorte konfiguračný súbor Leanote:

vi app.conf

Find the following lines one by one:

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

Replace them, respectively, as shown below:

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

Note: For security purposes, the value of the app.secret parameter MUST be a 64-bit random string that is different from the original one. Make sure to replace the value E52tyCDBRk39HmhdGYJLBS3etXpnz7DymmxkgHBYxd7Y9muWVVJ5QZNdDEaHV2sA with your own 64-bit random value.

Save and quit:

:wq!

Step 7: Start Leanote

Modify firewall rules in order to allow inbound TCP traffic on port 9000:

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

Start Leanote using the official script:

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

Upon seeing Listening on.. 0.0.0.0:9000, point your favorite web browser to http://leanote.example.com:9000 to start using the Leanote site.

Use the default Leanote admin account to sign in:

  • Username: admin
  • Password: abc123

For security purposes, you should change the default password immediately after signing in.

Step 8: Enable HTTPS access

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

Požiadajte o certifikát Let's Encrypt SSL pre doménu leanote.example.com:

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

Certifikát a reťaz sa uložia takto:

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

Súbor so súkromným kľúčom sa uloží takto:

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

Štandardne vyprší platnosť certifikátu Let's Encrypt SSL o tri mesiace. Môžete nastaviť úlohu cron, ako je uvedené nižšie, na automatické obnovenie vašich certifikátov Let's Encrypt:

sudo crontab -e

Stlačením Ivstúpte do insertrežimu a potom zadajte nasledujúci riadok:

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

Uložiť a ukončiť:

:wq!

Táto úloha cron sa pokúsi obnoviť certifikát Let's Encrypt každý deň na poludnie.

Nainštalujte Nginx ako reverzný proxy

Nainštalujte Nginx pomocou repozitára EPEL YUM:

sudo yum install -y nginx

Vytvorte konfiguračný súbor pre 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

Reštartujte Nginx, aby sa vaše úpravy prejavili:

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

Upravte site.urlnastavenie v konfiguračnom súbore Leanote:

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

Nájdite nasledujúci riadok:

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

Vymeňte ju:

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

Uložiť a ukončiť:

:wq!

Znova spustite skript Leanote:

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

Teraz nasmerujte svoj obľúbený webový prehliadač na http://leanote.example.com/a zistíte, že HTTPSprotokol sa aktivuje automaticky. Stačí sa prihlásiť ako adminpoužívateľ s novým heslom, ktoré ste nastavili predtým, alebo zaregistrovať nové používateľské účty pre tímovú spoluprácu.

Znova stlačte CTRL+ Cna zastavenie skriptu Leanote. Tento skript démonizujeme neskôr.

Krok 9: Nainštalujte wkhtmltopdfprogram

Leanote sa rozhodne použiť wkhtmltopdfprogram na exportovanie stránok HTML ako súborov PDF. Inštalovať 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

Nezabudnite odoslať wkhtmltopdfbinárnu cestu /usr/local/bin/wkhtmltopdfv Export PDFsekcii na paneli správcu webu Leanote, keď bude Leanote opäť v prevádzke.

Poznámka: Ak v exportovaných súboroch PDF nájdete nečitateľné znaky, môžete sa pokúsiť problém vyriešiť pridaním požadovaných súborov písiem do /usr/share/fonts/adresára.

Krok 10: Pomocou nástroja Supervisor udržujte skript Leanote v prevádzke

Ak chcete, aby bola vaša stránka Leanote online, môžete použiť pomôcku Supervisor na automatické spustenie skriptu Leanote, ak dôjde k jeho zlyhaniu.

Nainštalujte správcu pomocou YUM:

sudo yum install -y supervisor

Vytvorte jednoduchý .inisúbor správcu pre 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

Spustite službu Dozor, ako aj službu Leanote:

sudo supervisord -c /etc/supervisord.conf

Potvrďte stav služby Leanote:

sudo supervisorctl status leanote

Výstup bude vyzerať takto:

leanote                          RUNNING   pid 3707, uptime 0:02:36

Zanechať komentár

The Rise of Machines: Real World Applications of AI

The Rise of Machines: Real World Applications of AI

Umelá inteligencia nie je v budúcnosti, je tu priamo v súčasnosti V tomto blogu si prečítajte, ako aplikácie umelej inteligencie ovplyvnili rôzne sektory.

Útoky DDOS: Stručný prehľad

Útoky DDOS: Stručný prehľad

Ste aj vy obeťou DDOS útokov a máte zmätok ohľadom metód prevencie? Ak chcete vyriešiť svoje otázky, prečítajte si tento článok.

Zaujímalo vás niekedy, ako hackeri zarábajú peniaze?

Zaujímalo vás niekedy, ako hackeri zarábajú peniaze?

Možno ste už počuli, že hackeri zarábajú veľa peňazí, ale premýšľali ste niekedy nad tým, ako môžu zarábať také peniaze? poďme diskutovať.

Revolučné vynálezy od spoločnosti Google, ktoré vám uľahčia život.

Revolučné vynálezy od spoločnosti Google, ktoré vám uľahčia život.

Chcete vidieť revolučné vynálezy od Google a ako tieto vynálezy zmenili život každého dnešného človeka? Potom si prečítajte na blogu a pozrite si vynálezy spoločnosti Google.

Piatok Essential: Čo sa stalo s autami poháňanými AI?

Piatok Essential: Čo sa stalo s autami poháňanými AI?

Koncept samoriadených áut vyraziť na cesty s pomocou umelej inteligencie je snom, ktorý máme už nejaký čas. Ale napriek niekoľkým prísľubom ich nikde nevidno. Prečítajte si tento blog a dozviete sa viac…

Technologická singularita: vzdialená budúcnosť ľudskej civilizácie?

Technologická singularita: vzdialená budúcnosť ľudskej civilizácie?

Ako sa veda vyvíja rýchlym tempom a preberá veľa nášho úsilia, zvyšuje sa aj riziko, že sa vystavíme nevysvetliteľnej singularite. Prečítajte si, čo pre nás môže znamenať singularita.

Funkcionality vrstiev referenčnej architektúry veľkých dát

Funkcionality vrstiev referenčnej architektúry veľkých dát

Prečítajte si blog, aby ste čo najjednoduchším spôsobom spoznali rôzne vrstvy architektúry veľkých dát a ich funkcie.

Vývoj ukladania dát – Infografika

Vývoj ukladania dát – Infografika

Spôsoby ukladania údajov sa môžu vyvíjať už od zrodu údajov. Tento blog sa zaoberá vývojom ukladania údajov na základe infografiky.

6 úžasných výhod toho, že máme v živote inteligentné domáce zariadenia

6 úžasných výhod toho, že máme v živote inteligentné domáce zariadenia

V tomto digitálnom svete sa inteligentné domáce zariadenia stali kľúčovou súčasťou života. Tu je niekoľko úžasných výhod inteligentných domácich zariadení o tom, ako robia náš život, ktorý stojí za to žiť, a ktorý zjednodušujú.

Aktualizácia doplnku macOS Catalina 10.15.4 spôsobuje viac problémov, ako ich rieši

Aktualizácia doplnku macOS Catalina 10.15.4 spôsobuje viac problémov, ako ich rieši

Spoločnosť Apple nedávno vydala doplnkovú aktualizáciu macOS Catalina 10.15.4 na opravu problémov, ale zdá sa, že táto aktualizácia spôsobuje ďalšie problémy, ktoré vedú k blokovaniu počítačov Mac. Prečítajte si tento článok a dozviete sa viac