Командная строка
Панель и узел — это по одной программе с несколькими командами. Обычно вы их не набираете: всю работу делают установщики и страницы панели. Они нужны, чтобы вернуть недоступную панель, восстановить резервную копию, когда панель не запускается, или автоматизировать установку.
Установщик панели добавляет nx-panel в PATH, а программа сама находит свой файл конфигурации, поэтому любая команда работает из любого каталога. В Docker добавьте впереди docker compose exec panel /app/: docker compose exec panel /app/nx-panel config list.
nx-panel
| Команда | Что делает |
|---|---|
run [-config FILE] [-listen IP:PORT] | Запускает панель. Это делает служба |
migrate [-config FILE] [-user U -pass P] | Создаёт или обновляет таблицы базы. С -user и -pass ещё и создаёт главного администратора — для установки без браузера; без них панель откроет мастер настройки |
config list | Показывает общие настройки панели |
config get KEY | Читает одну настройку |
config set KEY VALUE | Записывает одну настройку. "" очищает её. Большинство вступают в силу после перезапуска панели |
ingress list | Показывает слушатели и маршруты панели (Адреса) |
ingress reset [-listen IP:PORT] [-yes] | Заменяет их одним слушателем на обычном HTTP с панелью на любом хосте |
setup-token [-rotate] | Печатает одноразовый токен мастера настройки или заменяет его новым |
admin list | Перечисляет учётные записи администраторов и отмечает владельца панели |
admin reset-password [-user U] [-pass P] | Задаёт пароль администратора |
restore FILE [-passphrase P] [-yes] | Заменяет базу из архива резервной копии |
hwid | Печатает Идентификатор оборудования (HWID), который показывает страница Лицензия |
version | Печатает версию панели |
help | Показывает команды |
-config FILE направляет команду на другой файл конфигурации. Команды, которые открывают базу, принимают его после остальных аргументов, например nx-panel config list -config /path/to/config.json.
Настройки из командной строки
config читает и записывает настройки, которые может менять только главный администратор: адрес панели, домен, путь и сертификат, домены и путь подписок, резервное копирование, доверенные прокси, список разрешённых для входа адресов и ещё несколько. config list показывает их все.
Секрет, например парольная фраза резервных копий, показывается только как (set). config set отказывает ключу, который не является настройкой панели, и значению, которое панель не приняла бы. Как только в Настройки → Адреса больше одного адреса, например второй порт, config set отказывается менять настройки адреса; используйте ingress reset ниже. Настройки резервного копирования подхватываются в течение часа без перезапуска; для остальных перезапустите панель (systemctl restart nx-panel).
restore
systemctl stop nx-panel
nx-panel restore /var/opt/nx-panel/backups/nx-backup-20260914-030000.tar.gz
systemctl start nx-panelСначала команда читает архив, печатает его содержимое и предупреждения и просит ввести replace-database. В скрипте вместо этого передайте -yes. Зашифрованный архив принимает -passphrase или запрашивает фразу.
Как и в панели, настройки адреса и лицензия этого сервера сохраняются. -keep-web-settings=false и -keep-license=false берут вместо них данные из архива. Перед любыми изменениями записывается снимок текущей базы.
Сначала остановите панель. На SQLite замена происходит при следующем запуске панели, поэтому всё, что работающая панель запишет до этого, пропадёт; на PostgreSQL строки заменяются сразу, прямо под ней.
Нет доступа
Любую настройку, из-за которой панель может стать недоступной, можно изменить из командной строки, не запуская панель.
Адреса панели
Если вы меняли адреса панели в Настройки → Адреса, посмотрите их и верните тот, до которого можете добраться:
nx-panel ingress list # every listener and route
nx-panel ingress reset # one plain listener, the panel on every host
nx-panel ingress reset -listen 0.0.0.0:2095 # the same, on this address
systemctl restart nx-panelingress reset заменяет все слушатели, маршруты и ответы по умолчанию одним слушателем на адресе основного слушателя (или на -listen), на обычном HTTP, с панелью в корне любого имени хоста. Команда печатает, что запишет, и просит ввести reset; в скрипте передайте -yes. Сертификаты, оформление и учётные записи не затрагиваются, а изменение появляется в История на странице. Вернув доступ, восстановите остальное на странице.
Изменение на странице, которое никто не подтвердил, откатывается само через две минуты, поэтому сброс нужен только для подтверждённого изменения.
Настройки адреса
Пока у панели один адрес, её настройки можно менять по одной:
nx-panel config list # what is set
nx-panel config set web_listen_port 2095 # a port you can reach
nx-panel config set web_listen_ip "" # listen everywhere again (IPv4 and IPv6)
nx-panel config set web_domain "" # stop restricting the hostname
nx-panel config set web_basepath "" # serve at the root again
nx-panel config set sub_domain "" # stop reserving hosts for subscriptions
systemctl restart nx-panelНа последней многие попадаются, когда у панели нет базового пути. Домен в sub_domain отдаёт подписки и ничего больше, поэтому при панели в корне эти имена её никогда не показывают. Если вы пользуетесь только этими именами, панель недоступна отовсюду. Базовый путь убирает ловушку: под ним панель доступна на любом имени.
В Docker порт задаётся в файле compose, а не через config set или -listen.
Забытый пароль
nx-panel admin list # the accounts, and which one owns the panel
nx-panel admin reset-password # the owner; the password is typed, not shown
nx-panel admin reset-password -user alice # any other accountБез -user команда сбрасывает пароль владельца панели. Новый пароль запрашивается дважды и нигде не показывается. -pass задаёт его сразу, но оставляет его в истории оболочки.
Сброс также выключает двухфакторную аутентификацию для этой учётной записи, чтобы её можно было заново подключить в панели, и завершает все открытые сессии учётной записи. Работающая панель может ещё до минуты активности принимать закешированную сессию; если это важно, перезапустите панель.
Доступ закрыт блокировкой
Пять неудачных входов с одного адреса блокируют его, и блокировка переживает перезапуск. Две настройки определяют, чей это адрес и кого никогда не блокировать:
nx-panel config set trusted_proxies "10.0.0.0/8" # your reverse proxy or CDN, or empty
nx-panel config set login_allowlist "203.0.113.7" # addresses never bannedЗа прокси или CDN
Без trusted_proxies панель за обратным прокси или CDN видит любого посетителя под адресом прокси, поэтому первая же блокировка закрывает доступ всем. Укажите адреса прокси, а свой адрес держите в login_allowlist.
Когда вы снова войдёте, главный администратор может снять блокировку в Настройки → Безопасность (Безопасность).
nx-node
Узел устанавливает и настраивает панель, поэтому команд у него немного:
| Команда | Что делает |
|---|---|
run [-config FILE] | Запускает узел. Это делает служба |
gencerts [-dir DIR] | Создаёт собственный сертификат и ключ узла для ручной установки |
version | Печатает версию узла |
help | Показывает команды |
Установщик узла — отдельный скрипт, который отдаёт ваша панель; его параметры перечислены в Добавление узла.
Связанные страницы
- Файлы и порты: где обе программы хранят файлы и какие переменные окружения читают.
- Решение проблем: проблемы по симптомам.
