fix(infra/caddy): site-блоки с секретами переживают деплой — import caddy/local/*.caddy #2921
3 changed files with 24 additions and 0 deletions
16
Caddyfile
16
Caddyfile
|
|
@ -504,3 +504,19 @@ git.gendsgn.ru {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
# Test deploy flow 2026-05-15T21:43:32Z
|
# Test deploy flow 2026-05-15T21:43:32Z
|
||||||
|
|
||||||
|
# ─────────────────────────────────────────────────────────────────────────────
|
||||||
|
# Локальные site-блоки, которых не может быть в git.
|
||||||
|
#
|
||||||
|
# Мотив: garmin.gendsgn.ru (личный remote MCP на этом же VPS). Апстрим-сервер
|
||||||
|
# аутентификации не имеет вовсе, а claude.ai custom connector ходит на голый URL
|
||||||
|
# без кастомных заголовков — единственный доступный рубеж это секрет в пути.
|
||||||
|
# Секрет в git класть нельзя, а блок, вписанный руками прямо сюда, сносится
|
||||||
|
# первым же деплоем (`git reset --hard origin/main`; 2026-08-16 так и вышло —
|
||||||
|
# контейнер остался жив, но хост пропал вместе со своим сертификатом).
|
||||||
|
#
|
||||||
|
# Поэтому: сам блок лежит на VPS как untracked `caddy/local/*.caddy` (reset
|
||||||
|
# --hard untracked не трогает), а в репозитории живёт только этот import.
|
||||||
|
# Пустой glob для Caddy не ошибка — `caddy validate` проходит, на машинах без
|
||||||
|
# локальных блоков строка просто ничего не делает.
|
||||||
|
import caddy/local/*.caddy
|
||||||
|
|
|
||||||
4
caddy/local/.gitignore
vendored
Normal file
4
caddy/local/.gitignore
vendored
Normal file
|
|
@ -0,0 +1,4 @@
|
||||||
|
# Локальные site-блоки Caddy с секретами (см. import в конце Caddyfile).
|
||||||
|
# Кладутся руками на VPS и намеренно не версионируются — в git только каталог.
|
||||||
|
*
|
||||||
|
!.gitignore
|
||||||
|
|
@ -423,6 +423,10 @@ services:
|
||||||
volumes:
|
volumes:
|
||||||
- ./Caddyfile:/etc/caddy/Caddyfile:ro
|
- ./Caddyfile:/etc/caddy/Caddyfile:ro
|
||||||
- ./caddy/users.caddy.snippet:/etc/caddy/caddy/users.caddy.snippet:ro
|
- ./caddy/users.caddy.snippet:/etc/caddy/caddy/users.caddy.snippet:ro
|
||||||
|
# Untracked локальные site-блоки (см. import в конце Caddyfile). Каталог
|
||||||
|
# держится в git через caddy/local/.gitignore — иначе docker создал бы
|
||||||
|
# отсутствующий bind-source сам, root-owned пустышкой.
|
||||||
|
- ./caddy/local:/etc/caddy/caddy/local:ro
|
||||||
- ./preview:/srv/preview:ro
|
- ./preview:/srv/preview:ro
|
||||||
- caddy_data:/data
|
- caddy_data:/data
|
||||||
- caddy_config:/config
|
- caddy_config:/config
|
||||||
|
|
|
||||||
Loading…
Add table
Reference in a new issue