Переменные окружения (.env)#

ПеременнаяНазначение
DOMAINИмя сайта в Caddyfile (SNI, TLS).
HTTP_PORT, HTTPS_PORTПроброс портов хост → контейнер :80 / :443.
BASIC_AUTH_ENABLEDtrue / false (и др.) — переключение Basic Auth (стартовый sh -c в docker-compose.yml, фрагменты в caddy/).
BASIC_AUTH_USER, BASIC_AUTH_HASHУчётная запись и bcrypt-хеш при включённой авторизации.
LOG_LEVELУровень логов Caddy.
TIMEZONEЧасовой пояс контейнера (TZ).
DATA_PATHПуть к данным на хосте (монтируется в /srv/docs).
PUBLISH_API_PORT, PUBLISH_API_TOKENS, PUBLISH_API_TRUST_X_HEADERS, …HTTP API публикации ZIP (см. раздел HTTP API публикации).

Подробнее — файл CONFIGURATION.md в корне репозитория.

Хеш пароля для Compose#

Строка bcrypt содержит символы $. В .env для Docker Compose каждый $ в значении BASIC_AUTH_HASH нужно удваивать ($$).

Интерактивно (запись в .env с удвоением $): bash scripts/hash-password.sh или .\scripts\hash-password.ps1.

Вручную:

docker run --rm caddy:2.8-alpine caddy hash-password -plaintext 'ВАШ_ПАРОЛЬ'

Caddyfile#

  • Корень сайта: /srv/docs/portal/public.
  • Префикс /docs/*: после снятия префикса файлы ищутся под /srv/docs (например /docs/easydocs/guide/data/easydocs/guide/).
  • По умолчанию используется tls internal (внутренний CA Caddy). Для Let’s Encrypt или корпоративного сертификата блок сайта нужно изменить под вашу инфраструктуру.

Базовый URL Hugo#

При размещении сайта в подкаталоге хаба (как это руководство в /docs/easydocs/guide/) у сборки Hugo должен быть согласованный baseURL (в CI передаётся флаг --baseURL /docs/easydocs/guide/).