# LM Studio llmster: как поднять сервер без интерфейса и проверить API

Источник: https://modelium.tech/zhurnal/lm-studio-llmster-server/

llmster — отдельный фоновый процесс LM Studio для запуска моделей без графического приложения; им управляет команда `lms`. На Linux сначала установите daemon, затем запустите `lms daemon up`, загрузите выбранную модель и выполните `lms server start --bind 127.0.0.1 --port 1234`. Проверьте `/v1/models` и ответ `/v1/chat/completions` именно для загруженной модели. Не открывайте API в сеть без отдельной настройки доступа.

**Проверено по документации LM Studio 25 сентября 2026 года.** Это инструкция для вашего теста, не отчёт о собственном запуске: Modelium не устанавливал llmster, не загружал веса и не измерял память или скорость. Google Suggest подтверждает формулировку запроса «lm studio llmster», но не его частотность и не рост.

## Что такое llmster и когда он нужен?

LM Studio предлагает три разные сущности: настольное приложение с графическим интерфейсом, отдельный фоновый **llmster** без GUI и команду `**lms**`, которая управляет приложением либо daemon. Для машины без дисплея или серверного процесса выбирайте llmster; если нужен визуальный поиск моделей и чат, используйте [обычное LM Studio](/zhurnal/lm-studio/). Это не «скрытый экран» desktop-приложения и не отдельная модель [s1](#src-s1)[s2](#src-s2).

Цель этого гайда — получить на своей машине локальный HTTP-ответ от модели, а не только запущенный daemon. Минимальная цепочка: выбранная модель → совместимое железо → llmster → HTTP endpoint → контрольный ответ. LM Studio документирует сервер с OpenAI-совместимыми маршрутами; для результата нужны и работающий сервер, и доступная модель [s1](#src-s1)[s7](#src-s7).

## Что подготовить до установки?

Гайд по запуску при старте системы адресован **Linux без GUI**; для компьютера с графическим интерфейсом разработчик отдельно описывает запуск настольного приложения при входе пользователя. Нужны доступ к терминалу своей машины, разрешение на установку программы и место под выбранную модель; конкретный минимум RAM/VRAM из этих инструкций не следует [s3](#src-s3)[s2](#src-s2). Проверяйте поддержку модели и доступные ресурсы на своём устройстве: `lms load --estimate-only <model_key>` оценивает память с учётом настроек, но это оценка программы, а не гарантия успешного запуска [s5](#src-s5).

Если вы обслуживаете корпоративные документы, не подключайте к тесту реальные файлы или сетевой интерфейс до настройки политик доступа. По умолчанию аутентификация API отключена; адрес `127.0.0.1` ограничивает прямые подключения локальной машиной, но не заменяет контроль того, какие процессы на ней могут обращаться к серверу [s6](#src-s6)[s4](#src-s4).

## Как установить daemon и проверить `lms`?

В инструкции для Linux и macOS поставщик предлагает установочный скрипт. Перед выполнением скачайте его для просмотра, убедитесь, что адрес и содержимое подходят вашей среде; не запускайте непроверенный удалённый скрипт автоматически. Документированная команда поставщика приведена для сравнения после вашей проверки [s2](#src-s2)[s3](#src-s3):

curl -fsSL https://lmstudio.ai/install.sh | bashlms --help

Если `lms` не находится, проверьте результат установки и путь к CLI для **вашего** пользователя, а не копируйте путь из чужого systemd-примера. Скрипт скачивает и устанавливает ПО; Modelium его не выполнял. В Windows документация приводит другой способ установки, а приведённый ниже systemd-раздел к Windows не относится [s2](#src-s2)[s3](#src-s3).

## Как запустить локальный сервер и получить ответ?

После установки выполните последовательно:

lms daemon uplms ls

Первая команда запускает фоновый процесс, вторая показывает локальные модели; `lms` выступает CLI для llmster, поэтому наличие CLI само по себе ещё не доказывает работу сервера [s1](#src-s1)[s2](#src-s2). Если список пуст, `lms get` ищет варианты модели, а `lms get <название>` **скачивает** выбранный вариант. Перед загрузкой проверьте формат, лицензию в карточке модели и место на диске: команда не должна незаметно превращаться в инструкцию скачать крупные веса. `lms get --gguf` и `--mlx` фильтруют результаты поиска, но совместимость выбранного файла с машиной проверяется отдельно [s8](#src-s8).

Подставьте **реальный** `model_key` из `lms ls`; скобки в примере — место для замены, не буквальная команда. Сначала можете проверить оценку памяти; затем загрузите модель с понятным идентификатором API [s5](#src-s5):

lms load --estimate-only <model_key>lms load <model_key> --identifier modelium-testlms server start --bind 127.0.0.1 --port 1234lms server statuscurl -fsS http://127.0.0.1:1234/v1/models

`lms load` позволяет задать контекст и GPU offload отдельными флагами; не переносите на свою конфигурацию оценку памяти чужого model key. `lms server start` принимает порт и интерфейс, а `GET /v1/models` — предусмотренный API маршрут [s5](#src-s5)[s4](#src-s4)[s7](#src-s7). **Проверьте**, что JSON действительно содержит ожидаемый идентификатор, но не останавливайтесь на этом: при включённой Just-In-Time (JIT) загрузке `/v1/models` может перечислять скачанные, ещё не загруженные модели. При выключенной JIT он перечисляет только загруженные; поведение настройки описано для обоих режимов [s2](#src-s2).

Отправьте короткий запрос **на тот же идентификатор**, который вернулся в списке (если вы изменили `--identifier`, замените имя в JSON) [s5](#src-s5)[s7](#src-s7):

curl -fsS http://127.0.0.1:1234/v1/chat/completions \  -H 'Content-Type: application/json' \  -d '{"model":"modelium-test","messages":[{"role":"user","content":"Ответь одним словом: готово"}],"stream":false}'

Успешный тест — не просто HTTP 200, а JSON-ответ с текстом модели и отсутствием ошибки. Если список моделей пуст, проверьте `lms ls`, результат `lms load` и режим JIT. Если порт недоступен, проверьте `lms server status`, адрес `--bind` и то, что проверяете запрос **на том же компьютере**. Если сервер отвечает, а генерация падает, посмотрите точный model key, ресурсы и журналы; `lms log stream` указан в документации CLI [s1](#src-s1)[s2](#src-s2)[s4](#src-s4)[s5](#src-s5). Не выдавайте успешный ответ учебного запроса за доказательство качества на производственных данных.

## Как запускать llmster после перезагрузки Linux?

Для Linux без GUI разработчик показывает службу `systemd`: `ExecStartPre` поднимает daemon и по желанию загружает **конкретную** модель, `ExecStart` запускает сервер, `ExecStop` останавливает daemon. В примере сервиса указан `User`, `HOME` и путь к `lms` конкретного пользователя; подставлять нужно проверенные значения своей машины. Не переносите пример бездумно на root или чужой home [s3](#src-s3).

После создания службы в соответствии с официальной инструкцией выполняются `systemctl daemon-reload`, `systemctl enable` и `systemctl start`, затем `systemctl status` и контрольный запрос к `/v1/models`. При необходимости `systemctl stop` прекращает службу, а `systemctl disable` отключает автозапуск; если модель грузится на старте, её реальная потребность в памяти проверяется отдельно. Официальный пример также позволяет не грузить модель заранее и положиться на JIT-загрузку, если это предусмотрено вашей конфигурацией [s3](#src-s3)[s2](#src-s2).

## Почему не следует сразу открывать сервер в сеть?

Параметр `--bind 0.0.0.0` делает сервер доступным на всех IPv4-интерфейсах, в отличие от локального `127.0.0.1`; документация предупреждает о риске и рекомендует аутентификацию. Она же предупреждает, что `--cors` расширяет сценарии доступа браузера и требует осознанной настройки. Оставляйте привязку к localhost, пока сетевой доступ не спроектирован отдельно [s4](#src-s4).

Начиная с LM Studio 0.4.0, документация описывает API-токены и переключатель обязательной аутентификации в **Developers Page → Server Settings**. Но это описание интерфейса: для отдельного daemon без GUI не обещаем, что включение токена делается той же экранной последовательностью. Перед доступом с другого устройства проверьте на вашей версии способ включения и **реально** испытайте запрос без токена (должен быть отклонён) и с токеном (должен работать); до этого не публикуйте порт [s6](#src-s6)[s1](#src-s1). Токен не вставляйте в статью, логи или общий терминал.

**Следующий шаг:** [выберите подходящую модель в гайде LM Studio](/zhurnal/lm-studio/), оцените её на своём железе, затем на **вашем** llmster сохраните вывод `lms server status`, `/v1/models` и ответ `/v1/chat/completions`. Если нужен другой вариант runtime для того же сценария, посмотрите [Ollama или LM Studio](/zhurnal/ollama-ili-lm-studio/); универсальной скорости из документации этих двух инструментов не следует.

## Источники

1. [LM Studio, llmster, and lms — product distinctions](https://lmstudio.ai/docs/app/basics/lmstudio-vs-llmster-vs-lms) — получено 2026-09-25
2. [LM Studio — Run as a service (headless)](https://lmstudio.ai/docs/developer/core/headless) — получено 2026-09-25
3. [LM Studio — Setup llmster as a startup task on Linux](https://lmstudio.ai/docs/developer/core/headless_llmster) — получено 2026-09-25
4. [LM Studio CLI — lms server start](https://lmstudio.ai/docs/cli/serve/server-start) — получено 2026-09-25
5. [LM Studio CLI — lms load](https://lmstudio.ai/docs/cli/local-models/load) — получено 2026-09-25
6. [LM Studio — Authentication and API tokens](https://lmstudio.ai/docs/developer/core/authentication) — получено 2026-09-25
7. [LM Studio — OpenAI compatibility endpoints](https://lmstudio.ai/docs/developer/openai-compat) — получено 2026-09-25
8. [LM Studio CLI — lms get](https://lmstudio.ai/docs/cli/local-models/get) — получено 2026-09-25
