From 809eb4ebac722ea4067dabaa8829a03427218b99 Mon Sep 17 00:00:00 2001 From: Oleg Proskurin Date: Wed, 24 Dec 2025 01:02:13 +0700 Subject: [PATCH] doc: add a checklist --- infrastructure/validate-against-vps.md | 187 +++++++++++++++++++++++++ 1 file changed, 187 insertions(+) create mode 100644 infrastructure/validate-against-vps.md diff --git a/infrastructure/validate-against-vps.md b/infrastructure/validate-against-vps.md new file mode 100644 index 0000000..a9695aa --- /dev/null +++ b/infrastructure/validate-against-vps.md @@ -0,0 +1,187 @@ +# Задание: Валидация production конфигов против реальных данных VPS + +> Для выполнения: Claude Code на VPS +> Создано: December 24, 2025 +> Репозиторий: ~/workspace/projects/banatie-service + +## Цель + +Сравнить файлы в `infrastructure/` с реальными конфигами на VPS (`/opt/banatie/`) и обновить репозиторий при расхождениях. + +## Контекст + +Файлы в `infrastructure/` были созданы на основе чата о деплое, но могут не полностью соответствовать реальным конфигам на VPS. Нужно синхронизировать их с production. + +--- + +## Задачи + +### 1. Сравнить docker-compose.yml + +**Файл в репо:** `infrastructure/docker-compose.production.yml` +**Файл на VPS:** `/opt/banatie/docker-compose.yml` + +```bash +# Посмотреть реальный файл +cat /opt/banatie/docker-compose.yml +``` + +**Что проверить:** +- [ ] Имена сервисов совпадают +- [ ] Networks правильные (особенно `services_proxy-network` vs `proxy-network`) +- [ ] Volumes пути совпадают +- [ ] Environment variables +- [ ] Healthcheck команды +- [ ] Build context путь + +**Действие:** Если есть расхождения — обновить `infrastructure/docker-compose.production.yml` + +--- + +### 2. Сравнить .env переменные + +**Файл в репо:** `infrastructure/.env.example` +**Файл на VPS:** `/opt/banatie/.env` + +```bash +# Посмотреть реальные переменные (без секретов) +cat /opt/banatie/.env +``` + +**Что проверить:** +- [ ] Все переменные присутствуют +- [ ] Значения по умолчанию корректны +- [ ] Нет лишних/устаревших переменных + +**Действие:** Обновить `.env.example` если нужно + +--- + +### 3. Сравнить secrets.env структуру + +**Файл в репо:** `infrastructure/secrets.env.example` +**Файл на VPS:** `/opt/banatie/secrets.env` + +```bash +# Посмотреть только имена переменных (БЕЗ значений!) +cat /opt/banatie/secrets.env | grep -E '^[A-Z_]+=' | cut -d'=' -f1 +``` + +**Что проверить:** +- [ ] Все секреты перечислены в примере +- [ ] Нет лишних/устаревших секретов + +**Действие:** Обновить `secrets.env.example` если нужно (только имена, не значения!) + +--- + +### 4. Проверить init-db.sql + +**Файл в репо:** `infrastructure/init-db.sql` +**Файл на VPS:** `/opt/banatie/scripts/init-db.sql` + +```bash +cat /opt/banatie/scripts/init-db.sql +``` + +**Что проверить:** +- [ ] GRANT команды совпадают +- [ ] Имя пользователя корректное (banatie_user) + +--- + +### 5. Проверить Caddyfile (для документации) + +**Файл на VPS:** `/opt/services/configs/caddy/Caddyfile` + +```bash +# Извлечь только Banatie секцию +grep -A 50 "BANATIE" /opt/services/configs/caddy/Caddyfile +``` + +**Что проверить:** +- [ ] Конфиг в `docs/deployment.md` соответствует реальному +- [ ] Все домены правильные + +**Действие:** Обновить секцию Caddy в `docs/deployment.md` если нужно + +--- + +### 6. Проверить deploy скрипты + +**Файлы в репо:** `scripts/deploy-landing.sh`, `scripts/deploy-api.sh` + +```bash +# Проверить что скрипты работают +head -20 ~/workspace/projects/banatie-service/scripts/deploy-landing.sh +head -20 ~/workspace/projects/banatie-service/scripts/deploy-api.sh +``` + +**Что проверить:** +- [ ] Пути корректные +- [ ] Команды docker compose правильные + +--- + +### 7. Проверить текущий статус сервисов + +```bash +# Статус контейнеров +docker ps --filter "name=banatie" --format "table {{.Names}}\t{{.Status}}\t{{.Ports}}" + +# Проверить endpoints +curl -s https://api.banatie.app/health | jq +curl -s -o /dev/null -w "%{http_code}" https://banatie.app +``` + +**Записать в документацию** если есть проблемы. + +--- + +## Формат отчёта + +После выполнения создай краткий отчёт: + +```markdown +## Результаты валидации + +### Расхождения найдены: +- [ ] docker-compose.production.yml — описание +- [ ] .env.example — описание +- [ ] ... + +### Файлы обновлены: +- файл1.md +- файл2.yml + +### Статус сервисов: +- Landing: OK/ERROR +- API: OK/ERROR +- MinIO: OK/ERROR +- PostgreSQL: OK/ERROR +``` + +--- + +## После выполнения + +```bash +cd ~/workspace/projects/banatie-service + +# Проверить изменения +git status +git diff + +# Закоммитить если есть изменения +git add infrastructure/ docs/ +git commit -m "fix: sync production configs with VPS reality" +git push +``` + +--- + +## Важно + +1. **НЕ копировать секреты** в репозиторий — только имена переменных +2. **НЕ менять** реальные конфиги на VPS — только обновлять файлы в репо +3. При серьёзных расхождениях — сначала спросить перед изменениями