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"

# Разрешить пользователям выбирать предпочтительный язык (по умолчанию: 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 сессий и других функций платформы.
  • allow-user-locale-selection: включает/отключает возможность выбора пользователями собственного языка из доступных локалей (по умолчанию: true). Можно управлять в Панель → Настройки → Платформа → Предпочтения.
  • register-agreement: определяет условия или правила, показываемые при регистрации пользователя. Это поле поддерживает HTML-теги для форматирования.
  • server-ip-address: отображается в вашей теме — игроки могут скопировать его и использовать для входа на ваш сервер Minecraft.

🗄️ Настройка базы данных

jsonc
database {
  type = "mariadb" # "mariadb" (для MySQL/MariaDB) или "portable"
  host = ""        # например, "127.0.0.1:3306"
  name = ""        # имя базы данных
  username = ""
  password = ""    # может быть пустым, если у вашей базы данных нет пароля
  prefix = "pano_" # префикс таблиц (не меняйте после установки)
}

Примечания

  • Типы баз данных:
    • mariadb: Тип по умолчанию, совместимый как с MySQL 5.5+, так и с MariaDB.
    • portable: Поддерживается только на Windows (x64 и ARM64). Автоматически управляется Pano (подробности см. в Руководстве по установке →).
  • Пароль может быть пустым, если аутентификация отключена.
  • Предупреждение: Изменение type или prefix после установки не поддерживается и потребует переустановки.

👤 Аккаунт Pano (необязательно)

jsonc
pano-account {
  username = ""
  email = ""
  access-token = ""   # защищенный токен для вашего аккаунта Pano
  platform-id = ""    # ID аккаунта
  
  connect {
    public-key = ""
    private-key = ""
    state = ""
  }
}

Важно

  • Если вы не уверены, что это делает, не редактируйте вручную.
  • Управляйте привязкой в разделе Панель → Настройки → Платформа.
  • Требуется для функций Маркетплейса (обновления, установка из магазина).
  • См. Подключите свой аккаунт Pano → для получения дополнительной информации.

🎨 Тема

jsonc
current-theme = "vanilla-theme"

Детали

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

✉️ Электронная почта (SMTP)

jsonc
email {
  enabled = false
  sender = ""      # например, "Pano <[email protected]>" - обычно должно совпадать с username
  hostname = ""    # например, "smtp.gmail.com"
  port = 465
  username = ""    # например, "[email protected]"
  password = ""
  ssl = true
  starttls = ""    # "DISABLED", "OPTIONAL" или "REQUIRED"
  authMethods = "" # необязательно, обычно "PLAIN"
}

Информация

  • Настраивается во время установки или позже через Панель → Настройки → Платформа.
  • Без SMTP восстановление пароля и письма с подтверждением не будут работать.

🌐 Настройки сервера

jsonc
server {
  host = "0.0.0.0"
  http-port = 80
  https-port = 443
  ssl-mode = "DISABLED" # "DISABLED", "LETS_ENCRYPT", "MANUAL"
  redirect-https = false
  ssl-cert = null # Необработанное содержимое сертификата (если MANUAL)
  ssl-key = null  # Необработанное содержимое закрытого ключа (если MANUAL)
}
  • host: 0.0.0.0 делает панель доступной для внешних сетей; 127.0.0.1 ограничивает доступ только локальным сервером.
  • http-port: Порт по умолчанию для HTTP-трафика (обычно 80).
  • https-port: Порт по умолчанию для HTTPS-трафика (обычно 443).
  • ssl-mode:
    • DISABLED: Сервер HTTPS не будет запущен.
    • LETS_ENCRYPT: Автоматически пытается получить и настроить SSL-сертификат. Примечание: Для работы этого режима должен быть настроен правильный website-url, http-port должен быть установлен на 80, а https-port — на 443.
    • MANUAL: Позволяет вам предоставить собственный сертификат и закрытый ключ напрямую через ssl-cert и ssl-key.
  • redirect-https: Если установлено значение true, весь HTTP-трафик будет автоматически перенаправляться на HTTPS.
  • Для продвинутых пользователей: Для сложных настроек вы всё равно можете использовать reverse proxy (Nginx, Apache) или Cloudflare.

🧩 Инициализация, UI и обновления

