gendesign/.claude/rules/deploy.md
lekss361 ac86e288aa chore(claude-config): align with 2026 best practices
- CLAUDE.md: 97->63 lines, drop dev-commands and Don't duplicates
  already covered by .claude/rules/*
- git-pr.md, deploy.md: replace gh CLI with Forgejo MCP/curl
- code-reviewer.md: fix mcp__postgres__ -> mcp__postgres-gendesign__
- tech-analyst.md: sonnet -> haiku
- deep-code-reviewer.md: 391->135 lines, phase details split into
  .claude/agents/deep-review-phases/ (loaded on demand)
- qa-tester, code-reviewer, deep-code-reviewer: add memory: project
- ui-ux.md: split into ui-tokens/ui-conventions/ui-microcopy
- scripts/claude-hooks/check-no-print.py + PostToolUse hook
- .gitignore: explicit list (git whitelist limitation)
2026-05-24 11:42:24 +03:00

2 KiB
Raw Blame History

paths
docker-compose*.yml
Caddyfile
.github/workflows/**
.forgejo/workflows/**
scripts/setup-*.sh

Deploy conventions

GHA path triggers

  • backend/**, frontend/**, Caddyfile, docker-compose.prod.yml, data/sql/*.sqldeploy.yml (main stack)
  • docker-compose.obsidian.yml, scripts/setup-couchdb.shdeploy-obsidian.yml
  • docs/** alone → НЕ триггерит деплой

После изменения .env на VPS

docker compose up -d --force-recreate --no-deps <service>

docker compose restart НЕ перечитывает env_file.

Caddyfile

Bind-mounted → нужен явный caddy reload после изменения. deploy.yml делает автоматически после compose up -d.

Sentry release tracking

SENTRY_RELEASE=$IMAGE_TAG пишется в backend/.env.runtime на VPS через sedне полная перезапись файла (там user-managed COUCHDB_PASSWORD и пр.).

VPS git state

deploy.yml делает git reset --hard origin/main → любые ручные правки в /opt/gendesign стираются. .env-файлы выживают (в .gitignore).

DB migrations через deploy

data/sql/NN_*.sql применяются до compose up -d. Если SQL падает → deploy останавливается (exit 1), containers не обновляются.

Diagnose: GHA log "Apply DB migrations". См. .claude/rules/sql.md для migration order.

Запреты

  • Менять env_file секреты в docker-compose*.yml — секреты через VPS .env файлы
  • Полностью перезаписывать .env.runtime — только sed для конкретных переменных
  • git pull на VPS вручную — deploy.yml уже делает git reset --hard
  • Hardcode tags / SHA в compose files — ${IMAGE_TAG} через env