https://git.cyberintel.ru/project/kiberrazvedka/kr-backend
Зависимости:
Инициализация базы данных:
CREATE DATABASE kr_backend;
CREATE USER kr_backend_admin WITH PASSWORD '<your password here>';
\c kr_backend
GRANT ALL PRIVILEGES ON DATABASE kr_backend TO kr_backend_admin;
GRANT ALL PRIVILEGES ON SCHEMA public TO kr_backend_admin;
CREATE USER kr_backend_user WITH PASSWORD '<your password here>';
GRANT CONNECT ON DATABASE kr_backend TO kr_backend_user;
GRANT USAGE ON SCHEMA public TO kr_backend_user;
GRANT SELECT, INSERT, UPDATE, DELETE ON ALL TABLES IN SCHEMA public TO kr_backend_user;
ALTER DEFAULT PRIVILEGES FOR ROLE kr_backend IN SCHEMA public GRANT SELECT, INSERT, UPDATE, DELETE ON TABLES TO kr_backend_user;
CREATE EXTENSION IF NOT EXISTS hstore;
Установка библиотек:
uv venv
source .venv/bin/activate
uv sync
Настройка:
Настройте приложение, задав конфигурационные переменные в окружении.
Вы можете описать значение этих переменных в файле .env в корне репозитория — как для локального запуска, так и для запуска через Docker Compose.
Локальный запуск:
Эти шаги описывают запуск на локальной машине без Docker. Все последующие команды выполняются после инициализации виртуальной среды:
source .venv/bin/activate
Применение миграций PostgreSQL:
alembic upgrade head
Запуск скрипта инициализации (создает дефолтную компанию и юзера — bob@bob.com с паролем 123):
python -m app.cli.initialize
Запуск API:
scripts/run-api.sh
Запуск фонового воркера:
scripts/run-worker.sh
Запуск Selenium Chrome:
docker run -d -p 4444:4444 -p 7900:7900 --shm-size="2g" selenium/standalone-chrome
URL для просмотра UI Selenium: http://localhost:7900/?autoconnect=1&resize=scale&password=secret (браузер запускается в headless режиме).
Запуск celery beat:
scripts/run-beat.sh
Запуск сканера прозрачности сертификатов:
scripts/run-ct-scanner.sh
Запустите фронтенд — см. документацию в репозитории kr-frontend.
Docker Compose:
Настройка переменных окружения:
cp docker/env.example .env
Отредактируйте созданный файл, заменив значения на реальные:
Профили запуска (Docker Compose):
api — только сервис API;back — только фоновые воркеры (worker, beat, ct_scanner, selenium);db — все базы данных (PostgreSQL, Redis, Opensearch, Opensearch Dashboard, Flower Dashboard);opensearch — только Opensearch, Opensearch Dashboard;ui — только сервис фронта;selenium — только сервис selenium;full — полный набор сервисов.Запуск:
docker compose --profile full up -d
Примеры запуска отдельных профилей:
# Только базы данных
docker compose --profile db up -d
# Только API
docker compose --profile api up -d
Примечание: для запуска полной версии (профиль full) потребуется собранный образ kr-frontend. Для «урезанных» профилей это не требуется.
Сборка:
docker compose --profile full build
Полезные скрипты (папка app/cli/), запуск:
python -m app.cli.<имя_скрипта>
Доступные скрипты:
create_company — создание компании, юзера и подписки на план;create_user — создание нового пользователя;evaluate_llm — проверка качества генерации разных LLM;init_telegram — инициализация сессии Telegram;initialize — инициализация тестовых данных системы;update_stats — ручное обновление статистики для компаний.Миграции:
alembic upgrade head
Извлечение списка зависимостей (BOM):
bash scripts/extract-bom.sh
В корневой папке появится файл bom.json в формате Cyclone DX BOM.
Далее: Frontend