axottle — единый бинарник: он же запускает панель (axottle serve), он же служит CLI для управления и диагностики. После установки команда доступна из PATH на сервере панели.
Запуск без аргументов открывает интерактивный терминальный интерфейс (TUI) — то же самое, что axottle tui.
Для кого: администратор, SRE. Требуемые права: обычные команды — любой пользователь с доступом к API панели;
axottle admin reset-password — только root, sudo или владелец каталога установки панели.Общие флаги
Большинство команд (status, version, doctor, license) принимают общий набор флагов:| Флаг | Что делает |
|---|---|
--api <url> | Базовый URL API панели (по умолчанию http://localhost:8080; можно задать через AXOTTLE_API_URL) |
--token <токен> | Bearer-токен для API-вызовов (можно задать через AXOTTLE_API_TOKEN) |
--json | Вывод в формате JSON |
--table | Табличный вывод |
--plain | Простой текстовый вывод |
--verbose | Подробный вывод |
--debug | Отладочный вывод |
--yes | Пропустить подтверждения (для опасных команд) |
AXOTTLE_LANG=ru принудительно включает русский; иначе язык определяется из LANG.
Команды
axottle tui
Интерактивный терминальный интерфейс (запускается и просто командой axottle без аргументов). В нём можно проверить состояние панели, открыть Doctor, посмотреть логи, управлять лицензией, сбросить пароль администратора и узнать версию.
В разделе Doctor доступны обычная диагностика, безопасное восстановление служб и сбор support bundle за выбранный период. Результаты прокручиваются стрелками, колесом мыши, Page Up / Page Down, Home / End.
axottle serve
Запускает панель: загружает конфигурацию, подключается к PostgreSQL, применяет миграции БД, поднимает API и встроенный веб-интерфейс; корректно завершается по SIGINT/SIGTERM.
В production панель запускается сервисом
axottle.service — вручную axottle serve на боевом сервере запускать не нужно (второй процесс не сможет занять тот же порт). Управляйте панелью через systemctl.axottle status
Опрашивает GET /api/v1/system/status и печатает состояние панели.
running, — удобно для мониторинговых скриптов.
axottle version (v)
Печатает версию сборки CLI и — живым запросом к API — версию работающей панели.
axottle doctor
Проверяет сервер панели и показывает состояние служб, базы данных, диска, сети, DNS, TLS и подключённых компонентов.
OK, Warning, Failed, Skipped или Unknown. Рядом указано, что обнаружено и какое действие рекомендуется. Найденная проблема не обрывает остальные проверки: Doctor старается показать всё, что удалось узнать о сервере. Последний результат сохраняется и доступен из TUI через View last diagnosis.
Команду следует запускать на сервере панели. Если база данных недоступна, остальные проверки всё равно выполняются, а состояние базы будет показано как проблема. Для проверки данных из PostgreSQL Doctor использует конфигурацию установленной панели.
axottle logs <component>
Показывает логи компонента. Компоненты: backend (по умолчанию; frontend — синоним backend), worker, scheduler, nginx.
| Флаг | Что делает |
|---|---|
--tail N, -n N | Последние N строк (по умолчанию 100) |
--follow, -f | Следить за логом в реальном времени |
--since <длительность> | Логи за период, например 1h, 30m |
--level | Пока не поддерживается (команда выведет предупреждение) |
journalctl -u axottle…) → файлы логов в стандартных каталогах.
axottle license status (info)
Печатает секрето-безопасный статус лицензии: состояние, план, срок действия, grace-период, время последней проверки, включённые и заблокированные функции. Ключ лицензии выводится в маскированном виде.
axottle license activate <key>
Активирует ключ лицензии через POST /api/v1/license/activate.
axottle license refresh
Принудительно перепроверяет лицензию на сервере лицензий (POST /api/v1/license/refresh). При временной недоступности сервера ранее активная лицензия переходит в grace-период (по умолчанию 72 часа, настраивается AXOTTLE_LICENSE_GRACE_HOURS); окончательный отрицательный вердикт grace-период не даёт.
axottle license remove
Удаляет лицензию с этой установки (POST /api/v1/license/remove).
axottle admin reset-password (reset)
Офлайн-сброс пароля администратора панели — работает напрямую с базой данных, без API и без действующей сессии.
| Флаг | Что делает |
|---|---|
--password <пароль> | Установить заданный пароль. Без флага генерируется случайный пароль из 16 символов |
--yes | Пропустить подтверждение |
--yes), сохраняет в базе хеш нового пароля, записывает событие в audit-журнал и печатает новый пароль в терминал.
axottle help (-h, --help)
Печатает справку по командам.
Проверка
CLI настроен корректно, если
axottle status показывает running, а axottle doctor завершает все проверки без статуса Failed.Откат
Сводка отката для команд, меняющих состояние:| Команда | Что меняет | Как откатить |
|---|---|---|
license activate <key> | Заменяет активную лицензию | Активировать прежний ключ |
license remove | Переводит панель в деградированный режим «только чтение» | axottle license activate <key> (доступно и в деградированном режиме) |
admin reset-password | Заменяет пароль администратора | Повторный запуск с --password или смена пароля в панели; прежний пароль не восстанавливается |
status, version, doctor, logs, license status — только чтение, откат не требуется.
Типовые ошибки
CLI не может достучаться до API панели
CLI не может достучаться до API панели
По умолчанию CLI ходит на
http://localhost:8080. Если панель слушает другой адрес или порт — укажите --api <url> или экспортируйте AXOTTLE_API_URL. Проверьте, что сервис запущен: systemctl status axottle.doctor или admin reset-password не находят базу данных
doctor или admin reset-password не находят базу данных
Эти команды подключаются к PostgreSQL напрямую. Экспортируйте
AXOTTLE_DB_URL в окружение или создайте .env в одном из каталогов: ./.env, /opt/axottle/.env, /var/lib/axottle/.env, ~/.axottle/.env.admin reset-password: недостаточно привилегий
admin reset-password: недостаточно привилегий
Команда требует root, sudo или владения каталогом установки панели. Запустите через
sudo axottle admin reset-password.logs: логи компонента не найдены
logs: логи компонента не найдены
Команда перебирает источники (Docker Compose → journald → файлы). Если ни один не сработал — проверьте, каким способом развёрнут компонент, и посмотрите
journalctl -u axottle напрямую.Связанные страницы
Конфигурация панели
Env-файл, рестарт сервиса, порядок изменений.
Лицензия
Активация, grace-период, деградированный режим.
Коды ошибок
HTTP-статусы API и действия оператора.
Обновления панели
Кнопка «Обновить сейчас» и скрипт обновления.
Проверено для версии Axottle текущей ветки. Дата проверки: 2026-07-12.
