Структура репозитория
Где что лежит в монорепозитории BirdLense Hub. Версия релиза — корневой файл VERSION (дублируется в mkdocs.yml, app/ui/package.json, app/web/openapi.yaml; проверка — scripts/check-docs-version.py).
English
Корень репозитория
| Путь |
Назначение |
app/ |
Рабочий стек: Docker Compose, web (Flask API), processor (детекция), ui (React/Vite). Обычно: cd app && make local / make start — см. LOCAL_DEV.ru. |
docs/ |
Документация для операторов и разработчиков; исходники MkDocs. Оглавление: README.ru. |
scripts/ |
Деплой (deploy.sh, deploy.local.sh.example), диагностика, датасеты, скрипты GitHub Project, верификация. |
mkdocs.yml, overrides/ |
Статический сайт документации (GitHub Pages). Сборка: make docs-site или Documentation.ru. |
Makefile (корень) |
deploy, docs-site, Telegram proxy, restore-config и т.д. Сборка/запуск приложения — в app/Makefile. |
VERSION |
Текущая semver-версия хаба (единый источник для проверок версии). |
examples/ |
Примеры конфигов (например правила Prometheus), приложение их само не подхватывает. |
docker/gallery-test/ |
Небольшой отдельный Docker-пример (галерея); не основной стек из app/. |
wiki-source/ |
Заготовки / автоматизация для GitHub Wiki — см. WIKI_AUTOMATION.ru. |
screenshots/ |
Картинки для доков и статей. |
docs/article/ |
Черновики внешних публикаций (например Хабр); не часть рантайма. |
datasets/ |
Опциональная локальная выгрузка датасетов (корень в .gitignore). См. DATASETS.ru и scripts/datasets/. |
Внутри app/
| Путь |
Назначение |
app/web/ |
Flask, REST API, OpenAPI (openapi.yaml). |
app/processor/ |
Конвейер детекции, YOLO/Ultralytics; тяжёлые веса — см. .gitignore. |
app/ui/ |
Фронтенд React 19 + Vite 6; артефакт npm run build отдаёт web-слой (см. LOCAL_DEV.ru). |
app/app_config/ |
Поставляемые дефолты и шаблоны. Файл user_config.yaml создаётся на инсталляции и не коммитится — см. CONFIGURATION.ru. |
app/data/ |
SQLite, записи, локальное состояние — при деплое по умолчанию не затирается; см. INSTALL.ru. |
Порядок (для контрибьюторов)
- Не коммить отладочные дампы и разовые json/txt в корень репозитория. Типичные маски уже в
.gitignore; временное — в /tmp или локальную папку вне репо.
- Конфиг: рабочий
user_config.yaml и данные — под app/, а не пустой дубликат app_config/ в корне.
- Код vs доки: рантайм в
app/; тексты и гайды в docs/.
См. также