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