Как настроить сервер Leanote в CentOS 7

Leanote - это бесплатная, легкая и открытая альтернатива Evernote, написанная на Голанге. Имея в виду пользовательский опыт, Leanote предоставляет пользователям множество практических функций, в том числе кроссплатформенную поддержку, запись в синтаксисе MarkDown, общедоступные или частные блоги, сбор и обмен знаниями и совместную работу в команде.

В этой статье я расскажу вам, как настроить сервер Leanote на экземпляре сервера CentOS 7. В целях безопасности также будет разрешено HTTPS supportиспользование SSL-сертификата Let's Encrypt и Nginx.

Предпосылки

  • Недавно развернутый экземпляр сервера Vultr CentOS 7. Скажите, что его адрес IPv4 есть 203.0.113.1.
  • Пользователь Sudo по имени leanote.
  • Все программные пакеты на машине были обновлены до последнего стабильного состояния с помощью репозитория EPEL YUM. Подробности здесь .
  • Домен leanote.example.com, указываемый на экземпляр сервера, упомянутый выше.

Шаг 1: Создайте файл подкачки

При запуске нового экземпляра сервера Vultr CentOS 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: Получить бинарные файлы Leanote 2.6.1

Загрузите и извлеките последнюю стабильную версию Leanote для 64-битной системы 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

Шаг 3: Установите MongoDB Community Edition 4.0

В соответствии с требованиями Leanote, СУБД MongoDB NoSQL должна быть установлена, прежде чем вы сможете успешно настроить сервер Leanote.

Настройте репозиторий MongoDB 4.0 YUM

Создайте репозиторий MongoDB 4.0 YUM следующим образом:

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

Установите пакеты MongoDB 4.0, используя YUM

Установите все компоненты и инструменты MongoDB, используя репозиторий MongoDB 4.0 YUM, созданный ранее:

sudo yum install -y mongodb-org

Настройте SELinux для MongoDB 4.0

По умолчанию MongoDB будет использовать 27017порт при работе, что недопустимо, если SELinux находится в enforcingрежиме на компьютере CentOS 7. Используйте следующую команду для подтверждения текущего режима SELinux:

sudo getenforce

На экземпляре сервера Vultr CentOS 7 SELinux по умолчанию отключен. Таким образом, результат вышеприведенной команды будет:

Disabled

В этом случае вы можете свободно пропустить следующие инструкции по настройке SELinux и двигаться дальше.

Однако, если вы работаете с оригинальным экземпляром сервера CentOS 7, вы получите следующую команду Enforcing. Вам нужно выполнить любой из трех вариантов ниже, прежде чем вы сможете запустить и включить сервис MongoDB.

  • Вариант 1: разрешить MongoDB использовать 27017порт

    sudo semanage port -a -t mongod_port_t -p tcp 27017
    
  • Вариант 2: отключить SELinux

    sudo sed -i 's/SELINUX=enforcing/SELINUX=disabled/' /etc/selinux/config
    sudo shutdown -r now
    
  • Вариант 3: permissiveпереключить SELinux в режим

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

Запустите службу MongoDB и запустите ее после перезагрузки системы:

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

Шаг 4: Импортируйте исходные данные Leanote в MongoDB

Используйте команды ниже для импорта исходных данных Leanote в 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/

Шаг 5: Включить аутентификацию MongoDB

В целях безопасности вам необходимо включить контроль доступа к MongoDB сразу после запуска службы MongoDB. Для этого вам необходимо создать как минимум две учетные записи пользователя MongoDB: учетную запись администратора пользователя и учетную запись администратора базы данных. Вам также нужно будет изменить конфигурацию MongoDB.

Войдите в оболочку MongoDB:

mongo --host 127.0.0.1:27017

Переключиться на adminбазу данных:

use admin

Создайте администратора по имени пользователя, useradminкоторый использует пароль useradminpassword:

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

Примечание. Администратор пользователей useradminдолжен управлять всеми пользователями MongoDB, поэтому разумно выбрать надежный пароль. Конечно, более безопасный совет - заменить useradminтрудно угадываемое имя пользователя.

Переключиться на leanoteбазу данных:

use leanote

Создайте администратора базы данных с именем leanoteadmin, использующим пароль leanoteadminpassword:

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

Примечание . Опять же, рекомендуется выбирать менее известное имя пользователя и трудно угадываемый пароль.

Создав пользователей MongoDB, вы можете подтвердить результаты:

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

Подтвердите администратор базы данных:

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

Оба будут выводить 1как подтверждение.

Выйдите из оболочки MongoDB:

exit

Чтобы включить контроль доступа к MongoDB, вам также необходимо добавить две строки в файл конфигурации MongoDB /etc/mongod.conf, как показано ниже:

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

