Goal
Перенести хостинг проекта ДВ-Хаб с Fornex на Zomro (Cloud VPS, Netherlands-3) без потери данных, без простоя дольше TTL DNS и с сохранением текущего стека (Node/PM2/Nginx/certbot). Старт — тариф Optimal AMD (2 vCPU / 5 GB RAM / 35 GB NVMe / 2 TB трафика, €11.95/мес). Фиксируется как отдельная задача, потому что переезд затрагивает инфраструктуру трёх доменов (re-search.wiki, www, meet), MiroTalk (UDP 40000-40100) и бэкапы.
Scope
- Спека переезда:
docs/architecture.mdADR-010 +docs/infra-runbook.md§9 (этапы 9.1–9.8), коммитf289e02в dv-hub. - Деплой-скрипты provider-независимы:
scripts/vps-env.sh— единая точка (хост, порт, ключ, SFU_ANNOUNCED_IP). - Подготовка стенда: TTL ↓ до 300 с, заказ сервера, SSH-ключ, ufw, fail2ban, Node/nvm/pm2, Nginx, certbot.
- Данные и сервисы: актуальный
data/dv-hub.db+dist/, MiroTalk сSFU_ANNOUNCED_IPнового хоста, SSL для трёх доменов. - Переключение: A-записи @, www, meet → новый IP; 48 часов параллельной
работы; затем гашение Fornex и снятие бэкапа
.env/БД. - Владелец (только он): оплата/заказ сервера, DNS-записи через owner-gate
(
dvhub.dns), секреты.envчерез owner-gate (dvhub.server-secret).
Definition of Done
- Новый сервер Zomro поднят: SSH по ключу, ufw/fail2ban, Node/nvm/PM2, Nginx, certbot установлены.
- Два сервиса отвечают:
curl -Ik https://re-search.wiki/иcurl -Ik https://meet.re-search.wiki/; MiroTalk порт 3010 и UDP 40000-40100 открыты;SFU_ANNOUNCED_IP= новый IP. - БД перенесена и отвечает; бэкап-cron (DV-009) работает на новом сервере.
- DNS переключён владельцем; 48 часов наблюдения без ошибок; старый Fornex погашен, бэкап с него снят.
- В
docs/infra-runbook.md§1 иscripts/vps-env.shзафиксирован новый IP; старый IP выведен в legacy-блок или удалён после подтверждения. - Все команды §9 проверены на живом сервере (не только на бумаге).
Live status (обновлено 2026-11-06)
- Сервер создан: Zomro NL-3, IP
188.137.182.91, Ubuntu 24.04, hostnamedv-hub.host. - DNS переключён полностью:
re-search.wiki,www,meet→ новый IP. - HTTPS отвечает 200 на всех трёх доменах.
- Идёт 48-часовое наблюдение (
scripts/migration-watch.sh, cron*/30). - Fornex пока не гасим: старые A-записи уже сняты, но хост остаётся резервом до чистого срока.
Заблокировано / требует владельца
- Offsite-бэкап: нет Tailscale на приёмной машине; нужен выбор транспорта владельцем.
- Бэкап старого Fornex: доступ к старому серверу утерян, снять
.env/БД оттуда нельзя. - Гашение Fornex — ручное действие владельца в панели, только после чистых 48 часов и осознанного вердикта о старом бэкапе.
Notes
- Вердикт владельца 2026-11-01 (basis: quoted): «официально переезжаем на зомро — мой вердикт».
- Это не смена архитектуры: ADR-001 уточняется ADR-010 (провайдер меняется, стек, порты, сервисы остаются).
- Откат: A-записи обратно на 89.127.198.185 владельцем; старый сервер гасится только после 48 чистой часов нового.
- Остаётся на отделе разработки при заказе: вписать новый IP, прогнать §9.2–9.5, доложить о стенде до переключения DNS.
Сценарий (этапы)
- T-7: понизить TTL; заказать/оплатить Zomro; завести ключ; убедиться,
что
bash scripts/deploy-vps.shработает на старом сервере. - База: apt-обновления, хостнейм, таймзона, пользователь
dv, права. - Стек: certbot, nvm/Node LTS, PM2, Nginx, ffmpeg, ufw, fail2ban.
- Перенос:
dist/+data/dv-hub.db; MiroTalk; Nginx-конфиги; SSL. - Проверка:
curl --resolve,pm2 status, логи, ufw, DNS-стенд. - Переключение: заморозка старого, финальный rsync, DNS-формы владельцу.
- Наблюдение и гашение: 48 часов; бэкап старого; затем отмена Fornex.