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

47 lines
2.8 KiB
Markdown

# Установка за существующим nginx
Если порты 80 и 443 уже заняты nginx, он может обслуживать HTTPS-домен
Chatballs и передавать запросы шлюзу установки по локальному HTTP-порту.
Создайте рядом с релизным `compose.yaml` файл `compose.override.yaml`:
```yaml
services:
gateway:
ports: !override
- "127.0.0.1:8443:80"
```
Требуется Docker Compose 2.24.4 или новее. `!override` заменяет весь список
портов: исходные публикации 80 и 443 не сохраняются. Здесь 8443 — внутренний
HTTP-порт, а не внешний HTTPS-порт.
Запустите установку с обоими файлами:
```bash
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`.