Руководство по настройке
Pano использует файл конфигурации в формате HOCON (Human-Optimized Config Object Notation) для управления своими настройками.
HOCON похож на JSON, но его легче читать — он поддерживает комментарии, строки без кавычек и висячие запятые.
Подробнее о формате:
👉 Документация Lightbend HOCON
При первом запуске Pano автоматически создает файл конфигурации с именем config.conf в той же директории, что и ваш Pano-<версия>.jar.
По умолчанию Pano ищет этот файл с помощью:
System.getProperty("pano.configFile", "config.conf")Это означает, что вы можете указать собственный путь к конфигурации, используя параметр JVM -Dpano.configFile, например:
java -Dpano.configFile=/path/to/custom.conf -jar Pano-1.0.0.jarЕсли путь не указан, Pano будет использовать файл config.conf по умолчанию в той же папке, что и JAR-файл.
Во время процесса установки некоторые значения, такие как данные базы данных, учетные данные администратора и URL-адреса, автоматически записываются или перезаписываются.
Если вы измените их вручную, Pano может перезаписать их во время запуска или будущих обновлений.
Редактируйте только то, что понимаете, и всегда делайте резервную копию перед внесением изменений.
🪄 Автоматические миграции
При каждом запуске Pano проверяет поле config-version в вашей конфигурации. Если версия в файле старше требований текущей версии Pano, приложение автоматически выполнит необходимые миграции. Это гарантирует, что ваша конфигурация и база данных останутся совместимыми с последними функциями и обновлениями безопасности без ручного вмешательства.
🔤 Общие настройки
# Версия конфигурации, используемая для миграций (НЕ меняйте вручную)
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.
🗄️ Настройка базы данных
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 (необязательно)
pano-account {
username = ""
email = ""
access-token = "" # защищенный токен для вашего аккаунта Pano
platform-id = "" # ID аккаунта
connect {
public-key = ""
private-key = ""
state = ""
}
}Важно
- Если вы не уверены, что это делает, не редактируйте вручную.
- Управляйте привязкой в разделе Панель → Настройки → Платформа.
- Требуется для функций Маркетплейса (обновления, установка из магазина).
- См. Подключите свой аккаунт Pano → для получения дополнительной информации.
🎨 Тема
current-theme = "vanilla-theme"Детали
- Определяет, какая тема активна.
- Если используется неверный ID темы, Pano возвращается к
vanilla-theme. - Можно изменить через Панель → Вид → Темы.
✉️ Электронная почта (SMTP)
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 восстановление пароля и письма с подтверждением не будут работать.
🌐 Настройки сервера
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 и обновления
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для отключения).
📁 Загрузка файлов и пути
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 (не изменять)
pano-api-url = "..." # устанавливается автоматически в зависимости от среды
pano-website-url = "..."- Эти адреса управляются Pano автоматически.
- Изменение этих параметров может нарушить связь с экосистемой Pano.
🧱 Прогресс настройки (внутренний)
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 по умолчанию
- Регулярное резервное копирование базы данных и загруженных файлов
🧪 Пример минимальной конфигурации
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.