Версия: 1.0.0
Дата: 2025-11-13
Статус: Финальная версия ✅
В workspace существует 5 основных типов проектов, которые определяются по префиксу названия:
projects/
├── marketplace/ # 1. LOCAL (без префикса)
├── @infra-prod-rf/ # 2. INFRASTRUCTURE (@infra-)
├── @remote-beget-kondurov/ # 3. REMOTE SERVER (@remote-)
├── @service-stripe/ # 4. EXTERNAL SERVICE (@service-) - с API
└── @web-beget-panel/ # 5. WEB SERVICE (@web-) - только Web UI
Префикс: Нет (обычное имя)
Назначение: Разработка приложений на этом сервере (dev workspace)
Примеры:
- marketplace - Streamlit MVP приложение
- analytics - аналитическая панель
- crm - система управления клиентами
Структура:
projects/{name}/
├── design/
│ ├── PROJECT.md # Цель, описание
│ ├── ROADMAP.md # План развития
│ └── ARCHITECTURE.md # Архитектурные решения
│
├── management/
│ ├── README.md # Quick start
│ └── CHANGELOG.md # История изменений
│
├── solution/
│ ├── mvp/ # MVP версия
│ ├── backend/ # Backend API
│ └── mobile/ # Mobile app
│
└── infrastructure/
├── DEPLOYMENT.md # Куда деплоить
└── SERVER.md # Требования к серверу
Типичные задачи:
- ✅ Разработка кода
- ✅ Тестирование
- ✅ Документирование
- ✅ Деплой на production
Команды:
# Запустить приложение
cd /opt/claude-workspace/projects/marketplace/solution/mvp/code/
./start.sh
# Тесты
pytest tests/
# Деплой
./deploy.sh
Префикс: @infra-
Назначение: Управление целым сервером с root доступом
Примеры:
- @infra-dev-pro - Dev Control Plane (91.218.142.168)
- @infra-prod-rf - Production Server (45.144.177.147)
Структура:
projects/@infra-{name}/
├── design/
│ ├── PROJECT.md # Роль сервера
│ └── ARCHITECTURE.md # Архитектура, ADR
│
├── management/
│ ├── README.md # Quick start команды
│ └── TODO.md # Задачи
│
├── infrastructure/
│ ├── SERVER.md # 🔑 IP, SSH, характеристики
│ ├── DOMAINS.md # Список доменов + SSL
│ └── STACKS.md # Docker стеки, сервисы
│
└── solution/scripts/ # Скрипты управления
├── backup.sh
├── health-check.sh
└── deploy.sh
Типичные задачи:
- ✅ Настройка ОС, безопасность
- ✅ Управление Docker контейнерами
- ✅ Настройка доменов и SSL
- ✅ Мониторинг и бэкапы
- ✅ Firewall, fail2ban
Ключевое отличие: Root доступ, можем делать всё что угодно на сервере
Команды:
# Подключение
ssh root@45.144.177.147
# Проверка всех Docker стеков
for stack in /opt/*-stack; do
cd $stack && docker compose ps
done
# Мониторинг
docker stats --no-stream
free -h
df -h
Префикс: @remote-
Назначение: Работа с чужими серверами или хостингами (ограниченный доступ)
Примеры:
- @remote-beget-kondurov - Shared hosting Beget
- @remote-client-vps - VPS клиента
- @remote-cloud-aws - EC2 instance в AWS
Структура:
projects/@remote-{name}/
├── design/
│ └── PROJECT.md # Описание сервера
│
├── management/
│ └── README.md # Команды управления
│
├── infrastructure/
│ ├── CONNECTION.md # 🔑 SSH доступ, credentials
│ └── SERVER.md # Характеристики, ограничения
│
└── projects/ # Приложения на этом сервере
├── wordpress-site/
│ ├── TYPE.md # type: web-folder
│ ├── LOCATION.md # path: /var/www/site/
│ ├── COMMANDS.md # Как управлять
│ └── NOTES.md # DB, admin пароли
│
├── shop-app/
│ ├── TYPE.md # type: docker-compose
│ └── LOCATION.md # path: /opt/shop-stack/
│
└── python-api/
├── TYPE.md # type: systemd
└── LOCATION.md # path: /opt/api/
Типы проектов на сервере (TYPE.md):
docker-compose - Docker стек
yaml
type: docker-compose
location: /opt/shop-stack/
commands:
start: "docker compose up -d"
logs: "docker compose logs -f"
web-folder - PHP/WordPress/Drupal сайт
yaml
type: web-folder
location: /var/www/wordpress/
web_server: apache2
commands:
restart: "systemctl restart apache2"
systemd - Системный сервис
yaml
type: systemd
location: /opt/python-api/
service_name: python-api
commands:
restart: "systemctl restart python-api"
static - Статичные файлы
yaml
type: static
location: /var/www/html/landing/
web_server: nginx
Типичные задачи:
- ✅ Просмотр логов приложений
- ✅ Перезапуск сервисов
- ✅ Деплой обновлений
- ✅ Работа с БД (бэкапы, запросы)
- ❌ Настройка ОС (ограничен доступ)
Ключевое отличие: Ограниченный доступ (нет root), работаем только с приложениями
Подтипы:
Команды:
# Подключение
ssh username@remote-server.com
# Просмотр логов сайта
tail -f ~/domain.com/logs/error.log
# Перезапуск Docker проекта
cd ~/shop-stack && docker compose restart
# Деплой файлов
scp -r ./build/ username@server:~/domain.com/public_html/
Префикс: @service-
Назначение: Интеграция с внешними сервисами через API или Web UI
Примеры:
- @service-stripe - Платёжная система Stripe
- @service-aws - Amazon Web Services
- @service-github - GitHub API
- @service-supabase - Supabase БД
Структура:
projects/@service-{name}/
├── design/
│ └── PROJECT.md # Зачем используем
│
├── management/
│ ├── README.md # Quick start интеграции
│ └── API.md # Документация API
│
├── infrastructure/
│ ├── CONNECTION.md # 🔑 API credentials
│ │ # Endpoint: https://api.service.com
│ │ # API Key: sk_live_xxxxx
│ │ # Rate limits: 100 req/sec
│ │
│ ├── WEBHOOKS.md # Настроенные webhooks
│ └── LIMITS.md # Квоты, тарифы
│
└── solution/integration/ # Примеры кода
├── python/
│ └── example.py
├── javascript/
│ └── example.js
└── curl/
└── examples.sh
Типичные задачи:
- ✅ Интеграция через API
- ✅ Настройка webhooks
- ✅ Мониторинг квот и лимитов
- ✅ Тестирование API
- ✅ Обработка ошибок
Подтипы:
Команды:
# Тест API
curl https://api.stripe.com/v1/charges \
-u sk_live_xxxxx:
# Проверка квот (AWS CLI)
aws cloudwatch get-metric-statistics \
--namespace AWS/Usage \
--metric-name ResourceCount
# Список webhooks (Stripe CLI)
stripe webhooks list
Префикс: @web-
Назначение: Работа с сервисами через Web UI (без программного API доступа)
Примеры:
- @web-beget-panel - Панель управления Beget
- @web-cpanel-hosting - cPanel хостинга
- @web-analytics-ga - Google Analytics
- @web-grafana-monitoring - Grafana дашборды
- @web-wordpress-admin - WordPress админка
Структура:
projects/@web-{name}/
├── design/
│ └── PROJECT.md # Назначение, что мониторим
│
├── management/
│ ├── README.md # Как работать через веб
│ └── PROCEDURES.md # Частые процедуры
│
└── infrastructure/
├── CONNECTION.md # 🔑 URL, login, password
│ # URL: https://cp.beget.com/
│ # Login: kondurov
│ # Password: xxxxx
│ # Type: web-only (no API)
│ # 2FA: enabled/disabled
│
├── SCREENSHOTS.md # Скриншоты интерфейса
└── NOTES.md # Важные настройки
Типичные задачи:
- ✅ Проверка состояния через дашборды
- ✅ Ручные настройки через UI
- ✅ Мониторинг метрик
- ✅ Управление через формы
- ❌ Автоматизация (нет API)
Ключевое отличие от @service-:
- @service- = есть API (можно автоматизировать)
- @web- = только Web UI (ручная работа)
Подтипы:
Команды:
# Нет команд - только открыть браузер:
open https://cp.beget.com/
# Или сохранить процедуры:
# 1. Зайти на https://cp.beget.com/
# 2. Логин: kondurov, пароль из CONNECTION.md
# 3. Раздел "Домены" -> "Добавить домен"
# 4. ...
Пример CONNECTION.md:
# Connection: Beget Panel
## Web Access
**URL:** https://cp.beget.com/
**Login:** kondurov
**Password:** 12345!a
**2FA:** Disabled
## Quick Access
1. Открыть: https://cp.beget.com/
2. Ввести логин/пароль
3. Разделы:
- SSH/SFTP доступ
- Домены
- Базы данных
- Cron задачи
## Common Tasks
### Добавить домен
1. Меню "Домены"
2. "Добавить домен"
3. Указать домен и папку
4. Сохранить
### Создать БД
1. Меню "MySQL"
2. "Создать базу данных"
3. Указать имя и пароль
4. Сохранить
| Тип | Префикс | Доступ | Что делаем | CONNECTION.md | Автоматизация |
|---|---|---|---|---|---|
| LOCAL | нет | Файловая система | Разработка кода | Не нужен | ✅ Да |
| INFRA | @infra- |
SSH (root) | Управление сервером | SSH в infrastructure/SERVER.md | ✅ Да (скрипты) |
| REMOTE | @remote- |
SSH (ограничен) | Управление приложениями | SSH в infrastructure/CONNECTION.md | ✅ Да (SSH) |
| SERVICE | @service- |
API | Интеграция с API | API key в infrastructure/CONNECTION.md | ✅ Да (API) |
| WEB | @web- |
Web UI только | Ручная работа | URL + login/pass в infrastructure/CONNECTION.md | ❌ Нет (только UI) |
Тип: @remote-
Почему: Есть SSH, но нет root (или не хочу управлять сервером целиком)
Создаём:
projects/@remote-my-vps/
├── infrastructure/CONNECTION.md
└── projects/
├── site1-wordpress/
├── site2-blog/
└── site3-shop/
Тип: @infra-
Почему: Root доступ, буду настраивать ОС, Docker, домены
Создаём:
projects/@infra-my-dedicated/
├── infrastructure/
│ ├── SERVER.md
│ ├── DOMAINS.md
│ └── STACKS.md
└── solution/scripts/
Тип: @service-
Почему: Работаем через API, нет SSH доступа
Создаём:
projects/@service-stripe/
├── infrastructure/CONNECTION.md # API key
└── solution/integration/
└── python/stripe-checkout.py
Тип: LOCAL (без префикса)
Почему: Код здесь, разрабатываю локально
Создаём:
projects/my-app/
├── design/
├── solution/mvp/
└── management/
Тип: @web-
Почему: Доступ только через Web UI, нет API
Создаём:
projects/@web-beget-panel/
├── infrastructure/
│ └── CONNECTION.md # URL, login, password
└── management/
└── PROCEDURES.md # Как делать через UI
Типичный сценарий:
marketplace - разрабатываем код@infra-prod-rf - есть production серверmarketplace/infrastructure/DEPLOYMENT.md указываем ссылку на @infra-prod-rf# marketplace/infrastructure/DEPLOYMENT.md
production:
server: "@infra-prod-rf"
location: "/opt/marketplace-stack/"
deploy_command: "rsync -avz . root@45.144.177.147:/opt/marketplace-stack/"
# LOCAL проект
Claude, создать проект analytics используя шаблон streamlit-mvp-v1
# INFRA проект
Claude, создать @infra- проект для сервера my-prod
# REMOTE проект
Claude, создать @remote- проект для Beget хостинга
# SERVICE проект
Claude, создать @service- проект для Stripe API
marketplace, analytics, crm@infra-{назначение-локация}@infra-dev-pro, @infra-prod-rf, @infra-staging-eu@remote-{провайдер-имя}@remote-beget-kondurov, @remote-aws-ec2-main, @remote-client-vps@service-{название-сервиса}@service-stripe, @service-aws, @service-github@web-{название-сервиса}@web-beget-panel, @web-cpanel, @web-analytics-gaВсегда в: infrastructure/CONNECTION.md или infrastructure/CREDENTIALS.md
Опции безопасности:
Открытый текст (если git private)
yaml
password: "mypassword123"
Исключить из git
bash
echo "**/CONNECTION.md" >> .gitignore
echo "**/CREDENTIALS.md" >> .gitignore
Зашифровать (будущее улучшение)
yaml
password: "encrypted:base64encodedvalue"
Ссылка на 1Password/Vault
yaml
password: "1password://vault/item/field"
platform/CLAUDE.md - главные правила работыplatform/PLATFORM_STATUS.md - состояние всех серверов и проектовtemplates/ - шаблоны для создания проектовprojects/ - все проектыВерсия: 1.0.0
Дата: 2025-11-13
Статус: ✅ Финальная версия
Следующие шаги:
1. Создать шаблоны для @remote- и @service- проектов
2. Обновить platform/CLAUDE.md с этой типологией
3. Обновить PLATFORM_STATUS.md со списком всех проектов