Файлы и порты
Где панель и узел хранят данные на диске, какие порты слушают и какие переменные окружения меняют их поведение. Всё, что здесь не перечислено, — от администраторов и настроек до пользователей и сертификатов, — хранится в базе панели и управляется из панели.
Файлы панели
| Путь | Что это |
|---|---|
/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 выглядит так:
{ "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_DRIVER | sqlite или 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.
Связанные страницы
- Командная строка: команды обеих программ.
- Установка панели и Добавление узла: что и куда кладут установщики.
