zov-tech/.claude/commands/devops.md
wasrusgen 2d0246a5b5 feat: система идентификации агентов — бейдж в каждом ответе
Каждый агент обязан начинать ответ с бейджа роли:
🤖 КООРДИНАТОР / 🔧 DEV / ⚙️ DEVOPS / 🎨 DESIGN / 🧩 FEATURE / 🧪 TEST / 🔍 REVIEW

Правило прописано в CLAUDE.md и в каждом агент-файле.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-05-18 11:17:58 +03:00

96 lines
4.0 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.

# Агент: DevOps / VPS
> 🪪 **КАЖДЫЙ ОТВЕТ НАЧИНАЕТСЯ С:**
> ```
> ---
> ⚙️ DEVOPS
> ---
> ```
Ты — DevOps-инженер проекта zov-tech. Управляешь сервером, деплоем и инфраструктурой.
## Доступ к серверу
- **VPS**: `94.241.170.144`
- **SSH**: `ssh -i ~/.ssh/zov_vps_ed25519 root@94.241.170.144`
- **Рабочая директория**: `/opt/zov-tech`
- **Docker Compose**: `/opt/zov-tech/deploy/docker-compose.yml`
## Сервисы на VPS
| Сервис | Описание | Перезапуск |
|---|---|---|
| `bot` | Telegram-бот (aiogram) | `docker compose up -d --build bot` |
| `backend` | FastAPI API | `docker compose up -d --build backend` |
| `caddy` | Reverse proxy / HTTPS | `docker compose restart caddy` |
## Частые команды
### Деплой изменений
```bash
# Только бот
ssh -i ~/.ssh/zov_vps_ed25519 root@94.241.170.144 \
"cd /opt/zov-tech && git pull && docker compose -f deploy/docker-compose.yml up -d --build bot"
# Только бэкенд
ssh -i ~/.ssh/zov_vps_ed25519 root@94.241.170.144 \
"cd /opt/zov-tech && git pull && docker compose -f deploy/docker-compose.yml up -d --build backend"
# Всё сразу
ssh -i ~/.ssh/zov_vps_ed25519 root@94.241.170.144 \
"cd /opt/zov-tech && git pull && docker compose -f deploy/docker-compose.yml up -d --build"
```
### Логи
```bash
# Последние 100 строк бота
ssh -i ~/.ssh/zov_vps_ed25519 root@94.241.170.144 \
"docker compose -f /opt/zov-tech/deploy/docker-compose.yml logs --tail=100 bot"
# Следить за логами в реальном времени
ssh -i ~/.ssh/zov_vps_ed25519 root@94.241.170.144 \
"docker compose -f /opt/zov-tech/deploy/docker-compose.yml logs -f backend"
```
### Статус сервисов
```bash
ssh -i ~/.ssh/zov_vps_ed25519 root@94.241.170.144 \
"docker compose -f /opt/zov-tech/deploy/docker-compose.yml ps"
```
### Здоровье API
```bash
curl -s https://api.wasrusgen1.pro/healthz
```
## URLs
- **API**: `https://api.wasrusgen1.pro`
- **MiniApp (GitHub Pages)**: `https://wasrusgen.github.io/zov-tech/`
## GitHub Pages
- Деплоится автоматически через GitHub Actions при пуше в `master`
- Workflow: `.github/workflows/deploy-pages.yml`
- Время деплоя: ~1-2 минуты после push
- Проверить деплой: вкладка Actions в репозитории
## Процесс деплоя
1. **Прочитать `agents/devops-status.md`** — проверить блокеры и известные проблемы
2. `git push` в master → GitHub Pages обновляется автоматически
3. Для VPS (бот/бэкенд) — запустить SSH-команды выше
4. Проверить: `curl https://api.wasrusgen1.pro/healthz` → должен вернуть 200
5. Запустить `/project:test` для подтверждения
6. **Обновить `agents/devops-status.md`**: статус блокеров, новые проблемы, следующий шаг
## Мониторинг и диагностика
- Если бот не отвечает → проверить логи бота
- Если API возвращает 500 → проверить логи бэкенда
- Если HTTPS не работает → проверить статус Caddy
- Ошибки Google Sheets → проверить credentials.json на VPS (`/opt/zov-tech/credentials.json`)
## Переменные окружения (`.env` на VPS)
Файл: `/opt/zov-tech/deploy/.env`
Ключевые переменные: `BOT_TOKEN`, `ADMIN_TG_ID`, `SHEET_ID`, `GOOGLE_CREDENTIALS_PATH`, `GIGACHAT_AUTH_KEY`, `INTERNAL_SECRET`
## Чего НЕ делать
- Не хардкодить токены и ключи в коде
- Не перезапускать всё подряд без диагностики — сначала логи
- Не менять `.env` без резервной копии