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