Переменная домена валидна при слаге с дефисом.{$<SLUG>_DOMAIN} строилась как project_slug | upper: при слаге cars-system выходило {$CARS-SYSTEM_DOMAIN} — такую переменную не задать в env. Теперь дефисы → _: {$CARS_SYSTEM_DOMAIN} (в site.caddy, .env.example, README). Для snake_case-слагов ничего не меняется. Проверено: рендер с project_slug=cars-system проходит caddy validate в caddy:2-alpine; на main — {$CARS-SYSTEM_DOMAIN}.
.gitignore: Caddyfile → /Caddyfile. Без якоря правило в caddy/ прятало любой файл с этим именем ниже; локальный Caddyfile лежит только в caddy/.
**Не сливать без решения человека.**
- **Переменная домена валидна при слаге с дефисом.** `{$<SLUG>_DOMAIN}` строилась как `project_slug | upper`: при слаге `cars-system` выходило `{$CARS-SYSTEM_DOMAIN}` — такую переменную не задать в env. Теперь дефисы → `_`: `{$CARS_SYSTEM_DOMAIN}` (в `site.caddy`, `.env.example`, README). Для snake_case-слагов ничего не меняется. Проверено: рендер с `project_slug=cars-system` проходит `caddy validate` в `caddy:2-alpine`; на `main` — `{$CARS-SYSTEM_DOMAIN}`.
- **`.gitignore`: `Caddyfile` → `/Caddyfile`.** Без якоря правило в `caddy/` прятало любой файл с этим именем ниже; локальный Caddyfile лежит только в `caddy/`.
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Blocking a user prevents them from interacting with repositories, such as opening or commenting on pull requests or issues. Learn more about blocking a user.
Не сливать без решения человека.
{$<SLUG>_DOMAIN}строилась какproject_slug | upper: при слагеcars-systemвыходило{$CARS-SYSTEM_DOMAIN}— такую переменную не задать в env. Теперь дефисы →_:{$CARS_SYSTEM_DOMAIN}(вsite.caddy,.env.example, README). Для snake_case-слагов ничего не меняется. Проверено: рендер сproject_slug=cars-systemпроходитcaddy validateвcaddy:2-alpine; наmain—{$CARS-SYSTEM_DOMAIN}..gitignore:Caddyfile→/Caddyfile. Без якоря правило вcaddy/прятало любой файл с этим именем ниже; локальный Caddyfile лежит только вcaddy/.🤖 Generated with Claude Code