Конфигурация контейнера
В контейнере Pano хранит всё в томе /data и может брать настройки базы данных и почты из переменных окружения вместо мастера настройки.
Том /data
/data — единственное место, куда пишет Pano. Смонтируйте туда том или папку и делайте резервные копии.
В /data | Что это |
|---|---|
Pano-<version>.jar и UI | Релиз Pano. Полный образ копирует сюда свой jar при первом запуске |
.pano-jar | Имя файла jar, который запускает лаунчер. См. Режим контейнера |
config.conf | Файл конфигурации Pano |
plugins/, загрузки, логи | Всё, что Pano создаёт во время работы |
Остальная часть контейнера может быть только для чтения: Pano нужны лишь /data и временный /tmp. Так Pano Host запускает каждый Pano Instance.
Образ работает от uid 10000. Именованный том работает сразу; папка на хосте должна быть доступна этому пользователю на запись (chown -R 10000:10000 <папка>), либо укажите свой --user.
Переменные окружения
При первом запуске Pano записывает эти переменные в config.conf, поэтому сразу знает свою базу данных и почтовый сервер. Последующие изменения игнорируются; меняйте настройки в панели. Все переменные необязательны.
| Переменная | Задаёт |
|---|---|
PANO_DB_HOST, PANO_DB_PORT (3306) | Сервер базы данных |
PANO_DB_NAME, PANO_DB_USER, PANO_DB_PASSWORD | База данных и её пользователь |
PANO_SMTP_HOST, PANO_SMTP_PORT (587) | SMTP-сервер |
PANO_SMTP_USER, PANO_SMTP_PASSWORD | Вход SMTP |
PANO_SMTP_FROM, PANO_SMTP_STARTTLS | Адрес отправителя, STARTTLS вкл. или выкл. |
PANO_HTTP_PORT | Порт, который Pano слушает внутри контейнера (8088) |
PANO_JVM_ARGS | Параметры Java через пробел (-XX:MaxRAMPercentage=75) |
Пример:
docker run -d --name pano \
-e PANO_DB_HOST=mariadb \
-e PANO_DB_NAME=pano \
-e PANO_DB_USER=pano \
-e PANO_DB_PASSWORD=change-me \
-v pano-data:/data \
ghcr.io/panomc/pano:latestНе оставляйте пароли в истории оболочки: используйте --env-file или секреты вашего оркестратора.
Переменные Pano Host
Pano Host задаёт ещё несколько переменных. Для собственных установок они не нужны.
| Переменная | Назначение |
|---|---|
PANO_HOSTED | pano-host помечает инстанс как управляемый Pano Host. Только информационно: панель показывает «управляется Pano Host» и уведомления о квотах, ничего не блокируется |
PANO_HOST_WORKLOAD_ID | Идентификатор инстанса в Pano Host |
PANO_HOST_INSTANCE_SECRET | Позволяет инстансу принимать входы в панель с panomc.com и читать свои уведомления |
PANO_HOST_API_URL | Адрес API Pano Host |
Старые версии Pano игнорируют все эти переменные.
config.conf
Pano перезаписывает config.conf при завершении работы. Правка, сделанная во время работы контейнера, пропадёт при следующей остановке. Чтобы изменить настройку вручную:
- Остановите контейнер (
docker stop pano) и дождитесь его завершения. - Отредактируйте
/data/config.conf. - Снова запустите контейнер.
Настройки, доступные в панели, безопаснее менять там. Для старых версий Pano без поддержки переменных окружения подходит тот же порядок: запустите один раз, чтобы Pano создал config.conf, остановите, добавьте настройки, запустите.