Hoe een Leanote-server op CentOS 7 in te stellen

Leanote is een gratis, lichtgewicht en open source alternatief voor Evernote, dat is geschreven in Golang. Met het oog op de gebruikerservaring biedt Leanote gebruikers tal van praktische functies, waaronder platformonafhankelijke ondersteuning, schrijven in de MarkDown-syntaxis, openbaar of privé bloggen, kennis verzamelen en delen en teamsamenwerking.

In dit artikel zal ik je helpen bij het opzetten van een Leanote-server op een CentOS 7-serverinstantie. Om veiligheidsredenen wordt het inschakelen HTTPS supportvan een Let's Encrypt SSL-certificaat en Nginx ook gedekt.

Vereisten

  • Een nieuw geïmplementeerde Vultr CentOS 7-serverinstantie. Stel dat het IPv4-adres is 203.0.113.1.
  • Een sudo-gebruiker genaamd leanote.
  • Alle softwarepakketten op de machine zijn bijgewerkt naar de laatste stabiele status met behulp van de EPEL YUM-repo. Zie details hier .
  • Een domein leanote.example.comdat verwijst naar de hierboven genoemde serverinstantie.

Stap 1: Maak een wisselbestand

Bij het opstarten van een nieuwe Vultr CentOS 7-serverinstantie, wordt het altijd aanbevolen om een ​​wisselbestand in te stellen om ervoor te zorgen dat het systeem soepel werkt. Het maken van een wisselbestand van 2048 MB is bijvoorbeeld geschikt voor een machine met 2 GB geheugen.

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

Opmerking: als u een andere servergrootte gebruikt, moet u mogelijk de grootte van het wisselbestand wijzigen.

Stap 2: Verkrijg Leanote 2.6.1 binaire bestanden

Download en extraheer de nieuwste stabiele release van Leanote voor 64-bits Linux-systeem:

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

Stap 3: Installeer MongoDB Community Edition 4.0

Zoals vereist door Leanote, moet het MongoDB NoSQL DBMS aanwezig zijn voordat u met succes een Leanote-server kunt opzetten.

Stel de MongoDB 4.0 YUM-opslagplaats in

Maak de MongoDB 4.0 YUM-opslagplaats als volgt:

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

Installeer MongoDB 4.0-pakketten met YUM

Installeer alle MongoDB-componenten en -tools met de eerder gemaakte MongoDB 4.0 YUM-repo:

sudo yum install -y mongodb-org

Configureer SELinux voor MongoDB 4.0

Standaard zou MongoDB de 27017poort gebruiken tijdens het werken, wat niet is toegestaan ​​als SELinux in de enforcingmodus staat op de CentOS 7-machine. Gebruik de volgende opdracht om de huidige SELinux-modus te bevestigen:

sudo getenforce

Op een Vultr CentOS 7 serverinstantie is SELinux standaard uitgeschakeld. Dus de uitvoer van het bovenstaande commando zou zijn:

Disabled

In dit geval kun je gerust de volgende instructies over het configureren van SELinux overslaan en verder gaan.

Als u echter een originele CentOS 7-serverinstantie uitvoert, zou de uitvoer van de bovenstaande opdracht zijn Enforcing. U moet een van de drie onderstaande opties uitvoeren voordat u de MongoDB-service kunt starten en inschakelen.

  • Optie 1: MongoDB toestaan ​​de 27017poort te gebruiken

    sudo semanage port -a -t mongod_port_t -p tcp 27017
    
  • Optie 2: SELinux uitschakelen

    sudo sed -i 's/SELINUX=enforcing/SELINUX=disabled/' /etc/selinux/config
    sudo shutdown -r now
    
  • Optie 3: verander SELinux naar permissivemodus

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

Start de MongoDB-service en laat deze starten nadat het systeem opnieuw is opgestart:

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

Stap 4: Importeer de eerste Leanote-gegevens in MongoDB

Gebruik de onderstaande opdrachten om de eerste Leanote-gegevens in MongoDB te importeren:

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/

Stap 5: Schakel MongoDB-verificatie in

Om veiligheidsredenen moet u toegangscontrole tot MongoDB inschakelen direct nadat de MongoDB-service actief is. Hiervoor moet u minimaal twee MongoDB-gebruikersaccounts maken: een gebruikersbeheerdersaccount en een databasebeheerdersaccount. U moet ook de MongoDB-configuratie wijzigen.

Voer de MongoDB-shell in:

mongo --host 127.0.0.1:27017

Schakel over naar de admindatabase:

use admin

Maak een gebruikersbeheerder met de naam useradmindie een wachtwoord gebruikt useradminpassword:

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

Opmerking: de gebruikersbeheerder useradminmoet alle MongoDB-gebruikers beheren, dus het is verstandig om een ​​sterk wachtwoord te kiezen. Natuurlijk is een veiliger tip om te vervangen useradmindoor een moeilijk te raden gebruikersnaam.

Schakel over naar de leanotedatabase:

use leanote

