Установка MLflow на свой сервер
Установка MLflow на сервер начинается с команды mlflow server: интерфейс и API открываются на порту 5000, а метаданные пишутся в SQLite. Для команды базу меняют на PostgreSQL, артефакты выносят в S3 и включают вход по паролю.
Ответ за 30 секунд
Серверу трекинга хватит 1 ядра и 2 ГБ памяти. Для команды сразу берите PostgreSQL и S3, включайте --app-name basic-auth и открывайте MLflow наружу только через HTTPS с явным --allowed-hosts.
Сервер на Ubuntu с NVMe, почасовая оплата и бесплатная приватная сеть.
Первый запуск MLflow на Ubuntu5000порт сервера MLflow
3.5.0+версии с защитой Host и CORS
12 символовминимальный пароль basic-auth
01 · 1 мин
Зачем MLflow отдельный сервер#
MLflow: открытая платформа для учёта экспериментов машинного обучения. Скрипт обучения отправляет на сервер параметры, метрики и файлы модели, а вы сравниваете запуски в веб-интерфейсе и регистрируете удачные модели.
Локально MLflow пишет всё в каталог проекта, и результаты остаются на одном ноутбуке. Сервер собирает эксперименты всей команды в одном месте и переживает перезагрузку ноутбука. Обучение при этом может идти где угодно: на арендованной видеокарте, в Jupyter или в CI.
Инструмент · 1 мин
Первый запуск MLflow на Ubuntu#
python3 -m venv ~/mlflow && ~/mlflow/bin/pip install mlflow
~/mlflow/bin/mlflow server
Так MLflow отдаёт интерфейс и REST API на http://127.0.0.1:5000 и хранит метаданные в файле mlflow.db (SQLite). С версии 3.5.0 встроенная защита пускает только локальные подключения: чтобы открыть сервер другим машинам, нужны --host 0.0.0.0 и явный список --allowed-hosts, а при запросах из браузера с других сайтов ещё и --cors-allowed-origins.
Клиентам адрес сервера передают переменной окружения:
export MLFLOW_TRACKING_URI=https://mlflow.example.com
Сервер под MLflow
Сервер трекинга лёгкий, тяжелеют база и артефакты
03 · 1 мин
MLflow в docker compose с PostgreSQL и S3#
Для команды SQLite меняют на PostgreSQL (флаг --backend-store-uri), а артефакты отправляют в S3 (флаг --artifacts-destination). Официальный образ лежит в ghcr.io, драйвер PostgreSQL и клиент S3 в примере доставляются при старте:
services:
db:
image: postgres:16
environment:
POSTGRES_USER: mlflow
POSTGRES_PASSWORD: смените-пароль
POSTGRES_DB: mlflow
volumes:
- pgdata:/var/lib/postgresql/data
mlflow:
image: ghcr.io/mlflow/mlflow:v3.17.1
depends_on: [db]
ports:
- "127.0.0.1:5000:5000"
environment:
MLFLOW_AUTH_ADMIN_PASSWORD: длинный-пароль-админа
AWS_ACCESS_KEY_ID: ключ-s3
AWS_SECRET_ACCESS_KEY: секрет-s3
MLFLOW_S3_ENDPOINT_URL: https://адрес-s3
command: >
sh -c "pip install psycopg2-binary boto3 &&
mlflow server --app-name basic-auth --host 0.0.0.0 --port 5000
--backend-store-uri postgresql://mlflow:смените-пароль@db:5432/mlflow
--artifacts-destination s3://bucket/mlflow
--allowed-hosts mlflow.example.com"
volumes:
pgdata:
Базу можно не держать в контейнере: управляемый PostgreSQL у Таймвеб Клауд стоит от 790 ₽ в месяц, S3-хранилище от 1 ₽ за 1 ГБ (цены на 14 октября 2026). Автоматические бэкапы базы там подключаются отдельной опцией.
04 · 1 мин
Как закрыть MLflow паролем и открыть по HTTPS#
Вход по логину и паролю включает флаг --app-name basic-auth. Пароля администратора по умолчанию нет: при первом старте MLflow создаёт администратора с паролем из переменной MLFLOW_AUTH_ADMIN_PASSWORD и отказывается запускаться, если она не задана. Пароль должен быть не короче 12 символов.
Пользователи и права хранятся в SQL-базе и сохраняются, даже если временно выключить авторизацию. Логин и пароль передаются в каждом запросе, поэтому снаружи MLflow открывают только через HTTPS: поставьте перед ним Caddy или Nginx с сертификатом и пропишите домен в --allowed-hosts.
Порт 5000 не для интернета
Через API MLflow можно скачать любую модель и удалить эксперименты. Держите порт на 127.0.0.1, как в примере, а для работы без домена используйте SSH-туннель.
05 · 1 мин
Вопросы об установке MLflow#
Почему MLflow на сервере не открывается с другого компьютера?
С версии 3.5.0 MLflow по умолчанию принимает только локальные подключения. Запустите его с --host 0.0.0.0 и перечислите свои домены в --allowed-hosts.
Какой пароль администратора у MLflow по умолчанию?
Его нет: с basic-auth MLflow берёт пароль из переменной MLFLOW_AUTH_ADMIN_PASSWORD, без неё не запускается. Длина пароля от 12 символов.
Где MLflow хранит данные по умолчанию?
Метаданные в SQLite-файле mlflow.db в рабочем каталоге. Для команды подключают PostgreSQL через --backend-store-uri.
Можно ли хранить модели MLflow в S3?
Да, флаг --artifacts-destination с адресом бакета s3:// отправляет артефакты в хранилище, для S3-совместимых сервисов задают MLFLOW_S3_ENDPOINT_URL.
Почему этому можно верить
Как мы проверяли
Источники цифр на этой странице: VPS и VDS серверы Таймвеб Клауд, timeweb.cloud/services/vds-vps, проверено 14 октября 2026; Облачные базы данных Таймвеб Клауд, timeweb.cloud/services/dbaas, проверено 14 октября 2026; S3-хранилище Таймвеб Клауд, timeweb.cloud/services/s3-storage, проверено 14 октября 2026; Маркетплейс приложений Таймвеб Клауд, timeweb.cloud/marketplace, проверено 14 октября 2026; MLflow: сервер трекинга, mlflow.org/docs/latest/self-hosting/architecture/tracking-server, проверено 15 октября 2026; MLflow: basic-auth, mlflow.org/docs/latest/self-hosting/security/basic-http-auth, проверено 15 октября 2026; MLflow: защита сервера в сети, mlflow.org/docs/latest/self-hosting/security/network, проверено 15 октября 2026; MLflow: образ в GitHub Container Registry, github.com/mlflow/mlflow/pkgs/container/mlflow, проверено 15 октября 2026.
Запустите свой сервер за пару минут
Почасовая оплата: тестовый стенд на сутки стоит десятки рублей, а не месячный тариф.
- NVMe-диски и гарантированная доля процессора
- Root-доступ и любой софт, от Docker до игровых серверов
- Маркетплейс: 91 приложение в один клик
- Бесплатный перенос проекта силами специалистов