Skip to content

Руководство по настройке ​

Pano использует файл конфигурации в формате HOCON (Human-Optimized Config Object Notation) для управления своими настройками.
HOCON похож на JSON, но его легче читать — он поддерживает комментарии, строки без кавычек и висячие запятые.
Подробнее о формате:
Документация Lightbend HOCON

При первом запуске Pano автоматически создает файл конфигурации с именем config.conf в той же директории, что и ваш Pano-<версия>.jar.
По умолчанию Pano ищет этот файл с помощью:

kotlin
System.getProperty("pano.configFile", "config.conf")

Это означает, что вы можете указать собственный путь к конфигурации, используя параметр JVM -Dpano.configFile, например:

bash
java -Dpano.configFile=/path/to/custom.conf -jar Pano-1.0.0.jar

Если путь не указан, Pano будет использовать файл config.conf по умолчанию в той же папке, что и JAR-файл.

Во время процесса установки некоторые значения, такие как данные базы данных, учетные данные администратора и URL-адреса, автоматически записываются или перезаписываются.
Если вы измените их вручную, Pano может перезаписать их во время запуска или будущих обновлений.
Редактируйте только то, что понимаете, и всегда делайте резервную копию перед внесением изменений.

Автоматические миграции ​

При каждом запуске Pano проверяет поле config-version в вашей конфигурации. Если версия в файле старше требований текущей версии Pano, приложение автоматически выполнит необходимые миграции. Это гарантирует, что ваша конфигурация и база данных останутся совместимыми с последними функциями и обновлениями безопасности без ручного вмешательства.

Общие настройки ​

jsonc
# Версия конфигурации, используемая для миграций (НЕ меняйте вручную)
config-version = <int>

# Включить или отключить режим разработки (по умолчанию: false)
development-mode = false

# Код языка интерфейса (добавляется/редактируется через панель администратора)
locale = "en-US"

# Публичный URL вашего веб-сайта (требуется для писем, файлов cookie и т. д.)
website-url = "http://yourdomain.com"

# Как используется эта установка: "WEBSITE", "SERVERS" или "BOTH" (по умолчанию: "BOTH")
usage-mode = "BOTH"

# Разрешить пользователям выбирать предпочтительный язык (по умолчанию: true)
allow-user-locale-selection = true

# Соглашение о регистрации, показываемое пользователям (поддерживает HTML)
register-agreement = ""

# Название и описание веб-сайта
website-name = ""
website-description = ""

# Email службы поддержки, используемый для уведомлений и сброса пароля
support-email = ""

# Информация о сервере Minecraft, показываемая игрокам
server-ip-address = "play.ipadress.com"
server-game-version = "1.8.x"

# SEO ключевые слова
keywords = []

Советы

  • config-version: используется внутри для миграций — не переименовывайте и не редактируйте его.
  • development-mode: по умолчанию false для производительности и безопасности; устанавливайте true только для отладки.
  • locale: используйте короткие коды, такие как en-US, ru или tr (языки можно добавить в панели).
  • website-url: базовый URL вашего сайта. Это обязательно для генерации системных писем, управления файлами cookie сессий и других функций платформы.
  • usage-mode: как используется эта установка. Значение выбирается на первом экране мастера настройки и в любой момент меняется в разделе Панель → Настройки → Платформа → Предпочтения (три выбираемых блока).
    • "WEBSITE": только веб-сайт — классический вариант Pano. Управление серверами отключается вместе со страницами и API. Привязка сервера Minecraft через Pano MC Plugin продолжает работать, а уже сопряжённые узлы продолжают запускать свои серверы.
    • "SERVERS": только управление серверами Minecraft — продуктом становится панель. Посты, Тикеты и Просмотр (темы) отключаются вместе со страницами и API, а все публичные адреса перенаправляются на /panel. При обратном переключении они возвращаются без перезапуска; существующие посты и тикеты сохраняются.
    • "BOTH": веб-сайт + управление серверами. Значение по умолчанию; существующие установки мигрируют именно на него — их поведение не меняется.
    • В режиме "SERVERS" Pano вообще не запускает процесс темы: посетители без входа видят на любом адресе панели её собственную форму входа, и войти могут только аккаунты с доступом к панели. Переключение режима здесь запускает или останавливает тему без перезапуска.
  • allow-user-locale-selection: включает/отключает возможность выбора пользователями собственного языка из доступных локалей (по умолчанию: true). Можно управлять в Панель → Настройки → Платформа → Предпочтения.
  • register-agreement: определяет условия или правила, показываемые при регистрации пользователя. Это поле поддерживает HTML-теги для форматирования.
  • server-ip-address: отображается в вашей теме — игроки могут скопировать его и использовать для входа на ваш сервер Minecraft.