Перезапустите сервис MongoDB, чтобы изменения вступили в силу:

sudo systemctl restart mongod.service

Отныне вы можете использовать только две учетные записи пользователей для доступа и управления MongoDB, useradminдля управления всеми пользователями MongoDB и только leanoteadminдля управления leanoteбазой данных.

Шаг 6: Настройте Leanote

Сделайте резервную копию файла конфигурации Leanote /home/leanote/leanote/conf/app.conf:

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

Используйте viредактор, чтобы открыть файл конфигурации Leanote:

vi app.conf

Найдите следующие строки одну за другой:

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

Замените их соответственно, как показано ниже:

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

Примечание. В целях безопасности значение app.secretпараметра ДОЛЖНО быть 64-битной случайной строкой, отличной от исходной. Обязательно замените значение E52tyCDBRk39HmhdGYJLBS3etXpnz7DymmxkgHBYxd7Y9muWVVJ5QZNdDEaHV2sAсвоим собственным 64-битным случайным значением.

Сохранить и выйти:

:wq!

Шаг 7: Запустите Leanote

Измените правила брандмауэра, чтобы разрешить входящий TCP-трафик через порт 9000:

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

Запустите Leanote, используя официальный скрипт:

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

Увидев Listening on.. 0.0.0.0:9000, укажите ваш любимый веб-браузер, http://leanote.example.com:9000чтобы начать использовать сайт Leanote.

Используйте учетную запись администратора Leanote по умолчанию для входа в систему:

  • Имя пользователя: admin
  • Пароль: abc123

В целях безопасности вы должны изменить пароль по умолчанию сразу после входа в систему.

Шаг 8: Включить HTTPSдоступ

На данный момент вы уже можете получить доступ к серверу Leanote, используя протокол HTTP, менее безопасный протокол. Чтобы повысить безопасность системы, вы можете включить HTTPSее, развернув на своем компьютере как SSL-сертификат Let's Encrypt, так и обратный прокси-сервер Nginx.

Правильно настроить имя хоста и полное доменное имя (FQDN)

Прежде чем вы сможете получить SSL-сертификат Let's Encrypt, вам необходимо правильно настроить имя хоста и полное доменное имя на вашем компьютере.

Сначала нажмите CTRL+, Cчтобы остановить скрипт Leanote run.sh.

Затем настройте имя хоста и полное доменное имя следующим образом:

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

Вы также можете подтвердить результаты:

hostname
hostname -f

Изменить правила брандмауэра

Заблокируйте входящий трафик через порт 9000и разрешите входящий трафик через порты для служб HTTPи HTTPSслужб:

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

Подать заявку на SSL-сертификат Let's Encrypt

Установите утилиту Certbot:

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

Подать заявку на SSL-сертификат Let's Encrypt для домена leanote.example.com:

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

Сертификат и цепочка будут сохранены следующим образом:

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

Файл закрытого ключа будет сохранен следующим образом:

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

По умолчанию срок действия SSL-сертификата Let's Encrypt истекает через три месяца. Вы можете настроить задание cron, как показано ниже, для автоматического обновления сертификатов Let's Encrypt:

sudo crontab -e

Нажмите Iдля входа в insertрежим, а затем введите следующую строку:

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

Сохранить и выйти:

:wq!

Это задание cron будет пытаться обновлять сертификат Let's Encrypt каждый день в полдень.

Установите Nginx в качестве обратного прокси

Установите Nginx, используя репозиторий EPEL YUM:

sudo yum install -y nginx

Создайте файл конфигурации для 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

Перезапустите Nginx, чтобы изменения вступили в силу:

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

Измените site.urlнастройку в конфигурационном файле Leanote:

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

Найдите следующую строку:

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

Замени это:

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

Сохранить и выйти:

:wq!

Запустите скрипт Leanote еще раз:

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

Теперь укажите ваш любимый веб-браузер http://leanote.example.com/, и вы увидите, что HTTPSпротокол активируется автоматически. Просто войдите в систему как adminпользователь с новым паролем, который вы установили ранее, или зарегистрируйте новые учетные записи пользователей для совместной работы в команде.

Снова нажмите CTRL+, Cчтобы остановить сценарий Leanote. Мы демонизируем этот скрипт позже.

Шаг 9: Установите wkhtmltopdfпрограмму

Leanote решает использовать wkhtmltopdfпрограмму для экспорта HTML-страниц в виде файлов PDF. Установить 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разделе панели инструментов веб-администратора Leanote, когда Leanote снова заработает.

Примечание. Если вы обнаружите нечитаемые символы в экспортированных файлах PDF, вы можете попытаться устранить проблему, добавив в /usr/share/fonts/каталог необходимые файлы шрифтов .

