Rusonyx 160 NVMe заказан 2026-05-19 (6 vCPU / 8GB RAM / 160GB NVMe / Ubuntu 24.04, без ispmanager/CMS/VPS Backup, 1 IPv4). Ждём выделение IP. OS resolved: Ubuntu 24.04 LTS (поддержка до апреля 2029, docker official APT flow, mainstream community для docker workload). Debian 12 отвергнут — не даёт material выгоды при 8GB RAM. 160 SSD → 160 NVMe — Rusonyx апгрейд storage по той же цене, IOPS выше. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
8.5 KiB
vds-kzntsv-bootstrap
Goal
Поднять облачный VDS vds.kzntsv.site (Rusonyx) и вынести туда ключевые инфраструктурные сервисы пользователя, чтобы не зависеть от собственного железа (мёртвая NAS показала single-point-of-failure). Цель — устранить риск повторения 2026-05-18 для инфраструктурного слоя (gitea/verdaccio/seafile/registry/hermes); production CMS (MoreThenCms) остаётся на windows-recovery-host и обсуждается отдельно в future-resilient-architecture-goals.
После миграции kreknin-synology остаётся как backup target, не как live host инфры.
Сервисы под миграцию (snapshot 2026-05-19)
Источник размеров — du -sh /volume1/docker/*/ на kreknin (см. Decisions log 2026-05-19).
| Сервис | Сейчас на kreknin | После cleanup / на VDS | План |
|---|---|---|---|
| gitea | /volume1/docker/gitea/ 2.6G |
~2.6G | lift-and-shift (compose + data tar) |
| verdaccio | /volume1/docker/personal/verdaccio/ 8.5G |
2–3G | prune old tarballs до миграции |
| owncloud | /volume1/docker/owncloud/ 187M + дубль 195M |
— | отказ, заменяется seafile |
| seafile | (новый) | 30–40G | green install на VDS |
| registry | /volume1/docker/infrastucture/registry/ 99G |
5–15G | registry garbage-collect ДО миграции (write op, требует read-only/stopped registry) |
| hermes | /volume1/docker/hermes/ 0 (пусто на kreknin) |
~10G (user estimate) | TBD — что это, где state |
Раскладка после cleanup: ~55–75G data + ~5G OS/docker → ~80–100G с headroom.
Тариф VDS (Rusonyx, https://www.rusonyx.ru/hosting/vps/#ssd)
Заказан (финал, user 2026-05-19): 160 NVMe (Rusonyx переименовал прежний 160 SSD тариф в NVMe — апгрейд storage по той же цене, IOPS выше).
Конфигурация заказа:
- 6 vCPU 2.6GHz
- 8192 MiB RAM (8 GiB)
- 163840 MiB disk (160 GiB) NVMe
- Ubuntu Server 24.04
- 1 IPv4 (free)
- Лицензия / CMS / ispmanager — нет (docker-only, control-panel мусор не нужен)
- VPS Backup от Rusonyx — 0 шт (свой backup через rsync/borg → kreknin или off-site cloud)
- SSH root access — Вкл на старте (после bootstrap — отключить, sudo-user)
Reasoning:
- 160GB headroom ~45% на старте после миграции (~60-70G data + 5G OS) — годен на 2-3 года без add-on operations.
- 8GB RAM overkill для baseline (~2.1G) но даёт реальный запас под burst и любые будущие сервисы.
- User выбрал «купи-и-забудь» вариант over 80 SSD+add-on; +1000 ₽/мес vs 80 SSD = +12k₽/год за operational simplicity.
Не выбраны:
- 40 SSD — 4GB RAM впритык, OOM risk под seafile+registry burst.
- 80 SSD — RAM ок, но 80GB диск требует add-on (цены непрозрачны без звонка в managers).
- 220+ SSD — overkill без local LLM-inference.
Open questions
- Hermes — Nous Research agent runtime (https://hermes-agent.nousresearch.com/). Открытые подвопросы:
- self-host их open-source / docker image, или client-wrapper к managed API?
- если self-host — какой репо/образ, какие порты, какие external deps (vector DB, LLM endpoint)?
- state где живёт (postgres / sqlite / files / vector store)?
- 10G — это weights/embeddings/vector store/document cache?
- влияет на RAM-выбор тарифа (если local LLM inference — 8GB мало, нужно 16+)
- Owncloud дубль
docker/owncloud/vsdocker/personal/owncloud/— какой live, нужны ли данные при переезде на seafile? - DNS-cut стратегия: A-record
vds.kzntsv.siteсразу, или сначала test через IP? - Backup VDS → kreknin: какой механизм? rsnapshot / restic / borg / Hyper Backup pull через SFTP?
OS на VDS→ Ubuntu 24.04 LTS (decision 2026-05-19): LTS до апреля 2029, docker official APT repo flow, mainstream community для docker-стека, гарантированно есть в Rusonyx templates.
Key files
(пока нет; появятся по ходу — compose-файлы, ansible-плейбук если будет, sync scripts)
Связанные wiki-страницы (для контекста):
.wiki/entities/kreknin-synology.md— текущий host kreknin.wiki/concepts/future-resilient-architecture-goals.md— глобальные цели resilience.wiki/concepts/recovery-architecture-snapshot.md— текущая prod-инфра
Decisions log
- 2026-05-19: OS на VDS = Ubuntu 24.04 LTS (Noble). Reasoning: LTS support до апреля 2029, docker official APT flow, mainstream community для docker-workload. Debian 12 отвергнут — не даёт material выгоды при 8GB RAM (idle разница ~100M), а docker-docs primary-target — Ubuntu LTS.
- 2026-05-19 (заказан): Тариф
160 NVMe(Rusonyx переименовал 160 SSD → 160 NVMe, та же цена, апгрейд по IOPS). VPS Backup от Rusonyx — 0 шт (свой backup pipeline). SSH root — Вкл на bootstrap, потом отключить. - 2026-05-19 (final tier): User выбрал 160 SSD (2500 ₽/мес). Reasoning user'а — operational simplicity, не звонить в support за add-on ценой, есть запас на 2-3 года. +1000 ₽/мес vs 80 SSD приемлемо.
- 2026-05-19 (промежуточный заход, откатан): Рекомендовалось 80 SSD + disk add-on исходя из того что 8GB RAM избыточно после уточнения hermes-профиля. User решил что 500 ₽/мес экономии не стоят звонков в support и риска что add-on окажется дорогой.
- 2026-05-19 (первый заход): Изначально 160 SSD по budget-расчёту headroom; затем переоценено вниз после уточнения hermes; затем user вернул обратно к 160 SSD по user-preference.
- 2026-05-19: Owncloud → seafile. Reasoning: пользователь решил заменить (rationale пока не записан).
- 2026-05-19: Registry garbage-collect ДО миграции (на kreknin), чтобы не тащить 99G чтобы потом всё равно чистить.
- 2026-05-19: Verdaccio тоже prune ДО миграции, по аналогичной логике.
Next actions (по порядку)
- Уточнить hermes — что это, где его state.
- Решить owncloud дубль — нужны ли данные для миграции в seafile или green install.
- Registry GC на kreknin — stop писателей,
docker run --rm -v ...:/var/lib/registry registry:2 garbage-collect /etc/docker/registry/config.yml, measure delta. ⚠️ prod-changing, согласие от user. - Verdaccio prune —
npm cache clean+ удалить old tarballs из storage. (low risk, restorable из upstream npm) Закупить тариф у Rusonyx→ заказан 160 NVMe, Ubuntu 24.04, 8GB/6vCPU/160GB, 1 IPv4 (2026-05-19, ожидание выделения IP).- DNS — A
vds.kzntsv.site → <IP>в REGRU. - Bootstrap VDS (zero-day чек-лист): apt update/upgrade → создать sudo-user
vitya+ копировать SSH key →PermitRootLogin no+PasswordAuthentication no→ ufw (22/80/443 only) → fail2ban → docker official APT repo (docker-ce + buildx + compose-plugin). Полная paste-ready команда в чате сессии. - Per-service migration (gitea → tarball+restore, verdaccio → tar storage, seafile → green install, registry → rsync, hermes → repo+state).
- Backup pipeline VDS → kreknin (или cloud — Backblaze B2 для off-site, см. future-resilient-architecture-goals).
- DNS cut к production, удаление сервисов с kreknin (с paranoid keep-on-kreknin-7days).