Skip to content

Командная строка ​

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

Установщик панели добавляет 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 ​

bash
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 строки заменяются сразу, прямо под ней.

Нет доступа ​

Любую настройку, из-за которой панель может стать недоступной, можно изменить из командной строки, не запуская панель.

Адреса панели ​

Если вы меняли адреса панели в Настройки → Адреса, посмотрите их и верните тот, до которого можете добраться:

bash
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-panel

ingress reset заменяет все слушатели, маршруты и ответы по умолчанию одним слушателем на адресе основного слушателя (или на -listen), на обычном HTTP, с панелью в корне любого имени хоста. Команда печатает, что запишет, и просит ввести reset; в скрипте передайте -yes. Сертификаты, оформление и учётные записи не затрагиваются, а изменение появляется в История на странице. Вернув доступ, восстановите остальное на странице.

Изменение на странице, которое никто не подтвердил, откатывается само через две минуты, поэтому сброс нужен только для подтверждённого изменения.

Настройки адреса ​

Пока у панели один адрес, её настройки можно менять по одной:

bash
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.

Забытый пароль ​

bash
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 задаёт его сразу, но оставляет его в истории оболочки.

Сброс также выключает двухфакторную аутентификацию для этой учётной записи, чтобы её можно было заново подключить в панели, и завершает все открытые сессии учётной записи. Работающая панель может ещё до минуты активности принимать закешированную сессию; если это важно, перезапустите панель.

Доступ закрыт блокировкой ​

Пять неудачных входов с одного адреса блокируют его, и блокировка переживает перезапуск. Две настройки определяют, чей это адрес и кого никогда не блокировать:

bash
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Показывает команды

Установщик узла — отдельный скрипт, который отдаёт ваша панель; его параметры перечислены в Добавление узла.

Текст и изображения — CC BY 4.0.