Шаг 10. Использование Supervisor для поддержания работоспособности скрипта Leanote

Чтобы ваш сайт Leanote оставался в сети, вы можете использовать утилиту Supervisor для автоматического запуска сценария Leanote в случае его сбоя.

Установите Supervisor, используя YUM:

sudo yum install -y supervisor

Создайте простой .iniфайл Supervisor для 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

Запустите службу Supervisor, а также службу Leanote:

sudo supervisord -c /etc/supervisord.conf

Подтвердите статус сервиса Leanote:

sudo supervisorctl status leanote

Вывод будет выглядеть следующим образом:

leanote                          RUNNING   pid 3707, uptime 0:02:36


Leave a Comment

Как установить Anchor CMS на CentOS 7 LAMP VPS

Как установить Anchor CMS на CentOS 7 LAMP VPS

Используете другую систему? Anchor CMS - это сверхпростая и чрезвычайно легкая бесплатная система управления контентом (CMS) с открытым исходным кодом.

Как обновить CentOS 7, Ubuntu 16.04 и Debian 8

Как обновить CentOS 7, Ubuntu 16.04 и Debian 8

При настройке нового сервера Linux рекомендуется обновить ядро ​​системы и другие пакеты до последней стабильной версии. В этой статье

Как установить Backdrop CMS 1.8.0 на CentOS 7 LAMP VPS

Как установить Backdrop CMS 1.8.0 на CentOS 7 LAMP VPS

Используете другую систему? Backdrop CMS 1.8.0 - это простая и гибкая, удобная для мобильных устройств, бесплатная система с открытым исходным кодом (CMS), которая позволяет нам

Настройте Magento на CentOS 6

Настройте Magento на CentOS 6

Если вы хотите разместить свой инвентарь в Интернете или просто магазин технических аксессуаров, Magento - отличное решение для электронной коммерции в Интернете. Это статья

Как установить AirSonic на CentOS 7

Как установить AirSonic на CentOS 7

Используете другую систему? AirSonic - это бесплатный и потоковый сервер с открытым исходным кодом. В этом уроке я проведу вас через процесс развертывания

Как установить OrangeScrum на CentOS 7

Как установить OrangeScrum на CentOS 7

OrangeScrum - это бесплатный инструмент управления проектами с открытым исходным кодом, который широко используется в малом и среднем бизнесе. В этой статье я проведу вас через

Как установить и настроить OrientDB Community Edition для CentOS 7

Как установить и настроить OrientDB Community Edition для CentOS 7

OrientDB - это мультимодельная СУБД NoSQL с открытым исходным кодом нового поколения. Благодаря поддержке нескольких моделей данных OrientDB может обеспечить большую функциональность и гибкость в

Как установить Vtiger CRM с открытым исходным кодом на CentOS 7

Как установить Vtiger CRM с открытым исходным кодом на CentOS 7

Vtiger CRM - это популярное приложение для управления взаимоотношениями с клиентами, которое может помочь предприятиям увеличить продажи, обеспечить обслуживание клиентов и увеличить прибыль. я

Как установить MaraDNS на CentOS 6

Как установить MaraDNS на CentOS 6

MaraDNS - это легкая, но надежная программа с открытым исходным кодом для DNS-сервера. По сравнению с другими приложениями того же типа, такими как ISC BIND, PowerDNS и djbdns

Установка Netdata в CentOS 7

Установка Netdata в CentOS 7

Используете другую систему? Netdata - восходящая звезда в области мониторинга показателей системы в режиме реального времени. По сравнению с другими инструментами того же рода, Netdata:

Как установить Starbound Server в CentOS 7

Как установить Starbound Server в CentOS 7

Используете другую систему? В этом уроке я расскажу, как настроить сервер Starbound в CentOS 7. Предварительные условия Вы должны иметь эту игру на себе

Кластеризация RabbitMQ на CentOS 7

Кластеризация RabbitMQ на CentOS 7

RabbitMQ - это брокер сообщений с открытым исходным кодом, который поддерживает AMQP, STOMP и другие коммуникационные технологии. Широко используется в корпоративных приложениях

Настройка многопользовательского сервера SA-MP San Andreas на CentOS 6

Настройка многопользовательского сервера SA-MP San Andreas на CentOS 6

Добро пожаловать в другой учебник Vultr. Здесь вы узнаете, как установить и запустить сервер SAMP. Это руководство было написано для CentOS 6. Предварительные условия

Установите Elgg на CentOS 7

Установите Elgg на CentOS 7

Используете другую систему? Elgg - это движок социальных сетей с открытым исходным кодом, который позволяет создавать социальные среды, такие как социальные сети кампуса и

Установка Bolt CMS на CentOS 7

Установка Bolt CMS на CentOS 7

