Облачный VDS у Rusonyx, активирован 2026-05-20. Цель — вынести инфраструктурные сервисы (gitea / verdaccio / docker-registry / shared DBs / в будущем seafile, hermes, ntfy) с одной железной коробки на отдельный host. Это первый шаг по closing SPOF gap из future-resilient-architecture-goals.
Production CMS (MoreThenCms) остаётся наwindows-recovery-host и обсуждается отдельно.
Backup от Rusonyx: 0 (свой backup pipeline через [[vds-backup-rsync-kreknin]])
Доступ
Public IP:89.253.255.94
Subnet / gateway:/18 (netmask 255.255.192.0), gateway 89.253.192.1. Эта конфигурация прописывается провайдером в /etc/network/interfaces.d/ifcfg-eth0 через их start/ipadd procedure — не редактировать руками. См. quirk #9-10 в rusonyx-vps-onboarding-quirks.
Сетевой стек:ifupdown + networking (provider's expected; netplan + systemd-networkd masked после resolution 2026-05-28 incident — см. vds-kzntsv-dhcp-outage-2026-05-28)
Kernel cmdline:net.ifnames=0 biosdevname=0 — отсюда eth0 (не ens3/enp0s3, эти как altnames в ip a)
DNS resolvers:89.253.252.30, 89.253.252.31 (Rusonyx)
Vendor hostname:vps-21075162-534388.host4g.ru
Hypervisor (LLDP-сосед):hw80.rusonyx.ru (нужно знать для тикетов хостеру)
DNS:vds.kzntsv.site (A → 89.253.255.94) + wildcard *.vds.kzntsv.site + service hostnames git/registry/verdaccio.kzntsv.site (REGRU)
VNC console: через Rusonyx панель (кнопка «Остановить VNC» в Управление сервером → Консоль может потребоваться при stale attachment — см. rusonyx-vps-onboarding-quirks)
Креды:pass show vds-kzntsv/full-env (root initial pass, sudo pass, portainer admin, DB passwords, registry, portainer API key, traefik dashboard basicauth, ntfy, verdaccio CI). Историческая заметка: до перехода на pass-store креды лежали в ~/projects/.common/secrets/vds-kzntsv.env — папка более не существует.
Software stack
Слой
Компонент
Версия
Где
OS
Ubuntu
24.04.4 LTS
host
Kernel
Linux
6.8.0-117-generic
host
Firewall
ufw
active
host (allow 22, 80, 443, 5432, 3306, 27017, 6379)
Brute-protect
fail2ban
active (sshd jail)
host
Engine
Docker CE
29.5.1
host (official APT repo)
Compose
docker-compose-plugin
v5.1.3
host
Reverse proxy
Traefik
v2.11 LTS
/opt/stacks/traefik/
Container mgmt
Portainer CE
2.21.5
/opt/stacks/portainer/
Postgres
postgres
16 (Debian)
/opt/stacks/databases/postgres/
MariaDB
mariadb
11.4
/opt/stacks/databases/mariadb/
MongoDB
mongo
7.0
/opt/stacks/databases/mongo/
Redis
redis
7.4-alpine
/opt/stacks/databases/redis/
Git
gitea
1.25.5
/opt/stacks/gitea/
NPM
verdaccio
6
/opt/stacks/verdaccio/
Docker registry
registry
2.8.3 + joxit UI
/opt/stacks/registry/
Personal cloud
ownCloud Infinite Scale (oCIS)
7.1.0
/opt/stacks/owncloud/
CMS DB
MSSQL Express 2022 (Linux)
2022-latest
/opt/stacks/databases/mssql/ — TCP via traefik :1433 → mssql.kzntsv.site. Подробности: ../concepts/mssql-on-vds
Docker networks (external)
proxy — traefik + всё что выставляется наружу через HTTPS
shared-dbs — DB-park + любой контейнер, который к DBs ходит по DNS-имени postgres / mariadb / mongo / redis
См. vds-backup-rsync-kreknin: daily 05:00 MSK rsync → kreknin.site:/volume1/NetBackup/vds-kzntsv/с--link-dest incremental. DB dumps первым шагом (pg_dumpall / mariadb-dump / mongodump / redis-cli --rdb), потом rsync /opt/stacks/. Email-нотификация на vitya.kuznetsov@gmail.com через SMTP smtp.yandex.ru:465 (noreply@snolla.com / pass в noreply-snolla-smtp.env), плюс vds-ntfy-push на Android.
Связь с другими сущностями
Источник данных для миграции gitea/verdaccio — restored backup на kreknin-synology (через tar+ssh-pipe и rsync). Registry — fresh install без миграции старых images (user accepted loss).
Заменяет старый CMS-инфра-host windows-recovery-hostтолько для инфраструктурных сервисов (gitea/verdaccio/registry/DBs); production CMS остаётся на recovery-host.
2026-05-28 network-stack mismatch (~2.5 ч outage + ~5.5 ч на статике до resolution): наш netplan+networkd конфликтовал с provider's expected ifupdown stack, поэтому когда DHCP-binding кратко потерялся на стороне хостера — auto-recovery (их start/ipadd) не сработала. Resolution: mask netplan/networkd + reboot + provider reset config. Подробности + runbook + lessons-learned: vds-kzntsv-dhcp-outage-2026-05-28. Не использовать netplan на этом VDS (anti-pattern).
2026-07-13 disk cleanup + container-log rotation guard: диск поднялся до 94 % (11 GiB free) — та же болезнь что на ../entities/books-vds 2026-06-04, но guard на infra НЕ стоял. Корень — docker daemon json-file без max-size + ноль ротации; owncloud oCIS натёк 13 GiB json-лога (остальное: traefik 2.8 GiB, gitea 1.9 GiB; /var/lib/docker/containers = 19 GiB). Ручная чистка: truncate логов (19 GiB → 1.2 MiB), docker builder prune (-5.5 GiB), apt-get clean (-1.2 GiB), journalctl --vacuum-size=50M (-0.4 GiB), docker image prune -a (-0.35 GiB — старые snolla-теги делят base-слои с running, уникальных мало). Итого ~28 GiB освобождено → 94 % → 74 % (39 GiB free). Durable guard: /etc/logrotate.d/docker-containers (copytruncate, size 200M, rotate 3, compress, hourly) + hourly cron /etc/cron.d/docker-logrotate (минута 7). Альтернатива на уровне daemon (log-opts: max-size=50m, max-file=3 в /etc/docker/daemon.json) не применена — потребует рестарта dockerd = рестарт всех 30 контейнеров; logrotate copytruncate выбран как non-disruptive.
GC cron для verdaccio + registry — TODO (vds-gc-cron). Срочность снижена после 2026-07-13 cleanup (94 % → 74 %, 39 GiB free); container-log rotation — DONE (см. Known issues ↑). Registry + verdaccio GC cron — отдельный TODO, не связан с логами.