Maak een databasebeheerder met de naam leanoteadmindie een wachtwoord gebruikt leanoteadminpassword:

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

Opmerking : nogmaals, het wordt aanbevolen om een ​​minder bekende gebruikersnaam en een moeilijk te raden wachtwoord te kiezen.

Als de MongoDB-gebruikers zijn gemaakt, kunt u de resultaten bevestigen:

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

Bevestig de databasebeheerder:

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

Beide worden 1ter bevestiging uitgevoerd.

Verlaat de MongoDB-shell:

exit

Om toegangscontrole tot MongoDB mogelijk te maken, moet u ook /etc/mongod.confals volgt twee regels toevoegen aan het MongoDB-configuratiebestand :

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

Start de MongoDB-service opnieuw op om de wijzigingen door te voeren:

sudo systemctl restart mongod.service

Vanaf nu kunt u de twee gebruikersaccounts alleen gebruiken voor toegang tot en beheer van MongoDB, useradminvoor het beheer van alle MongoDB-gebruikers en leanoteadminvoor het beheer van leanotealleen de database.

Stap 6: Leanote configureren

Maak een back-up van het Leanote-configuratiebestand /home/leanote/leanote/conf/app.conf:

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

Gebruik de vieditor om het Leanote-configuratiebestand te openen:

vi app.conf

Zoek één voor één de volgende regels:

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

Vervang ze respectievelijk, zoals hieronder weergegeven:

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

Opmerking: om veiligheidsredenen app.secretMOET de waarde van de parameter een willekeurige 64-bits string zijn die verschilt van de originele. Zorg ervoor dat u de waarde vervangt E52tyCDBRk39HmhdGYJLBS3etXpnz7DymmxkgHBYxd7Y9muWVVJ5QZNdDEaHV2sAdoor uw eigen 64-bits willekeurige waarde.

Opslaan en afsluiten:

:wq!

Stap 7: Start Leanote

Wijzig de firewallregels om inkomend TCP-verkeer op de poort toe te staan 9000:

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

Start Leanote met het officiële script:

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

Listening on.. 0.0.0.0:9000Wijs bij het zien uw favoriete webbrowser aan http://leanote.example.com:9000om de Leanote-site te gaan gebruiken.

Gebruik het standaard Leanote-beheerdersaccount om in te loggen:

  • Gebruikersnaam: admin
  • Wachtwoord: abc123

Om veiligheidsredenen moet u het standaardwachtwoord onmiddellijk na het inloggen wijzigen.

Stap 8: HTTPSToegang inschakelen

Voorlopig heeft u al toegang tot de Leanote-server met behulp van het HTTP-protocol, een minder veilig protocol. Om de systeembeveiliging te verbeteren, kunt u dit inschakelen HTTPSdoor zowel een Let's Encrypt SSL-certificaat als de Nginx reverse proxy op uw computer te implementeren.

Stel een hostnaam en een volledig gekwalificeerde domeinnaam (FQDN) correct in

Voordat u het Let's Encrypt SSL-certificaat kunt verkrijgen, moet u de hostnaam en FQDN op uw computer correct instellen.

Druk eerst op CTRL+ Com het Leanote-script te stoppen run.sh.

Stel vervolgens de hostnaam en FQDN als volgt in:

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

U kunt de resultaten ook bevestigen:

hostname
hostname -f

Wijzig firewallregels

Blokkeer inkomend verkeer op poort 9000en sta inkomend verkeer op poorten voor HTTPen HTTPSservices toe:

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

Vraag een Let's Encrypt SSL-certificaat aan

Installeer het Certbot-hulpprogramma:

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

Vraag een Let's Encrypt SSL-certificaat aan voor het domein leanote.example.com:

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

Het certificaat en de ketting worden als volgt bewaard:

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

Het privésleutelbestand wordt als volgt opgeslagen:

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

Standaard verloopt het Let's Encrypt SSL-certificaat na drie maanden. U kunt een cron-taak instellen, zoals hieronder weergegeven, om uw Let's Encrypt-certificaten automatisch te verlengen:

sudo crontab -e

Druk Iop om de insertmodus te openen en voer dan de volgende regel in:

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

Opslaan en afsluiten:

:wq!

Deze cron-taak zal elke dag om 12.00 uur proberen het Let's Encrypt-certificaat te vernieuwen.

Installeer Nginx als een reverse proxy

Installeer Nginx met behulp van de EPEL YUM-opslagplaats:

sudo yum install -y nginx

Maak een configuratiebestand voor 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

Start Nginx opnieuw op om uw wijzigingen door te voeren:

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

Wijzig de site.urlinstelling in het Leanote-configuratiebestand:

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

Zoek de volgende regel:

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

Vervang het:

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

Opslaan en afsluiten:

:wq!

Voer het Leanote-script opnieuw uit:

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

Wijs nu uw favoriete webbrowser aan http://leanote.example.com/en u zult zien dat het HTTPSprotocol automatisch wordt geactiveerd. Log gewoon in als admingebruiker met het nieuwe wachtwoord dat u eerder hebt ingesteld of registreer nieuwe gebruikersaccounts voor teamsamenwerking.

