Предуслови
Корак 1: Креирајте датотеку за замену
Корак 2: Набавите бинарне датотеке Леаноте 2.6.1
Корак 3: Инсталирајте МонгоДБ Цоммунити Едитион 4.0
Корак 4: Увезите почетне Леаноте податке у МонгоДБ
Корак 5: Омогућите МонгоДБ аутентификацију
Корак 6: Конфигуришите Леаноте
Корак 7: Покрените Леаноте
Корак 8: Омогућите ХТТПС приступ
Корак 9: Инсталирајте програм вкхтмлтопдф
Корак 10: Користите Супервизор да одржите Леаноте скрипту у функцији
Леаноте је бесплатна, лагана и отворена алтернатива Евернотеу, који је написан на Голангу. Имајући на уму корисничко искуство, Леаноте корисницима пружа обиље практичних функција, укључујући подршку за више платформи, писање у МаркДовн синтакси, јавно или приватно блоговање, прикупљање и дељење знања и тимску сарадњу.
У овом чланку ћу вас водити кроз подешавање Леаноте сервера на инстанци сервера ЦентОС 7. Из безбедносних разлога, омогућавање HTTPS supportкоришћења Лет'с Енцрипт ССЛ сертификата и Нгинк-а ће такође бити покривено.
Предуслови
- Ново распоређена инстанца сервера Вултр ЦентОС 7. Рецимо да је његова ИПв4 адреса
203.0.113.1.
- : Судо корисника по имену
leanote.
- Сви софтверски пакети на машини су ажурирани на најновији стабилни статус помоћу ЕПЕЛ ИУМ репо. Погледајте детаље овде .
- Домен
leanote.example.comкоји се упућује на инстанцу сервера поменуту горе.
Корак 1: Креирајте датотеку за замену
Када покрећете нову инстанцу сервера Вултр ЦентОС 7, увек се препоручује да подесите датотеку за замену како бисте осигурали да систем неометано ради. На пример, креирање замене датотеке величине 2048 МБ одговара машини са 2 ГБ меморије.
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
Напомена: Ако користите другу величину сервера, можда ћете морати да измените величину датотеке за замену.
Корак 2: Набавите бинарне датотеке Леаноте 2.6.1
Преузмите и издвојите најновије стабилно издање Леаноте-а за 64-битни Линук систем:
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
Као што захтева Леаноте, МонгоДБ НоСКЛ ДБМС мора бити постављен да бисте могли успешно да подесите Леаноте сервер.
Подесите МонгоДБ 4.0 ИУМ репо
Креирајте МонгоДБ 4.0 ИУМ репо на следећи начин:
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
Инсталирајте МонгоДБ 4.0 пакете користећи ИУМ
Инсталирајте све МонгоДБ компоненте и алате користећи МонгоДБ 4.0 ИУМ репо креиран раније:
sudo yum install -y mongodb-org
Конфигуришите СЕЛинук за МонгоДБ 4.0
Подразумевано, МонгоДБ би користио 27017порт када ради, што није дозвољено ако је СЕЛинук у enforcingрежиму на ЦентОС 7 машини. Користите следећу команду да потврдите тренутни режим СЕЛинук:
sudo getenforce
На инстанци сервера Вултр ЦентОС 7, СЕЛинук је подразумевано онемогућен. Дакле, излаз горње команде би био:
Disabled
У овом случају, можете слободно прескочити следећа упутства о конфигурисању СЕЛинук-а и наставити даље.
Међутим, ако користите оригиналну инстанцу сервера ЦентОС 7, излаз горње команде би био Enforcing. Морате да извршите било коју од три опције у наставку пре него што можете да покренете и омогућите МонгоДБ услугу.
Опција 1: Дозволите МонгоДБ-у да користи 27017порт
sudo semanage port -a -t mongod_port_t -p tcp 27017
Опција 2: Онемогућите СЕЛинук
sudo sed -i 's/SELINUX=enforcing/SELINUX=disabled/' /etc/selinux/config
sudo shutdown -r now
Опција 3: Промените СЕЛинук у permissiveрежим
sudo sed -i 's/SELINUX=enforcing/SELINUX=permissive/' /etc/selinux/config
sudo shutdown -r now
Покрените МонгоДБ услугу и учините да она почне након поновног покретања система:
sudo systemctl start mongod.service
sudo systemctl enable mongod.service
Корак 4: Увезите почетне Леаноте податке у МонгоДБ
Користите наредбе у наставку да увезете почетне Леаноте податке у МонгоДБ:
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: Омогућите МонгоДБ аутентификацију
Из безбедносних разлога, потребно је да омогућите контролу приступа МонгоДБ-у одмах након што се МонгоДБ сервис покрене и покрене. За ову сврху, потребно је да креирате најмање два МонгоДБ корисничка налога: налог администратора корисника и налог администратора базе података. Такође ћете морати да измените МонгоДБ конфигурацију.
Унесите љуску МонгоДБ:
mongo --host 127.0.0.1:27017
Пребаците се на adminбазу података:
use admin
Креирајте администратора корисника useradminкоји користи лозинку useradminpassword:
db.createUser({ user: "useradmin", pwd: "useradminpassword", roles: [{ role: "userAdminAnyDatabase", db: "admin" }] })
Напомена: Администратор корисника useradminтреба да управља свим корисницима МонгоДБ-а, тако да је паметно изабрати јаку лозинку. Наравно, сигурнији савет је да замените useradminкорисничким именом које је тешко погодити.
Пребаците се на leanoteбазу података:
use leanote
Креирајте администратора базе података leanoteadminкоји користи лозинку leanoteadminpassword:
db.createUser({ user: "leanoteadmin", pwd: "leanoteadminpassword", roles: [{ role: "dbOwner", db: "leanote" }] })
Напомена : Опет, препоручује се да одаберете мање познато корисничко име и лозинку коју је тешко погодити.
Након што су корисници МонгоДБ креирани, можете потврдити резултате:
use admin
db.auth("useradmin", "useradminpassword")
Потврдите администратора базе података:
use leanote
db.auth("leanoteadmin", "leanoteadminpassword")
Обоје ће послати 1као потврду.
Изађите из љуске МонгоДБ:
exit
Да бисте омогућили контролу приступа МонгоДБ-у, такође морате да додате две линије у МонгоДБ конфигурациони фајл /etc/mongod.conf, на следећи начин:
sudo bash -c "echo 'security:' >> /etc/mongod.conf"
sudo bash -c "echo ' authorization: enabled' >> /etc/mongod.conf"
Поново покрените МонгоДБ услугу да би измене ступиле на снагу:
sudo systemctl restart mongod.service
Од сада, можете користити само два корисничка налога за приступ и управљање МонгоДБ-ом, useradminза управљање свим МонгоДБ корисницима и само leanoteadminза управљање leanoteбазом података.
Направите резервну копију конфигурационе датотеке Леаноте /home/leanote/leanote/conf/app.conf:
cd /home/leanote/leanote/conf/
cp app.conf app.conf.bak
Користите viуређивач да отворите конфигурациону датотеку Леаноте:
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
Пријавите се за Лет'с Енцрипт ССЛ сертификат за домен leanote.example.com:
sudo certbot certonly --standalone --agree-tos --no-eff-email -m admin@example.com -d leanote.example.com
Сертификат и ланац ће бити сачувани на следећи начин:
/etc/letsencrypt/live/leanote.example.com/fullchain.pem
Датотека приватног кључа биће сачувана на следећи начин:
/etc/letsencrypt/live/leanote.example.com/privkey.pem
Подразумевано, Лет'с Енцрипт ССЛ сертификат истиче за три месеца. Можете да подесите црон посао, као што је приказано у наставку, да аутоматски обновите своје Лет'с Енцрипт сертификате:
sudo crontab -e
Притисните Iда бисте ушли у insertрежим, а затим унесите следећи ред:
0 0,12 * * * python -c 'import random; import time; time.sleep(random.random() * 3600)' && certbot renew
Сачувај и затвори:
:wq!
Овај црон посао ће покушати да обнови сертификат Лет'с Енцрипт сваког дана у подне.
Инсталирајте Нгинк као обрнути прокси
Инсталирајте Нгинк користећи ЕПЕЛ ИУМ репо:
sudo yum install -y nginx
Направите конфигурациони фајл за Леаноте:
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
Поново покрените Нгинк да бисте своје измене применили:
sudo systemctl daemon-reload
sudo systemctl restart nginx.service
sudo systemctl enable nginx.service
Измените site.urlпоставку у конфигурационој датотеци Леаноте:
cd /home/leanote/leanote/conf/
vi app.conf
Пронађите следећи ред:
site.url=http://leanote.example.com:9000
Замените га:
site.url=https://leanote.example.com
Сачувај и затвори:
:wq!
Поново покрените Леаноте скрипту:
cd /home/leanote/leanote/bin
bash run.sh
Сада, усмерите свој омиљени веб претраживач на http://leanote.example.com/, и видећете да се HTTPSпротокол аутоматски активира. Само се пријавите као adminкорисник са новом лозинком коју сте раније поставили или региструјте нове корисничке налоге за тимску сарадњу.
Поново притисните CTRL+ Cда зауставите Леаноте скрипту. Касније ћемо демонизовати ову скрипту.
Корак 9: Инсталирајте wkhtmltopdfпрограм
Леаноте бира да користи wkhtmltopdfпрограм за извоз ХТМЛ страница као ПДФ датотека. Инсталирај 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
Не заборавите да пошаљете wkhtmltopdfбинарну путању /usr/local/bin/wkhtmltopdfу Export PDFодељку на Леаноте веб административној контролној табли када се Леаноте поново покрене.
Напомена: Ако пронађете нечитљиве знакове у извезеним ПДФ датотекама, можете покушати да решите проблем додавањем потребних датотека фонтова у /usr/share/fonts/директоријум.
Корак 10: Користите Супервизор да одржите Леаноте скрипту у функцији
Да бисте задржали своју Леаноте локацију на мрежи, можете користити услужни програм Супервисор да бисте аутоматски покренули Леаноте скрипту ако се сруши.
Инсталирајте Супервизор користећи ИУМ:
sudo yum install -y supervisor
Направите једноставну .iniдатотеку супервизора за Леаноте:
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
Покрените услугу Супервизор, као и Леаноте услугу:
sudo supervisord -c /etc/supervisord.conf
Потврдите статус услуге Леаноте:
sudo supervisorctl status leanote
Излаз ће личити на следеће:
leanote RUNNING pid 3707, uptime 0:02:36