9.1 KiB
9.1 KiB
Cubenet CLI - Command Line Interface
📋 Описание
cubenet-cli — это полнофункциональный инструмент для управления Cubenet Backend из командной строки. Он позволяет запускать сервисы в фоне, останавливать их, собирать, тестировать и просматривать логи — всё без необходимости открывать несколько терминалов.
⭐ Основные возможности
- 🎯 Фоновый запуск всех сервисов одной командой
- 📊 Real-time статус всех сервисов
- 📝 Просмотр логов с фильтрацией и подсветкой
- ⚙️ Управление процессами (start/stop/restart)
- 🔨 Сборка и тестирование из CLI
- 📂 Автоматическое логирование каждого сервиса
- 🔍 Проверка здоровья сервисов
🚀 Quick Start
# 1. Запустить все в фоне
cargo run -p cubenet-cli -- start
# 2. Проверить статус
cargo run -p cubenet-cli -- status
# 3. Открыть в браузере
# http://localhost:8000/swagger-ui.html
💻 Основные команды
start - Запустить сервисы в фоне
# Все сервисы
cargo run -p cubenet-cli -- start
# Конкретный сервис
cargo run -p cubenet-cli -- start --service api_gateway
stop - Остановить сервисы
# Все сервисы
cargo run -p cubenet-cli -- stop
# Конкретный сервис
cargo run -p cubenet-cli -- stop --service api
status - Статус сервисов (Real-time)
cargo run -p cubenet-cli -- status
Показывает какие сервисы RUNNING/STOPPED и пути к логам.
logs - Просмотр логов
# Все логи
cargo run -p cubenet-cli -- logs
# Конкретный сервис
cargo run -p cubenet-cli -- logs --service api_gateway
# Последние 100 строк
cargo run -p cubenet-cli -- logs --service api_gateway --lines 100
restart - Перезагрузить сервисы
# Все сервисы
cargo run -p cubenet-cli -- restart
# Конкретный
cargo run -p cubenet-cli -- restart --service api_gateway
build - Собрать
# Все
cargo run -p cubenet-cli -- build
# Конкретный
cargo run -p cubenet-cli -- build --service api_gateway
# Release
cargo run -p cubenet-cli -- build --release
test - Тесты
# Все тесты
cargo run -p cubenet-cli -- test
# Конкретный пакет
cargo run -p cubenet-cli -- test --package audit_logger
config - Конфигурация
cargo run -p cubenet-cli -- config
Показывает все доступные сервисы, их статус и доступные команды.
🎯 Типичный workflow
# 1. Запустить всё в фоне
cargo run -p cubenet-cli -- start
# 2. Проверить что всё работает
cargo run -p cubenet-cli -- status
# 3. Редактируем код...
# 4. Перестраиваем один сервис
cargo run -p cubenet-cli -- build --service api_gateway
# 5. Перезагружаем его
cargo run -p cubenet-cli -- restart --service api_gateway
# 6. Проверяем логи если что-то не так
cargo run -p cubenet-cli -- logs --service api_gateway
# 7. Запускаем тесты перед коммитом
cargo run -p cubenet-cli -- test
# 8. Когда закончили - останавливаем всё
cargo run -p cubenet-cli -- stop
🎨 Output Examples
start command
🚀 Starting all services in background...
→ user_service (port 13001)... ✅
→ api (port 8001)... ✅
→ api_gateway (port 8000)... ✅
📍 Service Status:
● user_service - RUNNING (port 13001)
📝 Logs: /hdd/dev/cubenet_backend/.logs/user_service.log
● api - RUNNING (port 8001)
📝 Logs: /hdd/dev/cubenet_backend/.logs/api.log
● api_gateway - RUNNING (port 8000)
📝 Logs: /hdd/dev/cubenet_backend/.logs/api_gateway.log
💡 Quick commands:
• cubenet status - Show all services status
• cubenet logs -s api_gateway - View API Gateway logs
• cubenet stop - Stop all services
🌐 Access points:
• http://localhost:8000/health
• http://localhost:8000/swagger-ui.html
status command
══════════════════════════════════════════════════════════════════════
📊 Cubenet Services Status
══════════════════════════════════════════════════════════════════════
● RUNNING api_gateway (:8000) - REST Gateway + Swagger
📝 /hdd/dev/cubenet_backend/.logs/api_gateway.log
● RUNNING api (:8001) - Internal API Layer
📝 /hdd/dev/cubenet_backend/.logs/api.log
● RUNNING user_service (:13001) - User gRPC Service
📝 /hdd/dev/cubenet_backend/.logs/user_service.log
══════════════════════════════════════════════════════════════════════
💡 Commands:
• cubenet start - Start all services
• cubenet stop - Stop all services
• cubenet restart -s api_gateway - Restart specific service
• cubenet logs -s api_gateway - View service logs
• cubenet build - Build all services
config command
══════════════════════════════════════════════════════════════════════
⚙️ Cubenet CLI Configuration
══════════════════════════════════════════════════════════════════════
🌐 Environment:
Base URL : http://localhost:8000
Swagger UI : http://localhost:8000/swagger-ui.html
Project : /hdd/dev/cubenet_backend
Version : 0.1.0
📦 Services:
🟢 RUNNING - user_service (port 13001)
🟢 RUNNING - api (port 8001)
🟢 RUNNING - api_gateway (port 8000)
💻 Available Commands:
• start [OPTIONS] - Start services in background
• stop [OPTIONS] - Stop running services
• build [OPTIONS] - Build services (--release, --clean)
• test [OPTIONS] - Run tests (--integration)
• status - Show real-time service status
• logs [OPTIONS] - View service logs (--follow, --lines N)
• restart [OPTIONS] - Restart services
• clean - Clean build artifacts
• docs [--open] - Generate and view documentation
• new <name> --port N - Create new microservice
• config - Show this configuration
🚀 Quick Start:
1. → cubenet start
2. → cubenet status
3. → Open http://localhost:8000/swagger-ui.html
📂 Log Files:
Location : /hdd/dev/cubenet_backend/.logs
📂 Log Files
Логи сохраняются в .logs/:
.logs/
├── api_gateway.log # REST Gateway логи
├── api.log # API слой логи
└── user_service.log # User Service логи
Когда вы запускаете cubenet start, каждый сервис автоматически логирует весь вывод (stdout + stderr) в соответствующий файл.
🔧 Alias для удобства
Добавьте в ~/.bashrc или ~/.zshrc:
alias cs='cargo run -p cubenet-cli -- start'
alias cstop='cargo run -p cubenet-cli -- stop'
alias cst='cargo run -p cubenet-cli -- status'
alias cl='cargo run -p cubenet-cli -- logs'
alias cr='cargo run -p cubenet-cli -- restart'
alias cb='cargo run -p cubenet-cli -- build'
alias ct='cargo run -p cubenet-cli -- test'
Тогда можно использовать просто:
cs # start all
cst # status
cl -s api_gateway # logs api_gateway
cr -s api_gateway # restart api_gateway
cstop # stop all
🌐 Access Services
После cubenet start сервисы доступны:
- Swagger UI: http://localhost:8000/swagger-ui.html
- API Health: http://localhost:8000/health
- API Endpoints: http://localhost:8000/users, etc.
📖 Help
# Справка
cargo run -p cubenet-cli -- --help
# Справка по команде
cargo run -p cubenet-cli -- start --help
# Версия
cargo run -p cubenet-cli -- --version
Version: 0.2.0 (Background Process Management)
Status: ✅ Production Ready