architect/standards/arch-infra-structure.md

type: standard
layer: arch
object: infra
aspect: structure
form: text
title: "Структура infra/"
status: active
version: 2.0.0
date: 2026-04-15
knowledge_level: У1
parent: arch-platform-structure.md


Структура infra/

Компонент ГДЕ ЭТО РАБОТАЕТ — серверы, хранилища, сетевая инфраструктура.


1. ВОПРОС КОМПОНЕНТА

На каком железе и в каких облаках работает платформа?

infra/ описывает физический уровень: серверы, хранилища, коннекторы, скрипты обслуживания.
Не код приложений — только среда выполнения.


2. СТРУКТУРА ПАПКИ

infra/
├── @{имя}.server/      — описание сервера / VM
├── @{имя}.storage/     — внешнее хранилище (S3, диск)
├── @{имя}.service/     — инфраструктурный сервис
├── @{имя}.connector/   — коннектор к внешней системе
├── @{имя}.portal/      — веб-портал управления
├── @{имя}.infra/       — прочая инфраструктурная единица
├── @{имя}.pc/          — рабочая станция / скрейпер
├── install/            — установщик платформы
├── scripts/            — операционные скрипты
├── _scripts/           — вспомогательные скрипты
├── INDEX.md            — реестр всех компонентов
├── CLAUDE.md           — навигатор
└── archive/            — архив старых конфигов

3. ТИПЫ СЕРВЕРОВ

Тип Роль Что устанавливается
control-plane Claude Code, gateway, git, monitor traefik, gitea, platform-monitor, claude
data-server проекты, агенты, БД, dataspace все бизнес-сервисы, агенты, worker-базы
backup-server restic, snapshots, архив rclone, backup-сервисы
shared-hosting хостинг beget PHP/MySQL, nginx, SSH

4. РЕЕСТР СЕРВЕРОВ

Модуль IP Тип Статус
@dev-pro-eu.server/ 91.218.142.168 control-plane active
@pm-platform.server/ 155.212.142.142 data-server active
@beget-work.server/ shared-hosting active
@beget-feyerverk.server/ shared-hosting active
@beget-kondurov.server/ shared-hosting active

Архивированные серверы — в archive/. Не удалять: история нужна для аудита.


5. СТРУКТУРА МОДУЛЯ СЕРВЕРА

@{имя}.server/
├── CLAUDE.md           — описание, доступ, роль сервера
├── index.yaml          — метаданные: IP, роль, ОС, статус
├── infra.yaml          — сервисы запущенные на сервере
├── nginx/              — nginx конфиги (если есть)
├── scripts/            — скрипты для этого сервера
├── management/         — TODO, LOG, STATUS
└── ssh-config          — SSH-алиас (опционально)

index.yaml минимум

name: "@{имя}.server"
type: server
class: ServerComponent
layer: infra
status: active          # active | archived | planned
role: data-server       # control-plane | data-server | backup-server | shared-hosting
ip: 0.0.0.0
os: Ubuntu 22.04
provider: VPS

infra.yaml — реестр сервисов на сервере

services:
  - name: traefik
    type: docker
    status: running
    port: "80,443"
  - name: gitea
    type: docker
    status: running
    port: "3000,2222"

6. ХРАНИЛИЩА (@{имя}.storage/)

Модуль Тип Назначение
@beget-s3.storage/ S3 $DATASPACE — все данные вне git
@exchange.storage/ Bind mount Обмен файлами между агентами
@yandex-disk.storage/ Яндекс.Диск Документы клиентов

7. ИНФРАСТРУКТУРНЫЕ СЕРВИСЫ (@{имя}.service/)

Сервисы обслуживания инфраструктуры — не бизнес-логика.

Модуль Назначение
@backup.service/ Бэкапы данных
@proxy.service/ Обратный прокси / обход блокировок
@mail.service/ Почтовый сервис
@md-viewer.service/ Просмотр .md (docs.0kt.ru)
@browser.service/ Headless browser
@claude-api.service/ Прокси к Claude API

8. УСТАНОВЩИК (install/)

Автоматическая установка платформы на новый сервер.

install/
├── install.sh          — главный скрипт (v3+)
├── lib/                — общие функции (config, UI, checks)
├── base/               — базовая установка (OS, Docker, сети)
├── stacks/             — стеки по роли сервера
├── configs/            — конфиги сервисов
└── tests/              — проверки после установки

Использование:

bash install/install.sh
# Выбрать тип сервера → установить нужные стеки

9. СКРИПТЫ (scripts/)

scripts/
├── backup.sh              — полный бэкап
├── check_resources.sh     — проверка ресурсов перед деплоем
├── disaster-recovery/
│   ├── backup-critical.sh
│   └── restore.sh
└── git-backup-s3.sh       — git → S3

Обязательно перед деплоем:

bash /opt/scripts/check_resources.sh
# GREEN → продолжай / YELLOW → cleanup / RED → СТОП

10. ПРАВИЛА ИМЕНОВАНИЯ

Формат: @{имя}.{тип}/

Тип Что Примеры
.server физический сервер / VM @dev-pro-eu.server
.storage внешнее хранилище @beget-s3.storage
.service инфраструктурный сервис @backup.service
.connector коннектор к внешней системе @home-pc.connector
.portal веб-портал управления @admin.portal
.infra прочее инфраструктурное @kt-station.infra
.pc рабочая станция / скрейпер @kt-scraper.pc

11. ГРАНИЦЫ КОМПОНЕНТА

infra/ system/ services/
Уровень физический логический прикладной
Что описывает где работает платформенные агенты production docker-сервисы
Конфиги nginx, SSH, OS docker-compose агентов docker-compose проектов
Примеры @dev-pro-eu.server @rebuild.service @lideravto.app

Правило: бизнес-сервисы проектов → services/, не infra/.


СВЯЗАННЫЕ ДОКУМЕНТЫ