Files
chatballs/docs/deployment-overrides.ru.md
T
Andrey 91fab586fa ✨ feat(deploy): сохранить override и постоянные dev-окружения
Сохранить порядок дополнительных Compose-файлов при обновлении и подключать их помощнику на чтение. Добавить проверки override, постоянных каталогов dev-данных и документацию проекта. Явно задать русский язык в тестах русских подписей.
2026-10-01 18:18:58 +03:00

2.8 KiB

Установка за существующим nginx

Если порты 80 и 443 уже заняты nginx, он может обслуживать HTTPS-домен Chatballs и передавать запросы шлюзу установки по локальному HTTP-порту.

Создайте рядом с релизным compose.yaml файл compose.override.yaml:

services:
  gateway:
    ports: !override
      - "127.0.0.1:8443:80"

Требуется Docker Compose 2.24.4 или новее. !override заменяет весь список портов: исходные публикации 80 и 443 не сохраняются. Здесь 8443 — внутренний HTTP-порт, а не внешний HTTPS-порт.

Запустите установку с обоими файлами:

docker compose -f compose.yaml -f compose.override.yaml up -d --wait

Внешний nginx завершает HTTPS и проксирует запросы на http://127.0.0.1:8443, сохраняя Host, передавая X-Forwarded-Proto и поддерживая WebSocket. Сертификат и HTTP → HTTPS редирект обслуживает внешний nginx. Открывайте мастер первого запуска по окончательному HTTPS-домену без внутреннего порта.

Обновления из интерфейса

Updater берёт список Compose-файлов из меток работающего контейнера. Первый файл заменяется новым релизом; дополнительные файлы сохраняются в исходном порядке. Поддерживаются стандартный compose.override.yaml и файлы с другими именами, явно переданные через -f.

Override должен быть применён при запуске установки. Файл, который просто лежит рядом, но не входит в конфигурацию работающего проекта, при обновлении автоматически не подключается.

Каталог установки и дополнительные файлы доступны помощнику обновления только на чтение. Это сохраняет разрешение .env, относительных env_file и путей конфигурации. Файлы override должны оставаться доступными по тем же путям. Пропавший или некорректный override останавливает обновление до перезапуска сервисов. Релиз перезаписывает только основной compose.yaml.