Гид по технологиям

Установка Flectra с Nginx на CentOS 8

• 5 min read • Инструкции • Обновлено 17 Nov 2025
Установка Flectra с Nginx на CentOS 8
Установка 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-запись, указывающая на сервер (по желанию для публичного доступа).

Быстрый обзор шагов

  1. Обновить систему и отключить SELinux (при необходимости).
  2. Установить зависимости Python, nodejs, wkhtmltopdf.
  3. Установить и инициализировать PostgreSQL.
  4. Создать системного пользователя flectra и развернуть код в виртуальном окружении.
  5. Настроить конфигурацию, systemd-сервис и Nginx.
  6. Открыть в браузере 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 CRM и ERP


Критерии приёмки

  • Сервис flectra активен и в статусе active (running).
  • PostgreSQL запущен и доступен локально.
  • Nginx возращает 200 на запросы к корню сайта и проксирует на порт 7073.
  • Можно создать базу данных через веб-интерфейс и авторизоваться как администратор.

Чек-листы по ролям

Администратор сервера:

  • Обновить систему и установить зависимости.
  • Настроить PostgreSQL и создать пользователя.
  • Создать системного пользователя flectra и подготовить файлы.

DevOps / развёртывание:

  • Настроить виртуальное окружение и установить Python-зависимости.
  • Создать systemd unit и настроить автоматический рестарт.
  • Настроить Nginx и HTTPS для публичного доступа.

Разработчик модулей:

  • Размещать кастомные аддоны в /opt/flectra/flectra-custom-addons.
  • Проверять права доступа пользователя flectra.

Быстрый план отката и устранения неисправностей

  1. Если Flectra не стартует — посмотреть журналы systemd: systemctl status flectra и journalctl -u flectra -b.
  2. Если ошибки зависимостей Python — активировать виртуальное окружение и попытаться pip install проблемного пакета вручную.
  3. Если Nginx не проксирует — проверить синтаксис и логи: nginx -t; tail -n 200 /var/log/nginx/flectra.error.log.
  4. При проблемах с БД — проверить доступность порта 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.

Краткая методология развёртывания

  1. Подготовка ОС → 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.

Поделиться: X/Twitter Facebook LinkedIn Telegram
Автор
Редакция

Похожие материалы

Несколько аккаунтов Skype: Multi Skype Launcher
Программное обеспечение

Несколько аккаунтов Skype: Multi Skype Launcher

Журнал для работы: повысить продуктивность
Productivity

Журнал для работы: повысить продуктивность

Персональные звуки уведомлений на Android
Android.

Персональные звуки уведомлений на Android

Скачивание шоу Hulu для офлайн‑просмотра
Стриминг

Скачивание шоу Hulu для офлайн‑просмотра

Microsoft Start: персонализированная новостная лента
Новости

Microsoft Start: персонализированная новостная лента

Как изменить имя в Epic Games быстро
Гайды

Как изменить имя в Epic Games быстро