architect/arh/concept/platform-containers.md

type: concept
title: "Контейнерная архитектура платформы"
version: 0.1.0
date: 2026-04-02
status: draft


Контейнерная архитектура платформы

Черновик концепции. Фиксирует принципы устройства платформы в контейнерах.


ПРИНЦИПЫ

  1. Всё в контейнерах. Хост = Docker Engine + UFW + SSH. Больше ничего на хосте.
  2. Данные отдельно от контейнеров. Docker volume = файлы на диске хоста.
  3. Git — единственный источник истины. Синхронизация только через git pull/push. Shared volumes между серверами — не используем.
  4. Модульность. Блоки работают на одном сервере или разносятся по N серверам — принципы не меняются.
  5. Автономность блоков. Падение одного блока не роняет другие.
  6. База на каждом сервере. Любой сервер начинается с установки BASE стека.

БЛОКИ ПЛАТФОРМЫ

ЛЮБОЙ СЕРВЕР
└── BASE

МАТКА (центральная, один экземпляр)
└── BASE +
    ├── CORE
    ├── NET
    ├── OPS
    └── BACKUP

ОТЕЦ / СОЗДАТЕЛЬ
└── BASE + creator стек

ПРОЕКТОР
└── BASE + projector стек

ИСПОЛНИТЕЛЬ (× сколько нужно)
└── BASE + executor стек

BASE — ядро на каждом сервере

Устанавливается первым на любой сервер. Без BASE ничего не работает.

BASE
├── Portainer Agent   ← подключается к центральному Portainer (OPS)
├── WireGuard         ← VPN туннель к другим серверам
├── Nginx local       ← роутинг сервисов на этом сервере
└── Backup agent      ← отправляет снапшоты в центральный backup

МАТКА — центральные сервисы

Один экземпляр. Всё остальное зависит от Матки.

CORE — критический минимум

Если упадёт — платформа умирает.

CORE
├── PostgreSQL    ← питает Gitea + Authelia
├── Gitea         ← git репозитории, источник истины
├── Authelia      ← SSO аутентификация для всех UI
└── Nginx         ← главный домен, роутинг, SSL

NET — сетевые сервисы

NET
├── WireGuard server  ← VPN сервер, связывает все серверы
└── Certbot           ← SSL сертификаты

OPS — управление платформой (DevOps)

Если упадёт — платформа работает, но слепо.

OPS
├── Portainer server   центральный UI управления контейнерами
├── Uptime Kuma        мониторинг всех сервисов
├── Alerting           уведомления в Telegram
└── Docker Registry    хранение своих образов (опционально)

BACKUP — резервирование

BACKUP
├── Restic        ← снапшоты всех данных
└── S3 client     ← отправка в облачное хранилище

ОТЕЦ / СОЗДАТЕЛЬ — архитектура платформы

Роль: создаёт методологию, стандарты, библиотеки, агентов, инфраструктуру.

CREATOR
├── Claude Code (интерактивный терминал)
└── workspace:
    ├── architect/    rw   методология, стандарты
    ├── library/      rw   коннекторы, функции
    ├── system/       rw   агенты, монитор, планировщик
    └── infra/        rw   описания серверов

Git репо: platform-core (rw Создатель, ro остальные)

Позже: + AI агент-процесс рядом с Claude Code


ПРОЕКТОР — управление проектами

Роль: управляет только проектами клиентов.

PROJECTOR
├── Claude Code (интерактивный терминал)
└── workspace:
    ├── projects/     rw   проекты клиентов
    ├── architect/    ro   читает стандарты
    ├── library/      ro   использует код
    └── infra/        ro   видит инфраструктуру

Git репо: platform-projects (rw Проектор, ro Создатель)

Подтягивает нужное из platform-core через git по запросу.

Позже: + AI агент-процесс рядом с Claude Code


ИСПОЛНИТЕЛЬ — рантайм проектов

Запускает проекты. Экземпляров столько сколько нужно.

EXECUTOR
├── Nginx         ← роутинг доменов проектов
├── PostgreSQL    ← БД для проектов на этом исполнителе
├── Redis         ← кэш, очереди, сессии
├── MinIO         ← S3 для медиа и файлов проектов
└── project-{name} стеки

Три варианта рантайма проекта

Вариант Где Когда
A. Контейнер На Исполнителе Всё новое, разработка → прод
B. VPS клиента Сервер клиента Enterprise, данные у клиента
C. Shared hosting Beget и др. Простые сайты, дёшево

Разработка всегда в контейнере (вариант A). Потом переносится туда где нужно.


GIT РЕПОЗИТОРИИ

Репо Владелец Содержит
platform-core Создатель rw / остальные ro architect/ · library/ · system/ · infra/
platform-projects Проектор rw / Создатель ro projects/
project-{name} Проектор rw код и конфиги конкретного проекта

LIBRARY — общая библиотека

library/
├── connectors/api/     ozon, telegram, 1c, sms, vk, openrouter
├── connectors/data/    postgres, s3, redis
├── functions/          format, validate, normalize, transform
└── core/               базовые классы платформы

АУТЕНТИФИКАЦИЯ И UI

Authelia (в МАТКА-CORE) — SSO для всех интерфейсов платформы:

UI Назначение Кто использует
Gitea Репозитории Все
Portainer Управление контейнерами DevOps
Uptime Kuma Мониторинг DevOps
docs.0kt.ru Документация Все

ОТКРЫТЫЕ ВОПРОСЫ


Версия: 0.1.0 draft
Следующий шаг: обсудить открытые вопросы → поднять до 1.0.0