pano-node и Pano Agent
pano-node — демон, который запускает управляемые серверы на машине. Он всегда работает отдельным процессом, поэтому перезапуск или обновление Pano никогда не останавливает игровые серверы. На машине самой Pano его запускает Pano (локальный узел); эта страница — для случаев, когда вы запускаете его сами.
Установка
Скачивайте его у своей собственной Pano, чтобы версия всегда совпадала, — он также прикладывается к каждому выпуску Pano. Нужна Java 11 или новее.
curl -fsSL https://panel.example.com/api/node/pano-node.jar -o pano-node.jar
# Первый запуск: сопряжение по коду из Узлы → Добавить узел → Вручную
java -jar pano-node.jar --pano https://panel.example.com --code 123456 --data ./node-data
# Каждый следующий запуск
java -jar pano-node.jar --data ./node-data| Флаг | Переменная | |
|---|---|---|
--pano <url> | PANO_URL | Адрес вашей Pano |
--code <code> | PANO_PAIR_CODE | Код сопряжения |
--data <dir> | PANO_NODE_DATA | Каталог данных (по умолчанию ./node-data) |
--name <name> | PANO_NODE_NAME | Имя узла в панели |
--runtime DOCKER | PANO_NODE_RUNTIME | Запускать каждый сервер в собственном контейнере Docker |
--port-range <a-b> | PANO_NODE_PORT_RANGE | Порты для его серверов (по умолчанию 25565-25600) |
--service install | Записать служебный файл systemd / launchd / службы Windows и выйти |
В контейнере: образ — ghcr.io/panomc/pano-node. Смонтируйте том в /data (иначе всё пропадёт вместе с контейнером), опубликуйте те же порты, что и в PANO_NODE_PORT_RANGE, и задайте политику перезапуска, например --restart unless-stopped.
Данные и конфигурация
Всё лежит в каталоге данных: config.conf, servers/, backups/, java/ и несколько кешей. Одним каталогом одновременно может пользоваться только один демон.
platform {
url = "https://panel.example.com"
token = "<secret>"
encryption-key = "<secret>"
}
node {
stop-servers-on-exit = false
java-auto-download = true
tool-auto-download = true
}- Токен и ключи — секреты. Никогда не копируйте файл и никому его не передавайте. Если он утёк, удалите узел в панели и выполните сопряжение заново.
stop-servers-on-exit = falseоставляет серверы работать, пока демон перезапускается.- Недостающие версии Java скачиваются в
java/, а небольшойgitдля сборки Spigot — вtools/. Чтобы это запретить, задайте обоим ключамauto-downloadзначениеfalse. - Редактируйте файл, только пока демон остановлен.
Обновление и удаление
- Обновление: страница «Узлы» показывает Есть обновление. Демон скачивает новый jar, проверяет его и перезапускается за несколько секунд; его серверы продолжают работать. В Windows скопируйте новый jar поверх вручную.
- Удаление: Узлы → Удалить удаляет каждый сервер, резервную копию и скачанную Java на узле, предварительно спросив имя узла и ваш пароль. Узел не в сети можно только забыть; его файлы остаются.
| Код выхода | Значение |
|---|---|
| 75 | Подготовлено обновление — запустите снова |
| 76 | Этим каталогом уже пользуется другой демон |
| 78 | Удалён из Pano — не перезапускайте |
Pano Agent
Pano Agent передаёт Pano сервер, который у вас уже работает, прямо там, где он лежит: положите pano-agent.jar в папку сервера и запускайте его вместо jar сервера. Агент запускает сервер, показывает его консоль в вашем терминале и отдаёт остальное управление Pano. Ничего не переносится.
Добавить сервер → Подключить через Pano Agent показывает ссылку для скачивания и готовую команду:
cd /home/mc/survival
curl -fLo pano-agent.jar 'https://panel.example.com/api/node/pano-agent.jar'
# Остановите сервер и один раз выполните команду из окна (код срабатывает один раз и действует 1 минуту)
java -jar pano-agent.jar --pano 'https://panel.example.com' --code k7m2x9qa4tj3n8wp
# Каждый следующий запуск
java -jar pano-agent.jar- При первом запуске агент спрашивает jar сервера, память и аргументы Java; Enter оставляет значения по умолчанию, прочитанные из вашего скрипта запуска. На панели хостинга вроде Pterodactyl укажите
pano-agent.jarкак jar сервера и отвечайте в веб-консоли. stopостанавливает только сервер; агент продолжает работать, чтобы Pano могла запустить его снова. Ctrl+C останавливает оба.- Агент хранит свои данные в
.pano-agent/— не копируйте эту папку, когда копируете папку сервера для нового сервера. - Он обновляется сам, не останавливая сервер. Чтобы удалить его, удалите сервер в Pano и снова запускайте jar сервера напрямую.
Безопасность
- Узел сам подключается наружу к Pano; открывать на нём ничего не нужно.
- Каждое сообщение зашифровано AES-256-GCM — и всё же используйте HTTPS для узла на другой машине.
- Узел, сопряжённый по коду, должен быть одобрен в панели.
- Файлы не выходят за пределы папки каждого сервера, а серверы запускаются без оболочки.