Előfeltételek
1. lépés: Hozzon létre egy swap fájlt
2. lépés: Szerezze be a Leanote 2.6.1 bináris fájlokat
3. lépés: Telepítse a MongoDB Community Edition 4.0-t
4. lépés: Importálja a kezdeti Leanote adatokat a MongoDB-be
5. lépés: Engedélyezze a MongoDB hitelesítést
6. lépés: A Leanote konfigurálása
7. lépés: Indítsa el a Leanote-ot
8. lépés: Engedélyezze a HTTPS-hozzáférést
9. lépés: Telepítse a wkhtmltopdf programot
10. lépés: Használja a Supervisort a Leanote szkript folyamatos működéséhez
A Leanote egy ingyenes, könnyű és nyílt forráskódú alternatíva az Evernote-hoz, amely Golang nyelven íródott. A felhasználói élményt szem előtt tartva a Leanote számos praktikus funkciót kínál a felhasználóknak, beleértve a platformok közötti támogatást, a MarkDown szintaxisban való írást, a nyilvános vagy privát blogírást, a tudásgyűjtést és -megosztást, valamint a csapatmunkát.
Ebben a cikkben végigvezetem Önt a Leanote-kiszolgáló beállításán egy CentOS 7 kiszolgálópéldányon. Biztonsági okokból HTTPS supporta Let's Encrypt SSL-tanúsítvány és az Nginx használatának engedélyezése is kiterjed.
Előfeltételek
- Egy újonnan telepített Vultr CentOS 7 kiszolgálópéldány. Tegyük fel, hogy az IPv4-címe
203.0.113.1.
- A sudo felhasználó neve
leanote.
- A gépen található összes szoftvercsomag a legújabb stabil állapotra frissült az EPEL YUM repo segítségével. Lásd a részleteket itt .
- Egy tartomány
leanote.example.coma fent említett szerverpéldányra mutat.
1. lépés: Hozzon létre egy swap fájlt
Egy új Vultr CentOS 7 kiszolgálópéldány indításakor mindig ajánlatos beállítani egy swap fájlt a rendszer zökkenőmentes működése érdekében. Például egy 2048 MB méretű swap fájl létrehozása alkalmas egy 2 GB memóriával rendelkező gépre.
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
Megjegyzés: Ha más szerverméretet használ, előfordulhat, hogy módosítania kell a swap fájl méretét.
2. lépés: Szerezze be a Leanote 2.6.1 bináris fájlokat
Töltse le és csomagolja ki a Leanote legújabb stabil kiadását 64 bites Linux rendszerhez:
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
A Leanote követelményeinek megfelelően a MongoDB NoSQL DBMS-nek a helyén kell lennie, mielőtt sikeresen beállíthat egy Leanote-kiszolgálót.
Állítsa be a MongoDB 4.0 YUM repót
Hozza létre a MongoDB 4.0 YUM repót az alábbiak szerint:
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
Telepítse a MongoDB 4.0 csomagokat a YUM használatával
Telepítse az összes MongoDB összetevőt és eszközt a korábban létrehozott MongoDB 4.0 YUM repo segítségével:
sudo yum install -y mongodb-org
A SELinux beállítása a MongoDB 4.0-hoz
Alapértelmezés szerint a MongoDB a 27017portot használja munka közben, ami nem megengedett, ha a SELinux enforcingmódban van a CentOS 7 gépen. Használja a következő parancsot az aktuális SELinux mód megerősítéséhez:
sudo getenforce
A Vultr CentOS 7 kiszolgálópéldányokon a SELinux alapértelmezés szerint le van tiltva. Tehát a fenti parancs kimenete a következő lenne:
Disabled
Ebben az esetben nyugodtan kihagyhatja a SELinux konfigurálására vonatkozó alábbi utasításokat, és továbbléphet.
Ha azonban eredeti CentOS 7 kiszolgálópéldányt futtat, a fenti parancs kimenete a következő lesz Enforcing. A MongoDB szolgáltatás elindítása és engedélyezése előtt végre kell hajtania az alábbi három lehetőség valamelyikét .
1. lehetőség: Engedélyezze a MongoDB számára a 27017port használatát
sudo semanage port -a -t mongod_port_t -p tcp 27017
2. lehetőség: A SELinux letiltása
sudo sed -i 's/SELINUX=enforcing/SELINUX=disabled/' /etc/selinux/config
sudo shutdown -r now
3. lehetőség: A SELinux permissivemódba váltása
sudo sed -i 's/SELINUX=enforcing/SELINUX=permissive/' /etc/selinux/config
sudo shutdown -r now
Indítsa el a MongoDB szolgáltatást, és indítsa el a rendszer újraindítását követően:
sudo systemctl start mongod.service
sudo systemctl enable mongod.service
4. lépés: Importálja a kezdeti Leanote adatokat a MongoDB-be
Az alábbi parancsokkal importálhatja a kezdeti Leanote adatokat a MongoDB-be:
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/
5. lépés: Engedélyezze a MongoDB hitelesítést
Biztonsági okokból engedélyeznie kell a MongoDB hozzáférés-vezérlését közvetlenül azután, hogy a MongoDB szolgáltatás elindult és fut. Ebből a célból létre kell hoznia legalább két MongoDB felhasználói fiókot: egy felhasználói rendszergazdai fiókot és egy adatbázis-adminisztrátori fiókot. Módosítania kell a MongoDB konfigurációt is.
Írja be a MongoDB shellt:
mongo --host 127.0.0.1:27017
Váltás az adminadatbázisra:
use admin
Hozzon létre egy felhasználói rendszergazdát useradmin, aki jelszót használ useradminpassword:
db.createUser({ user: "useradmin", pwd: "useradminpassword", roles: [{ role: "userAdminAnyDatabase", db: "admin" }] })
Megjegyzés: A felhasználói rendszergazdának useradminkell felügyelnie az összes MongoDB-felhasználót, ezért érdemes erős jelszót választani. Természetesen egy biztonságosabb tipp useradmin, ha nehezen kitalálható felhasználói névre cseréljük .
Váltás az leanoteadatbázisra:
use leanote
Hozzon létre egy adatbázis-adminisztrátort leanoteadmin, amely jelszót használ leanoteadminpassword:
db.createUser({ user: "leanoteadmin", pwd: "leanoteadminpassword", roles: [{ role: "dbOwner", db: "leanote" }] })
Megjegyzés : Ismét ajánlatos egy kevésbé ismert felhasználónevet és egy nehezen kitalálható jelszót választani.
Miután létrehozta a MongoDB felhasználókat, megerősítheti az eredményeket:
use admin
db.auth("useradmin", "useradminpassword")
Erősítse meg az adatbázis-adminisztrátort:
use leanote
db.auth("leanoteadmin", "leanoteadminpassword")
Mindkettő 1megerősítésként jelenik meg.
Lépjen ki a MongoDB shellből:
exit
A MongoDB hozzáférés-vezérlésének engedélyezéséhez két sort is hozzá kell fűznie a MongoDB konfigurációs fájlhoz /etc/mongod.conf, az alábbiak szerint:
sudo bash -c "echo 'security:' >> /etc/mongod.conf"
sudo bash -c "echo ' authorization: enabled' >> /etc/mongod.conf"
Indítsa újra a MongoDB szolgáltatást, hogy a módosítások életbe lépjenek:
sudo systemctl restart mongod.service
Mostantól csak a két felhasználói fiókot használhatja a MongoDB eléréséhez és kezeléséhez, useradminaz összes MongoDB felhasználó leanoteadminkezeléséhez és leanotecsak az adatbázis kezeléséhez .
Készítsen biztonsági másolatot a Leanote konfigurációs fájlról /home/leanote/leanote/conf/app.conf:
cd /home/leanote/leanote/conf/
cp app.conf app.conf.bak
A viszerkesztővel nyissa meg a Leanote konfigurációs fájlt:
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
Jelentkezzen Let's Encrypt SSL-tanúsítványra a domainhez leanote.example.com:
sudo certbot certonly --standalone --agree-tos --no-eff-email -m admin@example.com -d leanote.example.com
A tanúsítvány és a lánc a következőképpen kerül mentésre:
/etc/letsencrypt/live/leanote.example.com/fullchain.pem
A privát kulcs fájl mentése a következőképpen történik:
/etc/letsencrypt/live/leanote.example.com/privkey.pem
Alapértelmezés szerint a Let's Encrypt SSL tanúsítvány három hónapon belül lejár. Az alábbiak szerint beállíthat egy cron feladatot a Let's Encrypt tanúsítványok automatikus megújításához:
sudo crontab -e
Nyomja meg Ia gombot az insertüzemmódba lépéshez, majd írja be a következő sort:
0 0,12 * * * python -c 'import random; import time; time.sleep(random.random() * 3600)' && certbot renew
Mentés és kilépés:
:wq!
Ez a cron feladat minden nap délben megpróbálja megújítani a Let's Encrypt tanúsítványt.
Telepítse az Nginx-et fordított proxyként
Az Nginx telepítése az EPEL YUM repo használatával:
sudo yum install -y nginx
Hozzon létre egy konfigurációs fájlt a Leanote számára:
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
Indítsa újra az Nginxet a módosítások életbe léptetéséhez:
sudo systemctl daemon-reload
sudo systemctl restart nginx.service
sudo systemctl enable nginx.service
Módosítsa a site.urlbeállítást a Leanote konfigurációs fájljában:
cd /home/leanote/leanote/conf/
vi app.conf
Keresse meg a következő sort:
site.url=http://leanote.example.com:9000
Cserélje ki:
site.url=https://leanote.example.com
Mentés és kilépés:
:wq!
Futtassa újra a Leanote szkriptet:
cd /home/leanote/leanote/bin
bash run.sh
Most mutasson kedvenc webböngészőjének a címre http://leanote.example.com/, és látni fogja, hogy a HTTPSprotokoll automatikusan aktiválódik. Csak jelentkezzen be adminfelhasználóként a korábban beállított új jelszóval, vagy regisztráljon új felhasználói fiókokat a csoportos együttműködéshez.
Ismét nyomja meg a CTRL+ gombot Ca Leanote szkript leállításához. Ezt a forgatókönyvet később démonizáljuk.
9. lépés: Telepítse a wkhtmltopdfprogramot
A Leanote úgy dönt, hogy a wkhtmltopdfprogramot használja a HTML-oldalak PDF-fájlként történő exportálására. Telepítés 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
Ne felejtsük el, hogy nyújtsa be a wkhtmltopdfbináris utat /usr/local/bin/wkhtmltopdfa Export PDFszakaszt a Leanote web admin műszerfal amikor Leanote van, és újra futni.
Megjegyzés: Ha olvashatatlan karaktereket talál az exportált PDF-fájlokban, megpróbálhatja kijavítani a problémát a szükséges betűtípus-fájlok hozzáadásával a /usr/share/fonts/könyvtárhoz.
10. lépés: Használja a Supervisort a Leanote szkript folyamatos működéséhez
A Leanote webhely online tartása érdekében a Supervisor segédprogram segítségével automatikusan elindíthatja a Leanote szkriptet, ha az összeomlik.
A Supervisor telepítése a YUM használatával:
sudo yum install -y supervisor
Hozzon létre egy egyszerű Supervisor .inifájlt a Leanote számára:
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
Indítsa el a Supervisor szolgáltatást, valamint a Leanote szolgáltatást:
sudo supervisord -c /etc/supervisord.conf
Erősítse meg a Leanote szolgáltatás állapotát:
sudo supervisorctl status leanote
A kimenet a következőhöz fog hasonlítani:
leanote RUNNING pid 3707, uptime 0:02:36