doc: add a checklist

This commit is contained in:
Oleg Proskurin 2025-12-24 01:02:13 +07:00
parent 970a0f75c6
commit 809eb4ebac
1 changed files with 187 additions and 0 deletions

View File

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