Установка Flectra с Nginx на CentOS 8
TL;DR
Flectra — это открытая CRM/ERP-платформа, которую можно установить на CentOS 8 и проксировать через Nginx. В руководстве показаны шаги: подготовка сервера, установка зависимостей Python и wkhtmltopdf, PostgreSQL, настройка пользователя и службы systemd, конфигурация Nginx и проверка веб-интерфейса.
К чему это руководство
Flectra объединяет CRM и ERP в одном модуле и позволяет настраивать систему под процессы компании. Это пошаговая инструкция для системного администратора или devops-инженера, желающего развернуть Flectra на CentOS 8 с обратным прокси Nginx.
Основные варианты цели статьи
- установка Flectra на CentOS 8
- настройка Nginx как обратного прокси для Flectra
- интеграция Flectra с PostgreSQL
- развёртывание Flectra в production-среде
Необходимые условия
- Сервер с CentOS 8 и минимум 4 ГБ оперативной памяти.
- Настроен root-пароль и доступ к консоли.
- Домен или DNS-запись, указывающая на сервер (по желанию для публичного доступа).
Быстрый обзор шагов
- Обновить систему и отключить SELinux (при необходимости).
- Установить зависимости Python, nodejs, wkhtmltopdf.
- Установить и инициализировать PostgreSQL.
- Создать системного пользователя flectra и развернуть код в виртуальном окружении.
- Настроить конфигурацию, systemd-сервис и Nginx.
- Открыть в браузере URL и создать базу данных.
Обновление системы
Сначала обновите пакеты:
dnf update -yРекомендуется при необходимости отключить SELinux, отредактировав /etc/selinux/config:
nano /etc/selinux/configИ изменить строку:
SELINUX=disabledСохраните, закройте файл и перезагрузите сервер, чтобы изменения вступили в силу.
Установка зависимостей Python и вспомогательных пакетов
Установите Python 3.6 и требуемые пакеты:
dnf install python36 python36-devel git gcc wget nodejs libxslt-devel bzip2-devel openldap-devel libjpeg-devel freetype-devel -yУстановите глобально npm-модуль less:
npm install -g lessСкачайте и установите wkhtmltopdf (рекомендуется брать RPM для CentOS 8 с официальной страницы проекта). После загрузки локально установите пакет:
dnf localinstall wkhtmltox-0.12.6-1.centos8.x86_64.rpmЕсли в вашей среде отсутствуют репозитории для некоторых пакетов, подключите их перед установкой.
Установка PostgreSQL
Flectra использует PostgreSQL как хранилище данных.
dnf install postgresql-server -yИнициализируйте БД:
postgresql-setup --initdb --unit postgresqlОжидаемый вывод (фрагмент):
* Initializing database in '/var/lib/pgsql/data'
* Initialized, logs are in /var/lib/pgsql/initdb_postgresql.logЗапустите и включите сервис PostgreSQL:
systemctl start postgresql
systemctl enable postgresqlПроверьте статус (пример):
systemctl status postgresql-12Типичный лог сервиса (пример):
* postgresql-12.service - PostgreSQL 12 database server
Loaded: loaded (/usr/lib/systemd/system/postgresql-12.service; disabled; vendor preset: disabled)
Active: active (running) since Thu 2020-08-13 04:39:31 EDT; 7s agoСоздайте PostgreSQL-пользователя для Flectra (имя должно совпадать с системным юзером, которого вы создадите позже):
su - postgres -c "createuser -s flectra"Установка Flectra
Создайте отдельного системного пользователя для Flectra:
useradd -m -U -r -d /opt/flectra -s /bin/bash flectraПримечание: имя пользователя должно совпадать с PostgreSQL-пользователем.
Переключитесь на пользователя flectra и клонируйте репозиторий:
su - flectra
git clone --depth=1 --branch=1.0 https://gitlab.com/flectra-hq/flectra.git flectraСоздайте виртуальное окружение и активируйте его:
python3 -m venv my-flectra
source my-flectra/bin/activateУстановите Python-зависимости проекта:
pip3 install -r flectra/requirements.txtЗавершите работу с окружением:
deactivate
exitКонфигурация Flectra
Создайте директории для кастомных модулей, логов и конфигурации:
mkdir /opt/flectra/flectra-custom-addons
mkdir /var/log/flectra
mkdir /etc/flectra
touch /var/log/flectra/flectra.logУстановите владельца директорий на flectra:
chown -R flectra:flectra /opt/flectra/flectra-custom-addons
chown -R flectra:flectra /var/log/flectra/
chown -R flectra:flectra /etc/flectraСоздайте конфигурационный файл:
nano /etc/flectra/flectra.confДобавьте:
[options]
admin_passwd = your-flectra-password
db_host = False
db_port = False
db_user = flectra
db_password = False
logfile = /var/log/flectra/flectra.log
logrotate = True
proxy_mode = True
addons_path = /opt/flectra/flectra/addons, /opt/flectra/flectra-custom-addonsСохраните файл и закройте редактор.
systemd-сервис для Flectra
Создайте unit-файл systemd:
nano /etc/systemd/system/flectra.serviceВставьте содержимое:
[Unit]
Description=flectra
#Requires=postgresql-10.6.service
#After=network.target postgresql-10.6.service
[Service]
Type=simple
SyslogIdentifier=flectra
PermissionsStartOnly=true
User=flectra
Group=flectra
ExecStart=/opt/flectra/my-flectra/bin/python3 /opt/flectra/flectra/flectra-bin -c /etc/flectra/flectra.conf
StandardOutput=journal+console
[Install]
WantedBy=multi-user.targetПерезагрузите демона systemd и запустите сервис:
systemctl daemon-reload
systemctl start flectra
systemctl enable flectraПроверьте статус:
systemctl status flectraОжидаемый пример вывода:
? flectra.service - flectra
Loaded: loaded (/etc/systemd/system/flectra.service; disabled; vendor preset: disabled)
Active: active (running) since Thu 2020-08-13 05:34:15 EDT; 1min 3s ago
Main PID: 10917 (python3)Flectra по умолчанию слушает на порту 7073. Проверьте это командой:
netstat -plntu | grep 7073Настройка Nginx как обратного прокси
Установите Nginx:
dnf install nginx -yЗапустите и включите Nginx:
systemctl start nginx
systemctl enable nginxСоздайте конфигурацию виртуального хоста:
nano /etc/nginx/conf.d/flectra.confДобавьте:
#flectra server
upstream flectra {
server 127.0.0.1:7073;
}
server {
listen 80;
server_name flectra.your-domain.com;
proxy_read_timeout 720s;
proxy_connect_timeout 720s;
proxy_send_timeout 720s;
# Add Headers for flectra proxy mode
proxy_set_header X-Forwarded-Host $host;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
proxy_set_header X-Real-IP $remote_addr;
# log
access_log /var/log/nginx/flectra.access.log;
error_log /var/log/nginx/flectra.error.log;
# Redirect requests to flectra backend server
location / {
proxy_redirect off;
proxy_pass http://flectra;
}
# common gzip
gzip_types text/css text/less text/plain text/xml application/xml application/json application/javascript;
gzip on;
}Перезапустите Nginx:
systemctl restart nginxСовет: для production используйте HTTPS (Let[0m[0m[0m Encrypt / Certbot) и укажите X-Forwarded-Proto.
Доступ к веб-интерфейсу Flectra
Откройте в браузере http://flectra.your-domain.com. На странице создания базы укажите мастер-пароль (admin_passwd из конфигурации), данные новой базы, email и пароль администратора, затем нажмите Create database.

После создания вы попадёте на панель управления Flectra:

Критерии приёмки
- Сервис flectra активен и в статусе active (running).
- PostgreSQL запущен и доступен локально.
- Nginx возращает 200 на запросы к корню сайта и проксирует на порт 7073.
- Можно создать базу данных через веб-интерфейс и авторизоваться как администратор.
Чек-листы по ролям
Администратор сервера:
- Обновить систему и установить зависимости.
- Настроить PostgreSQL и создать пользователя.
- Создать системного пользователя flectra и подготовить файлы.
DevOps / развёртывание:
- Настроить виртуальное окружение и установить Python-зависимости.
- Создать systemd unit и настроить автоматический рестарт.
- Настроить Nginx и HTTPS для публичного доступа.
Разработчик модулей:
- Размещать кастомные аддоны в /opt/flectra/flectra-custom-addons.
- Проверять права доступа пользователя flectra.
Быстрый план отката и устранения неисправностей
- Если Flectra не стартует — посмотреть журналы systemd: systemctl status flectra и journalctl -u flectra -b.
- Если ошибки зависимостей Python — активировать виртуальное окружение и попытаться pip install проблемного пакета вручную.
- Если Nginx не проксирует — проверить синтаксис и логи: nginx -t; tail -n 200 /var/log/nginx/flectra.error.log.
- При проблемах с БД — проверить доступность порта 5432 и логи PostgreSQL в /var/lib/pgsql/data/log.
Безопасность и рекомендации
- Используйте HTTPS (Certbot/Let[0m[0m[0m’s Encrypt) и перенаправление HTTP → HTTPS.
- Не храните мастер-пароль в открытом доступе; ограничьте доступ к /etc/flectra правами root.
- Закройте прямой доступ к порту 7073 в брандмауэре, оставив только локальный доступ и прокси через Nginx.
Совместимость и миграция
- Инструкция ориентирована на CentOS 8 и Python 3.6. При использовании других дистрибутивов пути и пакеты могут отличаться.
- При миграции с другой версии Flectra/Odoo проверьте совместимость модулей и требования к версии PostgreSQL.
Краткая методология развёртывания
- Подготовка ОС → 2. Установка системных и Python-зависимостей → 3. Разворачивание кода → 4. Конфигурация сервисов → 5. Настройка прокси и безопасности → 6. Проверка и приёмка.
Факты и ключевые параметры
- Минимальная оперативная память: 4 ГБ.
- Порт приложения по умолчанию: 7073.
- HTTP-прокси: 80 (рекомендуется настроить HTTPS).
Однострочные определения
- Flectra — модульная CRM/ERP-система с открытым исходным кодом.
- wkhtmltopdf — утилита для рендеринга HTML в PDF, используемая для печатных отчётов.
Заключение
Поздравляем — вы установили и настроили Flectra с Nginx на CentOS 8. Теперь можно развертывать модули, подключать дополнительные аддоны и адаптировать систему под процессы вашей компании. Для углублённого изучения используйте официальную документацию Flectra и тестируйте обновления в отдельной среде перед применением в продакшене.
Ключевые шаги: обновление ОС, установка зависимостей, настройка PostgreSQL, развёртывание кода, systemd-сервис, Nginx и проверка UI.
Похожие материалы
Несколько аккаунтов Skype: Multi Skype Launcher
Журнал для работы: повысить продуктивность
Персональные звуки уведомлений на Android
Скачивание шоу Hulu для офлайн‑просмотра
Microsoft Start: персонализированная новостная лента