Druk nogmaals op CTRL+ Com het Leanote-script te stoppen. We zullen dit script later daemoniseren.

Stap 9: Installeer het wkhtmltopdfprogramma

Leanote kiest ervoor om het wkhtmltopdfprogramma te gebruiken om HTML-pagina's als PDF-bestanden te exporteren. Installeer 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

Vergeet niet het wkhtmltopdfbinaire pad /usr/local/bin/wkhtmltopdfin te voeren in de Export PDFsectie in het Leanote-webadministratiedashboard wanneer Leanote weer actief is.

Opmerking: als u onleesbare tekens in geëxporteerde PDF-bestanden aantreft, kunt u proberen het probleem op te lossen door de vereiste lettertypebestanden aan de /usr/share/fonts/directory toe te voegen .

Stap 10: gebruik Supervisor om het Leanote-script actief te houden

Om uw Leanote-site online te houden, kunt u het hulpprogramma Supervisor gebruiken om het Leanote-script automatisch te starten als het crasht.

Installeer Supervisor met YUM:

sudo yum install -y supervisor

Maak een eenvoudig Supervisor- .inibestand voor 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

Start de Supervisor-service en de Leanote-service:

sudo supervisord -c /etc/supervisord.conf

Bevestig de status van de Leanote-service:

sudo supervisorctl status leanote

De uitvoer ziet er als volgt uit:

leanote                          RUNNING   pid 3707, uptime 0:02:36


Leave a Comment

Kan AI vechten met toenemend aantal ransomware-aanvallen?

Kan AI vechten met toenemend aantal ransomware-aanvallen?

Ransomware-aanvallen nemen toe, maar kan AI helpen het nieuwste computervirus het hoofd te bieden? Is AI het antwoord? Lees hier weten is AI boezem of vloek

ReactOS: is dit de toekomst van Windows?

ReactOS: is dit de toekomst van Windows?

ReactOS, een open source en gratis besturingssysteem is hier met de nieuwste versie. Kan het voldoen aan de behoeften van moderne Windows-gebruikers en Microsoft uitschakelen? Laten we meer te weten komen over deze oude stijl, maar een nieuwere OS-ervaring.

Blijf verbonden via WhatsApp Desktop-app 24 * 7

Blijf verbonden via WhatsApp Desktop-app 24 * 7

WhatsApp heeft eindelijk de Desktop-app voor Mac- en Windows-gebruikers gelanceerd. Nu heb je eenvoudig toegang tot WhatsApp vanuit Windows of Mac. Beschikbaar voor Windows 8+ en Mac OS 10.9+

Hoe AI procesautomatisering naar een hoger niveau kan tillen?

Hoe AI procesautomatisering naar een hoger niveau kan tillen?

Lees dit om te weten hoe kunstmatige intelligentie populair wordt onder de kleinschalige bedrijven en hoe het de kansen vergroot om ze te laten groeien en hun concurrenten voorsprong te geven.

macOS Catalina 10.15.4 Supplement Update veroorzaakt meer problemen dan het oplost

macOS Catalina 10.15.4 Supplement Update veroorzaakt meer problemen dan het oplost

Onlangs heeft Apple macOS Catalina 10.15.4 uitgebracht, een aanvullende update om problemen op te lossen, maar het lijkt erop dat de update meer problemen veroorzaakt die ertoe leiden dat mac-machines worden gemetseld. Lees dit artikel voor meer informatie

13 Commerciële data-extractietools voor big data

13 Commerciële data-extractietools voor big data

13 Commerciële data-extractietools voor big data

Wat is een logboekbestandssysteem en hoe werkt het?

Wat is een logboekbestandssysteem en hoe werkt het?

Onze computer slaat alle gegevens op een georganiseerde manier op, het zogenaamde Journaling-bestandssysteem. Het is een efficiënte methode waarmee de computer bestanden kan zoeken en weergeven zodra u op zoeken drukt.https://wethegeek.com/?p=94116&preview=true

Technologische singulariteit: een verre toekomst van de menselijke beschaving?

Technologische singulariteit: een verre toekomst van de menselijke beschaving?

Naarmate de wetenschap zich snel ontwikkelt en veel van onze inspanningen overneemt, nemen ook de risico's toe om onszelf te onderwerpen aan een onverklaarbare singulariteit. Lees, wat singulariteit voor ons kan betekenen.

Een inzicht in 26 Big Data-analysetechnieken: deel 1

Een inzicht in 26 Big Data-analysetechnieken: deel 1

Een inzicht in 26 Big Data-analysetechnieken: deel 1

De impact van kunstmatige intelligentie in de gezondheidszorg 2021

De impact van kunstmatige intelligentie in de gezondheidszorg 2021

AI in de zorg heeft de afgelopen decennia grote sprongen gemaakt. De toekomst van AI in de gezondheidszorg groeit dus nog steeds met de dag.