Skip to content

Ops & эксплуатация — обзор

Audience: founder / operator. Эти runbooks позволяют запускать и восстанавливать инфраструктуру Kontinuum без CTO. Раздел описывает как устроена и обслуживается живая инфраструктура.

⚠ Безопасность: здесь только процедуры и расположение секретов — никаких значений (токенов, паролей keystore, приватных ключей). Где лежит секрет — да; что он содержит — нет.

Карта машин (топология)

Платформа разнесена между датацентром (VPS) и домашней сетью (home LAN). Тяжёлые сборки/тесты/эмуляторы идут дома; публичные туннели и сессии — в датацентре.

plantuml Diagram
МашинаИмя / адресРольДоступ
headaruba2-os, 94.177.204.63VPS-«голова»: здесь работают сессии Claude/CTO. Нет toolchain (cargo/npm/jdk), нет L3-маршрута в домашнюю сеть.Достаёт home LAN только через reverse-SSH воркера (ssh worker).
workergpu-worker, 192.168.1.101Дом: RTX 3090 Ti, 48 ядер, 125 GB RAM. Все сборки/тесты/эмуляторы. Хранит канонический clone ~/kontinuum.cloud, GitLab PAT (~/.git-credentials), age-приватник (~/.git-key).На home LAN; напрямую видит gitlab.local.lan.
gitlab-host192.168.1.100Self-hosted GitLab (gitlab.local.lan, только HTTP :80).Сегодня доступен только через jump (worker на LAN; снаружи — через head-туннель).
aruba194.177.204.91Канал обновлений (updates.kontinuum.cloud), живой kontinuum-node (:4001), Veil-egress.root-ключ головы авторизован (ssh root@94.177.204.91).

Не перепутать машины

aruba1 (.91) ≠ aruba2-os / head (.63) — это разные машины. На aruba1 крутится прод (node + updates + Veil) — не трогать веб/сервисы там без причины.

Принцип split-exec

  • head держит публичные коннекторы (cloudflared) и сессии. Домашний аплинк не выдерживает порт 7844 cloudflared — поэтому connector обязан жить на датацентр-хосте, никогда в домашней сети.
  • worker держит секреты и инструменты. Редактирование может идти на head, но сборка/тест/git-операции с секретами — на worker.
  • Связь head↔home идёт только через reverse-SSH, который инициирует worker (head-tunnel.service на воркере): домашняя сеть за NAT, head не может постучаться внутрь сам.

Runbooks

RunbookЧто покрывает
ТуннелиCF-туннели (gitlab / updates / legal), их состав и восстановление.
Секретыage-хранилище секретов, ротация, корневой ключ.
РелизыСборка, подпись и публикация APK (текущий ручной поток).
БэкапыЧто бэкапится, как восстановить, известные пробелы.
GitLab бэкап/restoreБэкап данных инстанса GitLab (БД/issues/MR/CI/registry) + секреты, off-host на worker, расписание и restore.

Быстрая диагностика «что живо»

СервисХостПроверка
GitLab публичноheadcurl -sI https://gitlab.kontinuum.cloud (ожидается CF Access 302)
Канал обновленийaruba1curl -s https://updates.kontinuum.cloud/latest.json
reverse-SSH homeheadssh -o ConnectTimeout=6 worker true && echo ok
kontinuum-nodearuba1`ssh root@94.177.204.91 'ss -ltnp