Skip to content

Файлы и порты ​

Где панель и узел хранят данные на диске, какие порты слушают и какие переменные окружения меняют их поведение. Всё, что здесь не перечислено, — от администраторов и настроек до пользователей и сертификатов, — хранится в базе панели и управляется из панели.

Файлы панели ​

ПутьЧто это
/opt/nx-panel/nx-panelпрограмма
/opt/nx-panel/nx-panel.previousпрограмма до последнего обновления, сохраняется для отката
/opt/nx-panel/config.jsonподключение к базе и больше ничего
/var/opt/nx-panel/nx.dbбаза SQLite (пока панель работает, рядом лежат файлы -wal и -shm)
/var/opt/nx-panel/bin/бинарные файлы узла, которые панель отдаёт установщикам узлов
/var/opt/nx-panel/sub-themes/темы страницы подписки
/var/opt/nx-panel/presets/ваши собственные файлы каталога пресетов, добавляемые к встроенным
/var/opt/nx-panel/backups/архивы резервных копий и снимки перед восстановлением (читать может только root)
/var/opt/nx-panel/rulesets/копии файлов наборов правил, которые панель отдаёт узлам; можно очистить, панель скачает их заново
/etc/systemd/system/nx-panel.serviceслужба

Копирование файлов базы при работающей панели — не резервная копия. Используйте резервное копирование самой панели (Резервное копирование и восстановление): оно снимает согласованную копию, ничего не останавливая.

config.json выглядит так:

json
{ "db": { "driver": "sqlite", "dsn": "/var/opt/nx-panel/nx.db" } }

С PostgreSQL driver равен postgres, а dsn — строка подключения. max_open_conns задаёт размер пула соединений; не указывайте его, если только сервер PostgreSQL не используется ещё и другими программами.

В Docker ​

Каждый стек панели хранит то, что должно пережить контейнер, рядом со своим файлом compose:

ПутьЧто это
./dataбаза SQLite (стек с PostgreSQL использует именованный том)
./backupsархивы резервных копий
./binбинарные файлы узла
./rulesetsкопии наборов правил; можно очистить
./sub-themesтемы страницы подписки

Файлы узла ​

ПутьЧто это
/opt/nx-node/nx-nodeпрограмма
/opt/nx-node/config.jsonадрес управляющего порта и пути к сертификатам, больше ничего
/var/opt/nx-node/certs/ssl_cert.pemсобственный сертификат узла
/var/opt/nx-node/certs/ssl_key.pemего закрытый ключ
/var/opt/nx-node/certs/panel_ca.pemсертификат панели — единственный, который принимает узел
/var/opt/nx-node/cache/наборы правил и другие файлы, присланные панелью, которые она пришлёт снова, если их удалить, и вход эндпоинта Tailscale, который при удалении теряется
/etc/systemd/system/nx-node.serviceслужба

Всё, что обслуживает узел, присылает панель, и хранится это в памяти. Перезапущенный узел ничего не обслуживает, пока панель снова не пришлёт ему конфигурацию, а это занимает секунды. Сертификаты — файлы на узле, которые стоит резервировать, а на узле с эндпоинтом Tailscale ещё и cache/tailscale.

В Docker узел хранит ./certs и ./cache рядом со своим файлом compose.

Когда панель и узел делят сервер, /var/opt/nx-panel содержит данные обоих: база, bin, backups и остальное принадлежат панели, а certs и cache — узлу. См. Панель и узел на одном сервере.

Порты ​

ПортКтоЧто
случайный высокий TCP-портпанель (установка скриптом)веб-интерфейс панели, API и подписки. Установщик выбирает свободный порт и печатает его
2095 TCPпанель (Docker)то же самое, порт закреплён в файле compose
любой добавленный вами портпанельдополнительные слушатели из Настройки → Адреса (Адреса); в Docker опубликуйте каждый из них в файле compose
62050 TCPузелуправляющий порт. Пользоваться им может только панель; разрешайте его только с адреса панели
порты инбаундовузелто, к чему подключаются ваши пользователи; выбирается в панели
5432 TCP, только локальноPostgreSQL (с --postgres)база, к которой панель обращается на 127.0.0.1

Порт панели можно изменить в мастере настройки, позже — на странице настроек или командой nx-panel config set web_listen_port. И панель, и узел слушают IPv6 и IPv4 одновременно, а на сервере с выключенным IPv6 переходят на IPv4.

Переменные окружения ​

Панель ​

ПеременнаяДействие
NX_DB_DRIVERsqlite или postgres
NX_DB_DSNподключение к базе: путь к файлу для SQLite, строка подключения для PostgreSQL
NX_DB_MAX_OPEN_CONNSразмер пула соединений с базой
NX_WEB_LISTENзакрепляет адрес прослушивания (IP:PORT). Тогда панель игнорирует адрес из своих настроек, и мастер настройки не может его изменить. Так работают стеки Docker

Они имеют приоритет над config.json. nx-panel run -listen IP:PORT закрепляет адрес так же, как NX_WEB_LISTEN.

Узел ​

ПеременнаяДействие
NX_NODE_LISTENадрес управляющего порта, по умолчанию [::]:62050
NX_NODE_CERTфайл сертификата узла
NX_NODE_KEYфайл его закрытого ключа
NX_NODE_CLIENT_CAфайл сертификата панели
NX_STATE_DIRкаталог для certs и cache, по умолчанию /var/opt/nx-panel

Они имеют приоритет над config.json узла. Установщик узла также читает NX_INSTALL_TOKEN вместо --token.

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