jsonc
init-ui = true
accept-plugin-auth = true
jwt-key = "<auto-generated-base64>"
update-period = "ONCE_PER_DAY" # "ONCE_PER_DAY", "ONCE_PER_WEEK" или "ONCE_PER_MONTH"
release-channel = "RELEASE" # "ALPHA", "BETA", "RELEASE"
console-history-limit = 50

Детали

  • init-ui: запускает мастер настройки, панель и движок тем при запуске.
  • accept-plugin-auth: включает/отключает подключение плагина Pano MC (по умолчанию: true). Можно управлять в модальном окне Подключить сервер. Для лучшей безопасности отключайте его, если он не используется.
  • jwt-key: автоматически сгенерированный Base64 ключ аутентификациине изменяйте вручную.
  • update-period: определяет частоту проверки обновлений.
  • release-channel: определяет, какому потоку обновлений следует Pano:
    • ALPHA: Ранний доступ к новым функциям. Высокий риск ошибок и ломающих изменений.
    • BETA: Функции перед выпуском с меньшим риском, чем в Alpha, но всё еще могут содержать ошибки.
    • RELEASE: Самая стабильная версия. Получает обновления реже, но обеспечивает максимальную надежность.
  • console-history-limit: определяет максимальное количество команд, хранящихся в истории терминала и графического интерфейса консоли (по умолчанию: 50, установите 0 для отключения).

📁 Загрузка файлов и пути

jsonc
file-uploads-folder = "file-uploads"

file-paths = {
  favicon {
    path = "uploads/favicon.png"
    hash = "<sha256-hash>"
  }
  websiteLogo {
    path = "uploads/logo.png"
    hash = "<sha256-hash>"
  }
}

Примечания

  • Управляется через Панель → Настройки → Веб-сайт.
  • Каждая запись — это объект FileInfo, содержащий:
    • path: Относительный путь к файлу.
    • hash: Хэш SHA-256, используемый Pano для проверки целостности файла.
  • Поддерживаются только две записи: favicon и websiteLogo.
  • Эти поля автоматически управляются Pano — ручные изменения будут перезаписаны при обновлении или изменении настроек.

🔗 URL-адреса сервисов Pano (не изменять)

jsonc
pano-api-url = "..."     # устанавливается автоматически в зависимости от среды
pano-website-url = "..."
  • Эти адреса управляются Pano автоматически.
  • Изменение этих параметров может нарушить связь с экосистемой Pano.

🧱 Прогресс настройки (внутренний)

jsonc
setup {
  step = 0
}

Использование

  • Отслеживает прогресс установки.
  • Всегда останавливайте Pano перед редактированием.
  • step = 0: перезапускает мастер настройки.
  • step = 5: отмечает настройку как завершенную.
  • Редактируйте только по указанию службы поддержки; неправильные изменения могут привести к поломке установки.

✅ Контрольный список для продакшена

  • development-mode = false
  • Порт 80 (TCP) открыт и доступен
  • HTTPS включен (через Pano SSL или Reverse Proxy) и открыт порт 443 (TCP)
  • Безопасный и приватный jwt-key
  • Настроены корректные учетные данные SMTP
  • Префикс базы данных не менялся после установки
  • Установлен правильный ID темы или используется Vanilla Theme по умолчанию
  • Регулярное резервное копирование базы данных и загруженных файлов

🧪 Пример минимальной конфигурации

jsonc
development-mode = false
locale = "ru"

website-name = "Мой потрясающий сервер"
website-description = "Survival • Ивенты • Дружное сообщество"
support-email = "[email protected]"

server-ip-address = "mc.myserver.com"
server-game-version = "1.20.x"

database {
  host = "127.0.0.1:3306"
  name = "pano_prod"
  username = "pano_user"
  password = ""
  prefix = "pano_"
}

current-theme = "vanilla-theme"

email {
  enabled = true
  sender = "Pano <[email protected]>"
  hostname = "smtp.myserver.com"
  port = 465
  username = "[email protected]"
  password = "ЗАМЕНИТЕ_МЕНЯ"
  ssl = true
}

server {
  host = "0.0.0.0"
  port = 80
}

🔄 После редактирования

  • Сохраните файл и перезапустите Pano после редактирования.
  • Избегайте изменения автоматически генерируемых полей (например, jwt-key, config-version).
  • Проверьте наличие синтаксических ошибок, если запуск не удался.
  • Всегда делайте резервную копию перед обновлением или переустановкой.

Нужна помощь? Посетите FAQ, присоединяйтесь к нашему сообществу Discord или сообщайте о проблемах на GitHub.