Goal
Единый источник правды по инфраструктуре re-search.wiki: что где крутится, как развернуть с нуля, как восстановить после падения, куда смотреть при проблемах. Документ живёт в репо dv-hub, обновляется вместе с инфрой.
Definition of Done
- Файл
docs/infra-runbook.mdсоздан в репо dv-hub - Содержит все 8 секций из сценария ниже
- Команды проверены на живом сервере (copy-paste работает)
- Чувствительные данные (пароли, ключи) НЕ в runbook — только ссылки на keys-passwords.mdenc
- Ссылка на runbook добавлена в README.md и в AGENTS.md (раздел “Infrastructure”)
- Прогнан тест: «человек с нуля по этому документу может развернуть всё за 2 часа»
Notes
- Это не маркетинг и не tutorial — это сухой операционный документ
- Стиль: команды, пути, порты, контакты. Минимум прозы
- Обновлять при каждом изменении инфры — иначе документ протухнет за месяц
Сценарий runbook (структура и содержание)
Раздел 1. Архитектура и адреса — диаграмма (ASCII или mermaid) трёх доменов и сервисов: re-search.wiki → Nginx :443 → Hono :8787; meet.re-search.wiki → Nginx :443 → MiroTalk :3010. Таблица портов (22, 80, 443, 3010, 8787, 40000-40100). Где находится сервер (Fornex Germany), IP, контакт саппорта.
Раздел 2. Доступы — как зайти по SSH (пользователь dv, ключ), где лежат креды (ссылка на DV/Site/keys-passwords.mdenc в vault), кто имеет доступ. Без самих паролей.
Раздел 3. Установка с нуля — копия твоего плана этапов 4-7 одним блоком, со всеми bash-командами. Это бэкап-план на случай, если сервер сгорит.
Раздел 4. Деплой обновлений — типовой flow: git pull, npm ci, npm run build, pm2 restart dvhub. Отдельно для MiroTalk. Откат: git checkout <prev-sha> && pm2 restart.
Раздел 5. Мониторинг и логи — где смотреть: pm2 logs dvhub, pm2 logs mirotalksfu, journalctl -u nginx, /var/log/nginx/error.log. Команды для проверки здоровья: pm2 status, df -h, free -m, ufw status.
Раздел 6. Бэкапы и восстановление — что бэкапится (SQLite-файл, .env’ы, конфиги Nginx), куда (пока — ручной rsync на локальную машину раз в неделю; позже — задача DV-009), как восстановить из бэкапа. Расписание.
Раздел 7. Troubleshooting — список типовых проблем и решений: «сайт не открывается» → проверь pm2, nginx -t, certbot; «созвон не работает за NAT» → проверь UDP 40000-40100, рассмотри coturn (DV-012); «нет места на диске» → du -sh /var/log/* /opt/*; «SSL истёк» → certbot renew. По 1-2 строки на каждый кейс.
Раздел 8. Регулярное обслуживание — чек-лист: раз в неделю apt update && apt upgrade, проверка certbot renew --dry-run, ротация логов pm2 (pm2 flush). Раз в месяц — пересмотр backup’ов, проверка df -h.
Когда писать
Не сейчас и не до настройки. Писать параллельно с DV-006a → DV-027, прямо по ходу. Каждую команду, которую вводишь на сервере — сразу копируй в runbook. После DV-027 будет 80% готового документа, останется причесать.