Версия: 2.0.0
Дата: 2025-12-01
Роль: Control Plane сервер для управления DevOps инфраструктурой
Сервер: 91.218.142.168 (xirfbwpmvt)
Тип: Infrastructure project
Статус: Производственная система ✅
Проектирование:
- design/PROJECT.md — описание проекта, назначение, роль
- design/ARCHITECTURE.md — архитектура, компоненты, ADR
Управление:
- management/README.md — быстрый старт, основные команды
- management/TODO.md — задачи и статус выполнения
Инфраструктура:
- infrastructure/SERVER.md — характеристики сервера, SSH, безопасность
Решения:
- solution/scripts/LOCATION.md — скрипты управления инфраструктурой
DEV-PRO — центральный узел управления для всей инфраструктуры через Claude Code.
Ключевые факты:
- Сервер НЕ используется для хостинга приложений
- Только для координации и управления
- SSH доступ настроен к управляемым серверам
- Минимальные ресурсы (2 cores, 2GB RAM)
- Работа из-под root пользователя
ssh root@91.218.142.168
Аутентификация: SSH key only (пароль отключён)
# SSH ключ
~/.ssh/id_ed25519
# DEV-PROD-RF (45.144.177.147)
ssh root@45.144.177.147
# Тест подключения
ssh root@45.144.177.147 "hostname"
Доступ: ssh root@45.144.177.147
SSH Key: Настроен (passwordless)
Роль: Dev+Prod Platform
- 34 Docker контейнера в 7 стеках
- seller1.ru 🔴 PRODUCTION сервис 24/7
Проект: $WORKSPACE/infra/@dev-prod-rf.server/
cd $WORKSPACE/infra/@dev-pro.server/solution/scripts/
./check-infra.sh
Что проверяет:
- DEV-PRO: uptime, CPU, RAM, disk, Docker
- SSH к DEV-PROD-RF
- DEV-PROD-RF: ресурсы, 34 контейнера
- seller1.ru: доступность (HTTP 200)
cd $WORKSPACE/infra/@dev-pro.server/solution/scripts/
./connect-to-dev-prod-rf.sh
# Или напрямую
ssh root@45.144.177.147
cd $WORKSPACE/infra/@dev-pro.server/solution/scripts/
./backup.sh
Что бэкапится:
- SSH ключи
- Claude workspace
- Системные конфиги
Хранение: /var/backups/dev-pro/
Автоматизация: Cron (воскресенье 03:00)
/root/ # Home directory
├── .ssh/ # SSH ключи
│ └── id_ed25519 # Ключ для DEV-PROD-RF
$WORKSPACE/ # Claude Code workspace
├── pirotehnika/ # Бизнес: пиротехника
├── lider/ # Бизнес: Лидер Авто
├── seller1/ # Бизнес: Seller1
├── infra/ # Инфраструктура
│ ├── @dev-pro.server/ # Этот проект
│ └── @dev-prod-rf.server/# Управляемый сервер
├── architect/ # Методология
└── system/ # Агенты
/var/log/ # Логи
├── auth.log # SSH логи
└── dev-pro-backup.log # Логи backup
/var/backups/dev-pro/ # Backup архивы
Firewall (UFW): Активен
- Port 22 (SSH) — ALLOW
fail2ban: Running
- Защита SSH от брутфорса
SSH:
- Аутентификация только по ключу
- Пароль отключён
htop # Интерактивный мониторинг
free -h # Память
df -h # Диск
uptime # Аптайм и нагрузка
tail -f /var/log/auth.log # SSH логи
journalctl -f # Системные логи
grep "Failed password" /var/log/auth.log | tail -20 # Неудачные входы
systemctl status docker
systemctl status fail2ban
systemctl status ssh
Подробная документация:
- design/PROJECT.md — полное описание проекта
- design/ARCHITECTURE.md — архитектура с ADR
- management/README.md — команды и процедуры
- infrastructure/SERVER.md — детали сервера
Статус: ✅ Производственная система
Дата создания: 2025-10-26
Последнее обновление: 2025-12-01
Дата: 2025-11-09
Версия: 1.0
Control Plane — центральный узел управления для всей DevOps инфраструктуры.
┌─────────────────────────────────────────┐
│ DEV-PRO (91.218.142.168) │
│ Control Plane │
│ │
│ ┌───────────────────────────────────┐ │
│ │ Claude Code Workspace │ │
│ │ $WORKSPACE/ │ │
│ └───────────────────────────────────┘ │
│ │
│ SSH Key: ~/.ssh/id_ed25519 │
│ │
└──────────────┬──────────────────────────┘
│
│ SSH (passwordless)
│
▼
┌─────────────────────────────────────────┐
│ DEV-PROD-RF (45.144.177.147) │
│ Production Platform │
│ │
│ ┌───────────────────────────────────┐ │
│ │ 7 Docker Stacks │ │
│ │ 34 Containers │ │
│ │ seller1.ru 🔴 PRODUCTION │ │
│ └───────────────────────────────────┘ │
└─────────────────────────────────────────┘
Входящие соединения:
- Claude Code → DEV-PRO:22
- Аутентификация: SSH key only
Исходящие соединения:
- DEV-PRO → DEV-PROD-RF:22
- Аутентификация: ~/.ssh/id_ed25519 (passwordless)
Расположение: $WORKSPACE/
Структура:
$WORKSPACE/
├── platform/ # Ядро системы
├── templates/ # Шаблоны проектов
├── projects/
│ ├── @infra-dev-pro/ # Этот проект
│ ├── @infra-dev-prod-rf/
│ └── marketplace/
└── archive/
Мониторинг:
- htop — ресурсы в реальном времени
- free -h — использование RAM
- df -h — использование диска
- uptime — аптайм сервера
Логирование:
- /var/log/auth.log — SSH логи
- journalctl -f — системные логи
Безопасность:
- fail2ban — защита SSH
- UFW firewall — порт 22 открыт
Статус: Активен
Правила:
- Port 22 (SSH) — ALLOW
Статус: Running
Назначение: Защита SSH от брутфорса
Проверка:
systemctl status fail2ban
fail2ban-client status sshd
Расположение: ~/.ssh/
Ключи:
- id_ed25519 — для доступа к DEV-PROD-RF (45.144.177.147)
- id_ed25519.pub — публичный ключ
Настройка:
# Проверка ключа
ls -la ~/.ssh/id_ed25519
# Проверка подключения
ssh root@45.144.177.147 "hostname"
/root/ # Home directory (работа из-под root)
├── .ssh/ # SSH ключи
│ └── id_ed25519 # Ключ для управляемых серверов
└── ...
$WORKSPACE/ # Claude Code workspace
├── platform/
├── templates/
├── projects/
│ ├── @infra-dev-pro/ # Этот проект
│ └── @infra-dev-prod-rf/ # Управляемый сервер
└── archive/
/var/log/ # Системные логи
├── auth.log # SSH логи
├── dev-pro-backup.log # Логи backup
└── ...
/var/backups/dev-pro/ # Backup архивы
├── ssh-keys/
├── workspace/
└── configs/
# CPU, RAM, процессы
htop
# Память
free -h
# Диск
df -h
# Аптайм
uptime
# Активные сессии
who
# SSH логи
tail -f /var/log/auth.log
# Неудачные попытки входа
grep "Failed password" /var/log/auth.log
# Проверка подключения к DEV-PROD-RF
ssh root@45.144.177.147 "uptime"
# Docker контейнеры на DEV-PROD-RF
ssh root@45.144.177.147 "docker ps --format 'table {{.Names}}\t{{.Status}}'"
# Проверка seller1.ru
ssh root@45.144.177.147 "curl -I https://seller1.ru"
~/.ssh/$WORKSPACE//etc/ssh/, /etc/ufw/, /etc/fail2ban//var/backups/dev-pro/# Скрипт backup
$WORKSPACE/infra/@infra-dev-pro/solution/scripts/backup.sh
# Cron задача (опционально)
0 2 * * * $WORKSPACE/infra/@infra-dev-pro/solution/scripts/backup.sh
# Обновление системы
apt update && apt upgrade
# Очистка логов
journalctl --vacuum-time=7d
# Проверка неудачных входов
grep "Failed password" /var/log/auth.log | tail -20
# Проверка fail2ban
fail2ban-client status sshd
Дата: 2025-10-26
Статус: Принято
Контекст:
Control Plane сервер используется исключительно для управления инфраструктурой через Claude Code. Доступ имеет только администратор.
Решение:
Работать из-под root пользователя.
Плюсы:
- Упрощение workflow
- Нет проблем с правами доступа
- Прямой доступ ко всем системным функциям
Минусы:
- Потенциально опасно при ошибке команды
- Не соответствует best practices для multi-user систем
Последствия:
- Требуется повышенная осторожность при выполнении команд
- fail2ban защищает SSH от внешних угроз
- Firewall ограничивает доступ только к SSH
Дата: 2025-10-26
Статус: Принято
Контекст:
Изначально планировалось использовать Docker на Control Plane. Фактически все контейнеры работают на DEV-PROD-RF.
Решение:
Оставить Docker установленным, но не запускать контейнеры.
Плюсы:
- Готовность к возможному будущему использованию
- Минимальное потребление ресурсов (0 контейнеров)
- Доступность Docker CLI для тестирования
Минусы:
- Занимает место (~500MB)
Последствия:
- Docker установлен, но статус: 0 контейнеров
- Основная нагрузка на DEV-PROD-RF
Дата создания: 2025-11-09
Версия: 1.0
Тип проекта: Infrastructure
ID: INFRA-001
Статус: Производственная система ✅
Дата создания: 2025-10-26
Последнее обновление: 2025-11-09
Control Plane сервер для управления DevOps инфраструктурой через Claude Code.
Центральная точка входа для управления удалёнными серверами. Сервер НЕ используется для хостинга приложений — только для координации и управления.
Роль: Control Plane (управление инфраструктурой)
Основные функции:
1. Централизованный доступ через Claude Code
2. SSH управление удалёнными серверами
3. Выполнение deployment скриптов
4. Мониторинг состояния инфраструктуры
5. Координация между серверами
Доступ: ssh root@45.144.177.147
Аутентификация: SSH key (passwordless)
Роль: Dev+Prod Platform с 34 Docker контейнерами
Проект: @infra-dev-prod-rf
SSH ключ: ~/.ssh/id_ed25519 (уже настроен)
Owner: @claude-helper
Team: #devops
Локальная машина
↓ (Claude Code)
DEV-PRO (91.218.142.168)
↓ (SSH: root@45.144.177.147)
DEV-PROD-RF
↓ (Docker commands)
34 Containers
❌ Запускать Docker контейнеры (это Control Plane)
❌ Размещать production приложения
❌ Использовать для высоко-ресурсных задач
❌ Устанавливать базы данных или тяжёлые сервисы
✅ Использовать SSH для управления удалёнными серверами
✅ Держать систему обновлённой
✅ Мониторить SSH access логи
✅ Проверять SSH key connectivity
✅ Держать минимальное потребление ресурсов
Дата создания: 2025-10-26
Версия: 1.0
Hostname: xirfbwpmvt
IP: 91.218.142.168
Роль: Control Plane (управление инфраструктурой)
CPU: 2 cores (AMD EPYC 7763)
RAM: 1.9 GB
Disk: ~30 GB
OS: Ubuntu 22.04.5 LTS
Kernel: 5.15.x
Architecture: x86_64
ssh root@91.218.142.168
Порт: 22
Аутентификация: SSH key only (пароль отключён)
# SSH ключ
~/.ssh/id_ed25519
# Подключение к DEV-PROD-RF
ssh root@45.144.177.147
# Тест подключения
ssh root@45.144.177.147 "hostname"
# Ожидается: leruepecie
Причина: Control Plane не для хостинга, все контейнеры на DEV-PROD-RF.
Статус: Активен
Правила:
Port 22 (SSH) — ALLOW
Команды:
# Статус
ufw status
# Открытые порты
ufw status numbered
Статус: Running
Назначение: Защита SSH от брутфорса
Команды:
# Статус
systemctl status fail2ban
# Статус защиты SSH
fail2ban-client status sshd
# Список заблокированных IP
fail2ban-client status sshd | grep "Banned IP"
# Разблокировать IP
fail2ban-client set sshd unbanip <IP>
Расположение: ~/.ssh/
Ключи:
- id_ed25519 — для доступа к DEV-PROD-RF
- id_ed25519.pub — публичный ключ
Права:
# Должны быть 600
chmod 600 ~/.ssh/id_ed25519
chmod 644 ~/.ssh/id_ed25519.pub
/root/ # Home directory
├── .ssh/ # SSH ключи
│ ├── id_ed25519 # Ключ для DEV-PROD-RF
│ ├── id_ed25519.pub
│ ├── authorized_keys # Входящий доступ
│ └── known_hosts
$WORKSPACE/ # Claude Code workspace
├── platform/ # Ядро системы
│ ├── CLAUDE.md
│ ├── MIGRATION-STATUS.md
│ └── .claude/
├── templates/ # Шаблоны
├── projects/
│ ├── @infra-dev-pro/ # Этот проект
│ ├── @infra-dev-prod-rf/ # Управляемый сервер
│ └── marketplace/
└── archive/
/var/log/ # Логи
├── auth.log # SSH логи
├── dev-pro-backup.log # Логи backup
└── ...
/var/backups/dev-pro/ # Backup архивы
├── ssh-keys/
├── workspace/
└── configs/
# Интерактивный мониторинг
htop
# Память
free -h
# Диск
df -h
# Аптайм и нагрузка
uptime
# SSH логи (реальное время)
tail -f /var/log/auth.log
# Системные логи
journalctl -f
# Неудачные попытки входа
grep "Failed password" /var/log/auth.log | tail -20
# Успешные входы
grep "Accepted publickey" /var/log/auth.log | tail -20
# Docker
systemctl status docker
# fail2ban
systemctl status fail2ban
# SSH
systemctl status ssh
~/.ssh/)$WORKSPACE/)/etc/ssh//etc/ufw//etc/fail2ban/Локально: /var/backups/dev-pro/
Структура:
/var/backups/dev-pro/
├── ssh-keys-YYYY-MM-DD.tar.gz
├── workspace-YYYY-MM-DD.tar.gz
└── configs-YYYY-MM-DD.tar.gz
Ротация: Старше 30 дней автоматически удаляются
# Вручную
$WORKSPACE/infra/@infra-dev-pro/solution/scripts/backup.sh
# Автоматически (cron)
# Каждое воскресенье в 03:00
Логи: /var/log/dev-pro-backup.log
# Обновление системы
apt update && apt upgrade
# Проверка обновлений
apt list --upgradable
# Очистка логов (старше 7 дней)
journalctl --vacuum-time=7d
# Очистка apt cache
apt clean
apt autoremove
# Проверка места на диске
df -h
du -sh /var/* | sort -h
# Неудачные попытки входа
grep "Failed password" /var/log/auth.log | tail -50
# Статус fail2ban
fail2ban-client status sshd
# Открытые порты
ufw status
netstat -tulpn | grep LISTEN
# Статус службы
systemctl status ssh
# Проверка конфига
sshd -t
# Логи
tail -50 /var/log/auth.log
# Перезапуск (осторожно!)
systemctl restart ssh
# Проверка использования
df -h
du -sh /* | sort -h
# Очистка логов
journalctl --vacuum-time=7d
# Очистка apt
apt clean
apt autoremove
# Очистка старых backup
find /var/backups/dev-pro/ -mtime +30 -delete
# Процессы
htop
ps aux --sort=-%cpu | head -10
ps aux --sort=-%mem | head -10
# Нагрузка
uptime
# Статус Docker (должно быть 0 контейнеров)
docker ps
IP: 45.144.177.147
Hostname: leruepecie
SSH: ssh root@45.144.177.147
SSH Key: ~/.ssh/id_ed25519
Роль: Dev+Prod Platform
- 34 Docker контейнера
- 7 Docker стеков
- seller1.ru 🔴 PRODUCTION
Проверка подключения:
ssh root@45.144.177.147 "hostname && uptime"
Документация: $WORKSPACE/infra/@infra-dev-prod-rf/
Дата создания: 2025-10-26
Последнее обновление: 2025-11-09
Статус: ✅ Производственная система