Дата создания: 2025-11-17
Версия: 1.2.0
Обновлено: 2025-11-30
Статус: ✅ Активный стандарт
См. также: DATA-FLOW.md — Потоки данных между инфраструктурами
В workspace $WORKSPACE/ инфраструктурные проекты вынесены в отдельную папку infra/ и отделены от прикладных проектов projects/.
Всего инфраструктурных проектов: 8
$WORKSPACE/
├── pirotehnika/ ← БИЗНЕС: Пиротехника
├── lider/ ← БИЗНЕС: Лидер Авто
├── seller1/ ← БИЗНЕС: Seller1
│
├── infra/ ← ВСЯ инфраструктура
│ ├── @infra-dev-pro/ ← VPS EU (Control Plane)
│ ├── @infra-dev-prod-rf/ ← VPS RU (Production + Dev)
│ ├── @infra-home-pc/ ← Home PC (рабочая станция)
│ ├── @remote-beget-kondurov/ ← Beget Shared Hosting
│ ├── infra-s3-beget/ ← Beget S3 Hub (центральное хранилище)
│ └── infra-yandex-disk/ ← Яндекс.Диск Storage
│
├── system/ ← AI агенты
├── architect/ ← Методология и стандарты
└── archive/ ← Архив
S3 Hub структура: см. DATA-FLOW.md
Физические/виртуальные серверы:
- @infra-dev-pro - EU Development Server (Control Plane)
- @infra-dev-prod-rf - RU Production + Development Server
Характеристики:
- Тип: vps
- SSH доступ: ✅
- Docker: ✅
- Критичность: HIGH
- Управление: systemd, docker-compose
Хостинг с ограничениями:
- @remote-beget-kondurov - Beget Shared Hosting
Характеристики:
- Тип: shared-hosting
- SSH доступ: ✅ (ограниченный)
- Проектов: 5
- Критичность: MEDIUM
- Управление: SSH + Web Panel
Веб-интерфейсы управления:
- @web-beget-panel - Beget Control Panel
Характеристики:
- Тип: web-panel
- API: ❌ (только Web UI)
- Автоматизация: ❌
- Управление: Ручное через браузер
Внешние API сервисы:
- @service-stripe-example - Stripe Payment API
Характеристики:
- Тип: external-service
- API: ✅ REST
- SDK: Python, JS, PHP, Ruby, Go, Java
- Назначение: Пример интеграции
Облачные хранилища:
- infra-yandex-disk - Яндекс.Диск через rclone
- infra-s3-beget - Beget S3 Storage
Характеристики:
- Тип: cloud-storage
- Доступ: rclone mount
- Назначение: Бэкапы, обмен файлами
- Работает как: Локальная папка (FUSE)
Сетевые папки:
- infra-file-exchange - SSH/SSHFS File Exchange
Характеристики:
- Тип: network-share
- Протокол: SSH/SSHFS
- Назначение: Обмен файлами через SSH
- Сервер: @infra-dev-pro:/opt/exchange/
Каждый инфраструктурный проект имеет файл INFRA.yaml с полными метаданными.
infrastructure:
name: "Название инфраструктуры"
type: vps | shared-hosting | web-panel | external-service | cloud-storage | network-share
provider: "Провайдер"
purpose: "Назначение"
created: "YYYY-MM-DD"
access:
# Различается в зависимости от типа
# SSH, API, Web UI, etc.
capabilities:
# Что может делать эта инфраструктура
related_projects:
# Связи с другими проектами
status:
state: active | inactive | example
criticality: low | medium | high
VPS Server:
infrastructure:
type: vps
hostname: "xirfbwpmvt"
ip: "91.218.142.168"
access:
ssh:
host: "91.218.142.168"
user: "root"
key: "/root/.ssh/id_rsa"
Cloud Storage:
infrastructure:
type: cloud-storage
access:
method: "rclone mount"
remote_name: "beget-s3"
endpoint: "https://s3.ru1.storage.beget.cloud"
related_projects:
hosted_projects:
- "projects/pirotehnika-opencart"
- "projects/site1-wordpress"
used_by:
- "projects/marketplace"
- "projects/pim-drupal"
infrastructure:
server: "@remote-beget-kondurov"
infra_file: ../../INFRA.yaml
@infra- - Собственные серверы/VPS:*
- @infra-dev-pro - Development Production EU
- @infra-dev-prod-rf - Development Production RU
@remote- - Удалённые серверы (не наши):*
- @remote-beget-kondurov - Beget хостинг
@web- - Веб-сервисы без API:*
- @web-beget-panel - Веб-панель управления
@service- - Внешние API сервисы:*
- @service-stripe-example - Stripe API
infra- - Инфраструктурные утилиты:*
- infra-yandex-disk - Библиотека для Яндекс.Диска
- infra-s3-beget - S3 storage
- infra-file-exchange - SSH обмен файлами
Вопрос: Это инфраструктура или приложение?
Инфраструктура → infra/:
- Серверы (VPS, shared hosting)
- Панели управления (web panels)
- Внешние сервисы (Stripe, AWS, etc.)
- Облачные хранилища (S3, Яндекс.Диск)
- Сетевые ресурсы (SSH shares, NFS)
Приложение → projects/:
- Веб-приложения (marketplace, pim-drupal)
- CLI утилиты (nomenclature1c)
- Библиотеки (если не инфраструктурные)
Собственная инфраструктура:
@infra-{назначение}-{локация}
@infra-dev-pro ← Development Production EU
@infra-dev-prod-rf ← Development Production RU
Удалённая инфраструктура:
@remote-{провайдер}-{аккаунт}
@remote-beget-kondurov ← Beget хостинг, аккаунт kondurov
Веб-панели (без API):
@web-{сервис}-{тип}
@web-beget-panel ← Beget панель управления
Внешние сервисы (с API):
@service-{название}
@service-stripe-example ← Stripe API
Инфраструктурные утилиты:
infra-{назначение}
infra-yandex-disk ← Библиотека для Яндекс.Диска
infra-s3-beget ← S3 storage
infra-file-exchange ← SSH обмен файлами
Для нового проекта:
infra/INFRA.yaml с метаданнымиШаблон:
infrastructure:
name: "..."
type: vps | shared-hosting | web-panel | external-service | cloud-storage | network-share
provider: "..."
purpose: "..."
created: "YYYY-MM-DD"
access:
# Специфично для типа
capabilities:
# Что может делать
related_projects:
# Связанные проекты
status:
state: active | inactive | example
criticality: low | medium | high
В INFRA.yaml:
related_projects:
hosted_projects: # Проекты размещённые на этой инфраструктуре
- "projects/app1"
- "projects/app2"
used_by: # Проекты использующие эту инфраструктуру
- "projects/app3"
В PROJECT.yaml:
infrastructure:
server: "@infra-dev-pro"
infra_file: ../../INFRA.yaml
Каждый инфраструктурный проект следует стандартной структуре:
infra/@example-project/
├── INFRA.yaml ← Метаданные инфраструктуры
├── design/
│ └── PROJECT.md ← Описание проекта
├── infrastructure/
│ ├── CONNECTION.md ← Данные подключения
│ └── SERVER.md ← Спецификации сервера
├── management/
│ ├── README.md ← Операционное управление
│ └── TODO.md ← Текущие задачи
└── solution/ ← Опционально (если есть код)
├── scripts/
└── lib/
find $WORKSPACE/infra -name "INFRA.yaml" -type f | sort
grep -l "type: vps" $WORKSPACE/infra/*/INFRA.yaml
grep -l "type: cloud-storage" $WORKSPACE/infra/*/INFRA.yaml
grep -r "server: \"@infra-dev-pro\"" $WORKSPACE/projects/
Всего: 8 инфраструктурных проектов
Версия: 1.0.0
Дата: 2025-11-17
Автор: Claude Code
Статус: ✅ Активный стандарт