Установка FlintCMS на Ubuntu 18.04

О чем статья
Пошаговое руководство для разработчиков и администраторов, которые хотят быстро развернуть FlintCMS (открытый Node.js CMS, ориентированный на контент) на сервере Ubuntu 18.04. Подходит для простых сайтов и блогов, когда фронтенд собирает веб-дизайнер без глубоких знаний в коде.
Важно: эта инструкция ориентирована на Ubuntu 18.04 и Node.js 12.x, как в оригинальной документации. На более новых версиях ОС или Node.js возможны небольшие отличия в командах и зависимостях.
Требования
- Сервер с Ubuntu 18.04.
- Настроенный статический IP-адрес.
- Доступ root или пользователь с sudo.
Начало — обновление системы
Обновите списки пакетов и установите обновления:
apt-get update -y
apt-get upgrade -yПосле обновлений желательно перезагрузить сервер, чтобы применить все изменения.
Установка необходимых пакетов
Добавьте репозитории Node.js и Yarn, затем установите зависимости:
curl -sL https://deb.nodesource.com/setup_12.x | bash -
curl -sS https://dl.yarnpkg.com/debian/pubkey.gpg | apt-key add -
echo "deb https://dl.yarnpkg.com/debian/ stable main" | tee /etc/apt/sources.list.d/yarn.listОбновите репозитории и установите пакеты:
apt-get update -y
apt-get install nodejs yarn git zlib1g-dev build-essential libpq-dev libssl-dev libreadline-dev libyaml-dev libsqlite3-dev sqlite3 libxml2-dev libxslt1-dev libcurl4-openssl-dev software-properties-common libffi-dev -yУстановка Ruby и MongoDB
FlintCMS использует Ruby-инструменты для некоторой локальной работы в окружении (rbenv). Настройте локальный профиль для rbenv и установите Ruby:
git clone https://github.com/rbenv/rbenv.git ~/.rbenv
echo 'export PATH="$HOME/.rbenv/bin:$PATH"' >> ~/.bashrc
echo 'eval "$(rbenv init -)"' >> ~/.bashrc
git clone https://github.com/rbenv/ruby-build.git ~/.rbenv/plugins/ruby-build
echo 'export PATH="$HOME/.rbenv/plugins/ruby-build/bin:$PATH"' >> ~/.bashrcПерезапустите сессию shell или выполните source ~/.bashrc, затем установите Ruby (пример из исходной инструкции):
rbenv install 2.6.3
rbenv global 2.6.3Проверьте версию Ruby:
ruby -vУстановите MongoDB и пакет nosql (npm):
apt-get install mongodb
npm install nosqlПосле установки MongoDB убедитесь, что служба запущена и слушает локальные подключения (обычно порт 27017).
Установка FlintCMS
Создайте рабочую директорию и установите пакет:
mkdir /root/flintcms
cd flintcms
npm install flintcmsСоздайте файл входной точки index.js:
nano index.jsВставьте:
const Flint = require('flintcms');
const flintServer = new Flint({
siteName: 'My Amazing Flint Site!'
});
flintServer.startServer();
Сохраните файл. Создайте файл окружения .env:
nano /root/flintcms/.envПример содержимого .env (отредактируйте секреты и креденшелы под вашу среду):
# Secret settings
SESSION_SECRET=Fy#xXd)L6UOjrJiOFCHpf3qqesa!h#+z
# Mongo Credentials
DB_HOST=127.0.0.1/test
DB_USER=admin
DB_PASS=admin
DEBUG=flint*
Запустите сервер:
node index.jsОжидаемый вывод при старте сервера (пример):
???????????????????????????????????????????????????????????????????????????????????????????????
? ?
? Welcome to your FlintCMS server! ?
? ?
? You can access it here: http://localhost:4000 ?
? Setting up your server for the first time? Go here: http://localhost:4000/admin/install ?
? ?
???????????????????????????????????????????????????????????????????????????????????????????????
Доступ к веб-интерфейсу FlintCMS
Откройте в браузере: http://yourserverip:4000/admin/install

Заполните электронную почту администратора, имя пользователя и пароль. Нажмите Create Account.

