Инструкция по запуску и развертыванию приложения на cloud.ru
Локальный запуск
Клонирование репозитория
Запуск компонентов
- FastAPI сервер:
Backend/app/main.py - Streamlit приложение:
Frontend/run.py
Параллельный запуск FastAPI и Streamlit
Выполните команды в двух консолях:
# Запуск Streamlit
streamlit run .\Client\app_client.py --server.port=8081 --server.address=127.0.0.1
Развертывание через Docker
Описание: В compose-файле поднимаются два контейнера с FastAPI и Streamlit-приложениями.
Развертывание на VPS (Cloud.ru)
1. Создание виртуальной машины
- Перейдите на официальный сайт Cloud.ru
- Создайте ВМ с бесплатным тарифом (free tier)
- Выберите предустановленные компоненты по вашему усмотрению
2. Настройка SSH-доступа
Рекомендуется сразу настроить SSH-соединение для более удобного доступа к серверу. После завершения настройки вы сможете подключаться к машине двумя способами: либо напрямую через веб-интерфейс сайта, используя пароль, либо через SSH.
- Подключение через SSH:
По умолчанию там запускается -sh, которая не очень удобна для работы. Чтобы переключиться на стандартный Bash, выполните команду
- Переключитесь на Bash: или
3. Открытие портов
Следуйте инструкции: Настройка подсетей Cloud.ru
Пример правил входящего трафика:
| Протокол | Порт | Источник |
|---|---|---|
| TCP | 80:80 | Ваш IP/32 |
| TCP | 9000:9000 | Ваш IP/32 |
| TCP | 22:22 | Ваш IP/32 |
Правила исходящего трафика:
- Адресат:
0.0.0.0/0
4. Проверка доступности портов
- Windows:
Она выведет результат проверки соединения, например: TcpTestSucceeded : False
- Linux:
- Тестовый запуск порта:
5. Развертывание приложения
# Клонирование репозитория
git clone -b <feature-fastapi> <progect_http_url>
# Запуск контейнеров
docker compose up -d --build
После развертывания готовые приложения находятся по следующим адресам:
- FastAPI:
http://<host_ip>:54545 - Streamlit:
http://<host_ip>:8501
Дополнительные материалы
Архитектура приложения
- FastAPI: Обработка запросов, обучение моделей, предсказание
- Streamlit: Визуализация EDA, обучение моделей, инференс
Доступные API-методы
| Метод | Описание |
|---|---|
/api/v1/dataset/load |
Загрузка датасета |
/api/v1/models/fit |
Обучение новой модели |
/api/v1/models/predict |
Предсказание класса изображения |
Поддерживаемые форматы
- Датасет: ZIP-архив с папками классов
- Изображения:
.jpeg,.png,.jpg
Метрики
- Основная:
accuracy - Вспомогательная:
f1 macro