Перейти к основному содержанию
ipmideck поставляется с одной консольной командой, ipmideck, которая запускает сервер, сбрасывает пароль администратора или генерирует самоподписанный сертификат. ipmilink это обратно совместимый псевдоним той же команды, каждая подкоманда и флаг ниже работают идентично под любым из имён.
CLI применяется только при прямом запуске ipmideck (установка pip или исходный код). Образ Docker запускает uvicorn backend.main:app напрямую и никогда не вызывает CLI, поэтому ни один из этих флагов, приоритет привязки или защита единственного экземпляра не применяются к контейнеру. Привязка контейнера задаётся его собственной командой запуска. См. Установку.

Запуск сервера

start это основная команда обслуживания. Голый вызов без подкоманды обслуживает идентично, поэтому эти варианты эквивалентны:
ipmideck start
# or, with no subcommand:
ipmideck
Без флагов ipmideck привязывается к 0.0.0.0:3000 по умолчанию, доступен на каждом интерфейсе, на порту 3000. Откройте http://<your-ip>:3000, как только он запущен. Переопределите привязку с помощью --host и --port:
ipmideck start --host 127.0.0.1 --port 8080

Подкоманды

ПодкомандаЧто она делает
startЗапускает сервер (по умолчанию). Голый ipmideck без подкоманды также обслуживает.
serveУстаревший псевдоним start. Ведёт себя идентично; сохранён, чтобы существующие скрипты продолжали работать.
reset-passwordИнтерактивно создаёт или обновляет вход администратора, затем завершается без обслуживания.
serve это устаревший псевдоним start, предпочитайте start (или голый ipmideck) в новых скриптах.

Флаги

Эти флаги верхнего уровня применяются к пути обслуживания. --demo и --config читаются перед любой ветвью подкоманды, поэтому они также влияют на reset-password и --gen-cert.
ФлагЭффект
--host <host>Хост привязки. Значение по умолчанию из config.yaml или 0.0.0.0. Явный флаг побеждает конфигурацию.
--port <port>Порт привязки. Значение по умолчанию из config.yaml или 3000. Явный флаг побеждает конфигурацию.
--demoЗапуск в демо-режиме с симулированными данными.
--config <path>Путь к загружаемому config.yaml.
--reloadВключить автоперезагрузку для разработки.
--gen-certСгенерировать самоподписанный cert + ключ в data/certs/, записать пути в config.yaml и выйти.

Приоритет привязки

Хост и порт, к которым ipmideck фактически привязывается, разрешаются в этом порядке, наивысший приоритет первым:
  1. Явный флаг --host / --port в командной строке.
  2. Конфигурация, которая сама разрешает переменную окружения (IPMIDECK_SERVER_HOST / IPMIDECK_SERVER_PORT) над config.yaml над встроенным значением по умолчанию.
  3. Жёстко заданный резервный вариант 0.0.0.0:3000, используемый, если ранняя загрузка конфигурации завершается неудачей.
Иными словами: значение, которое вы сохраняете в config.yaml, переопределяется переменной окружения IPMIDECK_ или флагом --host / --port при следующей загрузке, окружение и CLI всегда побеждают. Если config.yaml неправильно сформирован, ipmideck печатает предупреждение в stderr и возвращается к 0.0.0.0:3000.
Переменные окружения IPMIDECK_SERVER_HOST и IPMIDECK_SERVER_PORT используют префикс IPMIDECK_. См. Конфигурацию для полного списка переопределений.

HTTPS с —gen-cert

--gen-cert генерирует самоподписанный сертификат и ключ, затем выходит. Он не запускает сервер и не включает HTTPS сам по себе:
ipmideck --gen-cert
Он записывает пару cert + ключ в data/certs/, записывает их пути в блок server в config.yaml и печатает три строки:
Generated: <path-to-cert>
Generated: <path-to-key>
Wrote cert_file/key_file to config.yaml. Set server.https=true and restart to serve over HTTPS.
Чтобы действительно обслуживать по HTTPS, установите server.https: true в config.yaml и перезапустите ipmideck. HTTPS никогда не включается автоматически.

Демо-режим

--demo запускает ipmideck на симулированном оборудовании вместо реальных BMC, полезно для оценки панели без подключённых серверов:
ipmideck start --demo
Демо-режим устанавливается очень рано, перед любой ветвью подкоманды, поэтому всё приложение (конфигурация и запущенный сервер) его видит.

Сброс пароля администратора

reset-password интерактивно создаёт или обновляет вход администратора, затем выходит, ни разу не запуская сервер:
ipmideck reset-password
Он запрашивает Username:, а затем New password: (скрытый ввод). Если учётная запись уже существует, он обновляет пароль этого пользователя и печатает Password updated for <username>; иначе создаёт пользователя и печатает User <username> created.

Автоперезагрузка для разработки

--reload это быстрый путь только для разработки: он передаёт управление собственному автоперезагружающему супервизору uvicorn и возвращается. Он намеренно пропускает защиту порта единственного экземпляра, описанную ниже, потому что перезагрузчик запускает свой собственный процесс супервизора.
ipmideck start --reload
--reload предназначен только для разработки. Поскольку он обходит защиту единственного экземпляра, запускайте его на хосте, где никакой другой экземпляр ipmideck ещё не привязан к тому же порту.

Коды выхода

Код выходаКогда
0Чистое завершение по Ctrl+C / SIGTERM, сервер останавливается корректно, без трассировки.
1Порт уже используется на целевом хосте (возможно, запущен другой экземпляр), или привязка завершается неудачей, потому что адрес недоступен или не разрешён (например привилегированный порт или несуществующий интерфейс).
На пути обслуживания (не --reload) ipmideck запускает защиту единственного экземпляра перед привязкой. Если порт уже используется, он печатает ошибку в stderr и завершается с 1. Если привязка завершается неудачей, потому что адрес недоступен или не разрешён, он печатает отдельную ошибку и также завершается с 1.

Следующие шаги