1. Требования к окружению. Операционная система Debian 11 (Bullseye) Python 3.x
Node.js 20.x
СУБД PostgreSQL Веб-сервер nginx
2. Состав поставки
bob_front — бэкенд-сервис, порт 8901 (скрипт запуска run_super.py, юнит-файл bob_front.service)
aist_front — бэкенд-сервис, порт 8902 (скрипт запуска run_aist.py, юнит-файл aist_front.service)
asudd — фронтенд (исходный код React-приложения) Файлы схемы базы данных (*_schema.sql) Конфигурация nginx
Список системных Python-зависимостей (dpkg_python)
3. Порядок установки
3.1. База данных
Создать базу данных PostgreSQL. Применить схему из поставляемых файлов
*_schema.sql.
3.2. Бэкенд-сервисы
Разместить файлы сервисов в целевых каталогах. Зарегистрировать юнит-файлы bob_front.service и aist_front.service в systemd и запустить сервисы:
sudo systemctl daemon-reload
sudo systemctl enable bob_front aist_front
sudo systemctl start bob_front aist_front
3.3. Фронтенд
Установить зависимости и выполнить сборку:
npm install npm run build
Поместить содержимое каталога dist/ в директорию, указанную в конфигурации nginx.
3.4. nginx
Поместить SSL-сертификаты в /etc/nginx/certs/. Установить следующую конфигурацию и перезапустить nginx:
server {
listen 80 default_server;
listen [::]:80 default_server;
location / {
return 301 https://$host$request_uri;
}
}
server {
listen 443 ssl default_server;
ssl_certificate /etc/nginx/certs/sistema-aist.crt; ssl_certificate_key /etc/nginx/certs/sistema-aist.private.key;
root /home/anatoly/asudd11/asudd/dist; index index.html;
# API v3 (demo.softlogic.ai) location /api/v3/ {
proxy_pass
https://demo.softlogic.ai/api/; proxy_http_version 1.1; proxy_set_header Host demo.softlogic.ai;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_ssl_server_name on;
}
# Прокси для изображений location /images/ {
proxy_pass
https://download-demo.softlogic.ai/; proxy_http_version 1.1;
proxy_set_header Host download-demo.softlogic.ai; proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_ssl_server_name on;
}
# aist_front API location /api/ {
client_max_body_size 100M; proxy_pass
http://127.0.0.1:8902; proxy_http_version 1.1; proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
}
# bob_front API location /bob_api/ {
proxy_pass
http://127.0.0.1:8901/; proxy_http_version 1.1; proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
}
# Swagger UI location /docs {
proxy_pass
http://127.0.0.1:8902; proxy_set_header X-Real-IP $remote_addr;
}
location /openapi.json {
proxy_pass
http://127.0.0.1:8902; proxy_set_header X-Real-IP $remote_addr;
}
# Статические файлы React (SPA fallback) location / {
try_files $uri $uri/ /index.html;
}
error_page 500 502 503 504 /50x.html; location = /50x.html {
root html;
}
}
sudo nginx -t
sudo systemctl restart nginx
4. Проверка установки
После запуска всех сервисов открыть в браузере адрес сервера по протоколу HTTPS. Выполнить вход с учётными данными администратора.