Поздравляем — FlintCMS установлен и запущен.
Советы по эксплуатации и безопасность
- Запускайте FlintCMS под системным юнитом (systemd) или процесс-менеджером (pm2), чтобы обеспечить автоматический рестарт.
- Храните секреты (SESSION_SECRET, DB_PASS) вне репозитория и ограничьте права на файл .env (chmod 600).
- Разграничьте доступ к MongoDB: используйте аутентификацию и firewall (ufw) для ограничения подключений к базе.
- Настройте обратный прокси (Nginx) для HTTPS (Let’s Encrypt) и проброса на порт 4000.
Тесты, проверка и критерии приёмки
Критерии приёмки:
- Сервер запускается без ошибок:
node index.jsвозвращает сообщение о старте. - Админ-интерфейс доступен по http://yourserverip:4000/admin/install
- Можно создать администратора и войти в панель.
- Содержимое сохраняется в MongoDB и доступно после перезапуска сервера.
Проверочные команды:
curl -I http://localhost:4000
systemctl status mongodbРезервные варианты и альтернативные подходы
- Вместо глобальной установки Node.js можно использовать nvm для управления версиями Node.js per-user.
- Вместо MongoDB на локальной машине можно использовать управляемый MongoDB Atlas и указать соответствующий DB_HOST.
- Для продакшена предпочтителен запуск через process manager (pm2) и организация обратного прокси через Nginx.
Отладка — быстрый список ошибок и решения
- Проблема: сервер не запускается, ошибка по модулю
- Решение: выполните
npm installв директории проекта, проверьте права доступа и версию Node.js.
- Решение: выполните
- Проблема: подключение к MongoDB не удаётся
- Решение: проверьте, запущен ли mongodb (
systemctl status mongodb) и правильность DB_HOST/креденшелов.
- Решение: проверьте, запущен ли mongodb (
- Проблема: сайт доступен по localhost, но не по IP
- Решение: проверьте, слушает ли приложение на 0.0.0.0 или используйте обратный прокси.
- Проблема: 502 Bad Gateway при использовании Nginx
- Решение: проверьте socket/порт и правильность upstream в конфигурации Nginx, перезапустите сервисы.
Роли — чек-листы для команды
Администратор сервера:
- Обновить систему и установить зависимости.
- Настроить firewall, создать systemd unit или pm2-конфигурацию.
Разработчик/верстальщик:
- Настроить фронтенд-ассеты и проверить интеграцию с API FlintCMS.
- Проверить поведение в режиме DEBUG (DEBUG=flint*).
Оператор/DevOps:
- Настроить мониторинг, бэкапы MongoDB и CI/CD для деплоя.
Совместимость и миграция
- Инструкция ориентирована на Ubuntu 18.04 и Node.js 12.x. На Ubuntu 20.04+ или Node.js 14/16 возможны отличия в пакетах и версиях зависимостей. Перед миграцией протестируйте установку в staging-среде.
Мини-методология развертывания (быстрая последовательность)
- Подготовить сервер: обновление, firewall.
- Установить Node.js и Yarn.
- Установить Ruby (если требуется) и MongoDB.
- Установить flintcms в изолированную директорию.
- Настроить .env, запустить и проверить.
- Перевести в продакшен через systemd/pm2 + Nginx + SSL.
Быстрая справка (1-строчная глоссарий)
- FlintCMS: минималистичный CMS на Node.js для управления контентом.
- Yarn: менеджер пакетов для Node.js.
- rbenv: менеджер версий Ruby.
- MongoDB: документная NoSQL база данных.
Частые вопросы
На каком порте работает FlintCMS по умолчанию?
По умолчанию FlintCMS запускается на порту 4000. В продакшене обычно ставят обратный прокси на 80/443.
Где хранятся настройки подключения к БД?
В файле .env в корне проекта (пример в разделе установки). Рекомендуется защищать этот файл правами доступа.
Как запускать FlintCMS как службу?
Настройте systemd unit или используйте pm2 для управления процессом и автозапуска.
Итог
FlintCMS можно быстро развернуть на Ubuntu 18.04 с базовым набором пакетов: Node.js, Yarn, Ruby и MongoDB. После установки настройте .env, запустите server и обеспечьте доступ через обратный прокси и HTTPS для продакшена.
Если нужны примеры systemd unit, конфигурация Nginx или инструкции по бэкапу MongoDB — напишите, и я подготовлю дополнительные шаблоны.
Похожие материалы
RDP: полный гид по настройке и безопасности
Android как клавиатура и трекпад для Windows
Советы и приёмы для работы с PDF
Calibration в Lightroom Classic: как и когда использовать
Отключить Siri Suggestions на iPhone