banatie-service/infrastructure/validate-against-vps.md

5.6 KiB
Raw Permalink Blame History

Задание: Валидация 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

# Посмотреть реальный файл
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

# Посмотреть реальные переменные (без секретов)
cat /opt/banatie/.env

Что проверить:

  • Все переменные присутствуют
  • Значения по умолчанию корректны
  • Нет лишних/устаревших переменных

Действие: Обновить .env.example если нужно


3. Сравнить secrets.env структуру

Файл в репо: infrastructure/secrets.env.example Файл на VPS: /opt/banatie/secrets.env

# Посмотреть только имена переменных (БЕЗ значений!)
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

cat /opt/banatie/scripts/init-db.sql

Что проверить:

  • GRANT команды совпадают
  • Имя пользователя корректное (banatie_user)

5. Проверить Caddyfile (для документации)

Файл на VPS: /opt/services/configs/caddy/Caddyfile

# Извлечь только 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

# Проверить что скрипты работают
head -20 ~/workspace/projects/banatie-service/scripts/deploy-landing.sh
head -20 ~/workspace/projects/banatie-service/scripts/deploy-api.sh

Что проверить:

  • Пути корректные
  • Команды docker compose правильные

7. Проверить текущий статус сервисов

# Статус контейнеров
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

Записать в документацию если есть проблемы.


Формат отчёта

После выполнения создай краткий отчёт:

## Результаты валидации

### Расхождения найдены:
- [ ] docker-compose.production.yml — описание
- [ ] .env.example — описание
- [ ] ...

### Файлы обновлены:
- файл1.md
- файл2.yml

### Статус сервисов:
- Landing: OK/ERROR
- API: OK/ERROR
- MinIO: OK/ERROR
- PostgreSQL: OK/ERROR

После выполнения

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. При серьёзных расхождениях — сначала спросить перед изменениями