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

188 lines
5.6 KiB
Markdown
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

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