Нужно на время отключить публичный сайт? У блока maintenance есть отдельная страница: Режим обслуживания →.

Тема ​

jsonc
current-theme = "vanilla-theme"

Детали

  • Определяет, какая тема активна.
  • Если используется неверный ID темы, Pano возвращается к vanilla-theme.
  • Можно изменить через Панель → Вид → Темы.

Подключение Minecraft-сервера ​

jsonc
mc-server-connection {
  heartbeat-interval-seconds = 25
  heartbeat-timeout-seconds = 75
}

Детали

  • Heartbeat на уровне приложения, который сам Pano отправляет каждому подключённому Minecraft-серверу (через pano-mc-plugin). Это отдельно от — и в дополнение к — собственным heartbeat-interval / heartbeat-timeout плагина в его собственном config.conf: обе стороны отправляют ping независимо, каждая по своему расписанию. О том, как эти два heartbeat'а взаимодействуют с тайм-аутом простоя обратного прокси, см. Обратный прокси: поддержание WebSocket-соединения.
  • heartbeat-interval-seconds: количество секунд между heartbeat-ping, которые Pano отправляет каждому подключённому Minecraft-серверу. По умолчанию 25.
  • heartbeat-timeout-seconds: сколько секунд ждать pong, прежде чем Pano сочтёт соединение с этим Minecraft-сервером мёртвым и закроет его. По умолчанию 75.
  • Оба значения проверяются при запуске: heartbeat-interval-seconds должен быть больше 0 и не больше 55; heartbeat-timeout-seconds должен быть как минимум вдвое больше интервала. Пара, выходящая за эти границы, не отклоняется молча — Pano записывает предупреждение и возвращается к значениям по умолчанию 25s / 75s для обоих параметров вместо отказа при запуске. Про (чуть более строгое) правило стороны плагина см. Обратный прокси: поддержание WebSocket-соединения.

Локальный узел (Local Node) ​

jsonc
local-node {
  enabled = true
  jar-path = null
  java-path = null
  stop-with-pano = false
}

Детали

  • Демон pano-node, который Pano запускает на своей собственной машине, — см. Добавление узла →.
  • enabled: false полностью запрещает Pano запускать локальный узел. По умолчанию true.
  • jar-path: явный путь к pano-node.jar; Pano его никогда не заменяет. Пустое значение: Pano ищет jar рядом с собой и в рабочем каталоге и распаковывает туда копию, встроенную в его собственный jar.
  • java-path: каталог Java 11+ (или его бинарник java) для демона. Пустое значение означает, что демон работает на той же Java, что и Pano.
  • stop-with-pano: останавливать демон вместе с Pano. По умолчанию false, так что серверы продолжают работать при перезапуске Pano.

Управляемые серверы (Managed Servers) ​

jsonc
managed-servers {
  plugin-jar-dir = null
  node-auto-update = true
  accept-agent-links = true
}

Детали

  • Настройки серверов, которые Pano запускает через узел, — см. Управление серверами →.
  • plugin-jar-dir: папка с локально собранными jar-файлами pano-mc-plugin, которые ставятся вместо опубликованного выпуска. Только для разработки плагина; оставьте пустым.
  • node-auto-update: обновлять узлы и Pano Agent до версии демона самой Pano, когда они подключаются с более старой. Серверы продолжают работать. По умолчанию true. Панель → Настройки → Обновления меняет этот же ключ.
  • accept-agent-links: принимать новые подключения Pano Agent. По умолчанию true. При false ни один новый агент не может выполнить сопряжение; уже подключённые агенты продолжают работать.

Источники плагинов (Plugin Sources) ​

jsonc
plugin-sources {
  curseforge-api-key = null
}

Детали

  • Сайты плагинов, по которым ищет вкладка Каталог сервера, — см. Плагины и моды →.
  • Modrinth и Hangar не требуют ключа.
  • curseforge-api-key: ваш собственный ключ с console.curseforge.com включает CurseForge. Пустое значение оставляет его выключенным.