Bolt - это CMS с открытым исходным кодом, написанная на PHP. Исходный код Bolts размещен на GitHub. Это руководство покажет вам, как установить Bolt CMS на новую CentOS 7 Vult.

Как установить и использовать Apache PredictionIO для машинного обучения в CentOS 7

Как установить и использовать Apache PredictionIO для машинного обучения в CentOS 7

Традиционные подходы к анализу данных невозможно использовать, когда наборы данных достигают определенного размера. Современная альтернатива анализу огромных массивов данных, которые я

Как установить Elasticsearch на экземпляре Vultr CentOS 7 Server

Как установить Elasticsearch на экземпляре Vultr CentOS 7 Server

Elasticsearch - популярный движок полнотекстового поиска и аналитики с открытым исходным кодом. Благодаря своей универсальности, масштабируемости и простоте использования, Elasticsearch широко используется

Развертывание Kubernetes с помощью Kubeadm на CentOS 7

Развертывание Kubernetes с помощью Kubeadm на CentOS 7

Обзор Эта статья призвана помочь вам в кратчайшие сроки запустить и запустить кластер Kubernetes с помощью kubeadm. Это руководство будет развертывать два сервера, на

Настройте Sails.js для разработки на CentOS 7

Настройте Sails.js для разработки на CentOS 7

Используете другую систему? Введение Sails.js - это инфраструктура MVC для Node.js, аналогичная Ruby on Rails. Это делает для разработки современных приложений вер

Как установить PufferPanel (бесплатная панель управления Minecraft) на CentOS 7

Как установить PufferPanel (бесплатная панель управления Minecraft) на CentOS 7

Введение В этом руководстве мы будем устанавливать PufferPanel на нашем Vultr VPS. PufferPanel - это бесплатная панель управления с открытым исходным кодом для управления вами.

Изучение 26 методов анализа больших данных: часть 1

Изучение 26 методов анализа больших данных: часть 1

Изучение 26 методов анализа больших данных: часть 1

6 невероятных фактов о Nintendo Switch

6 невероятных фактов о Nintendo Switch

Многие из вас знают Switch, который выйдет в марте 2017 года, и его новые функции. Для тех, кто не знает, мы подготовили список функций, которые делают «Switch» обязательным гаджетом.

Технические обещания, которые все еще не выполнены

Технические обещания, которые все еще не выполнены

Вы ждете, когда технологические гиганты выполнят свои обещания? проверить, что осталось недоставленным.

Функциональные возможности уровней эталонной архитектуры больших данных

Функциональные возможности уровней эталонной архитектуры больших данных

Прочтите блог, чтобы узнать о различных уровнях архитектуры больших данных и их функциях самым простым способом.

Как ИИ может вывести автоматизацию процессов на новый уровень?

Как ИИ может вывести автоматизацию процессов на новый уровень?

Прочтите это, чтобы узнать, как искусственный интеллект становится популярным среди небольших компаний и как он увеличивает вероятность их роста и дает преимущество перед конкурентами.

CAPTCHA: как долго она может оставаться жизнеспособным методом различения между человеком и ИИ?

CAPTCHA: как долго она может оставаться жизнеспособным методом различения между человеком и ИИ?

CAPTCHA стало довольно сложно решать пользователям за последние несколько лет. Сможет ли он оставаться эффективным в обнаружении спама и ботов в ближайшем будущем?

Технологическая сингулярность: далекое будущее человеческой цивилизации?

Технологическая сингулярность: далекое будущее человеческой цивилизации?

По мере того, как наука развивается быстрыми темпами, принимая на себя большую часть наших усилий, также возрастает риск подвергнуться необъяснимой сингулярности. Прочтите, что может значить для нас необычность.

Телемедицина и удаленное здравоохранение: будущее уже здесь

Телемедицина и удаленное здравоохранение: будущее уже здесь

Что такое телемедицина, дистанционное здравоохранение и их влияние на будущее поколение? Это хорошее место или нет в ситуации пандемии? Прочтите блог, чтобы узнать мнение!

Вы когда-нибудь задумывались, как хакеры зарабатывают деньги?

Вы когда-нибудь задумывались, как хакеры зарабатывают деньги?

Возможно, вы слышали, что хакеры зарабатывают много денег, но задумывались ли вы когда-нибудь о том, как они зарабатывают такие деньги? Давайте обсудим.

Обновление дополнения к macOS Catalina 10.15.4 вызывает больше проблем, чем решает

Обновление дополнения к macOS Catalina 10.15.4 вызывает больше проблем, чем решает

Недавно Apple выпустила macOS Catalina 10.15.4, дополнительное обновление для исправления проблем, но похоже, что это обновление вызывает больше проблем, приводящих к поломке компьютеров Mac. Прочтите эту статью, чтобы узнать больше