#!/bin/bash # ============================================================ # Запуск MLflow Tracking Server # Откройте в браузере: http://localhost:5555 # С другой машины: http://:5555 # # Backend store = SQLite (mlflow.db) — recommended MLflow backend. # Скрипты в src/ логируют на этот сервер (http://localhost:5555) через # mlflow.set_tracking_uri(...) — UI и скрипты работают с одной базой. # # Доступ к UI с других машин (браузером по IP сервера) — включён: # --host 0.0.0.0 слушать на всех интерфейсах # --allowed-hosts "*" разрешить любой Host-заголовок (иначе MLflow # режет запросы с Host=:5555) # --cors-allowed-origins "*" разрешить кросс-доменные API-запросы # MLFLOW_ALLOW_ORIGIN="*" то же через env (совместимость) # --serve-artifacts сервер сам отдаёт артефакты (иначе UI на # --artifacts-destination удалённой машине не скачает model/графики # по file://-путям) # --dev dev-режим (релиакс host-проверок) # # Запустите сервер ДО запуска скриптов обучения. # ============================================================ set -e cd "$(dirname "$0")" PORT="${MLFLOW_PORT:-5555}" export MLFLOW_ALLOW_ORIGIN="*" echo "🚀 Запускаем MLflow Tracking Server..." echo " UI: http://localhost:${PORT} (с других машин: http://:${PORT})" echo " Backend: sqlite:///${PWD}/mlflow.db" echo " Artifacts: file://${PWD}/artifacts (serve-artifacts включён)" echo "" echo " Скрипты логируют сюда через MLFLOW_TRACKING_URI=http://localhost:${PORT}" echo " (можно переопределить: export MLFLOW_TRACKING_URI=http://:${PORT})" echo "" echo " Нажмите Ctrl+C для остановки" echo "" mlflow server \ --backend-store-uri "sqlite:///${PWD}/mlflow.db" \ --default-artifact-root "file://${PWD}/artifacts" \ --serve-artifacts \ --artifacts-destination "file://${PWD}/artifacts" \ --allowed-hosts "*" \ --cors-allowed-origins "*" \ --host 0.0.0.0 \ --port "${PORT}" \ --dev