293 lines
9.1 KiB
Markdown
293 lines
9.1 KiB
Markdown
# Cubenet CLI - Command Line Interface
|
||
|
||
## 📋 Описание
|
||
|
||
`cubenet-cli` — это полнофункциональный инструмент для управления Cubenet Backend из командной строки. Он позволяет запускать сервисы в **фоне**, останавливать их, собирать, тестировать и просматривать логи — всё без необходимости открывать несколько терминалов.
|
||
|
||
### ⭐ Основные возможности
|
||
|
||
- 🎯 **Фоновый запуск** всех сервисов одной командой
|
||
- 📊 **Real-time статус** всех сервисов
|
||
- 📝 **Просмотр логов** с фильтрацией и подсветкой
|
||
- ⚙️ **Управление процессами** (start/stop/restart)
|
||
- 🔨 **Сборка и тестирование** из CLI
|
||
- 📂 **Автоматическое логирование** каждого сервиса
|
||
- 🔍 **Проверка здоровья** сервисов
|
||
|
||
## 🚀 Quick Start
|
||
|
||
```bash
|
||
# 1. Запустить все в фоне
|
||
cargo run -p cubenet-cli -- start
|
||
|
||
# 2. Проверить статус
|
||
cargo run -p cubenet-cli -- status
|
||
|
||
# 3. Открыть в браузере
|
||
# http://localhost:8000/swagger-ui.html
|
||
```
|
||
|
||
## 💻 Основные команды
|
||
|
||
### start - Запустить сервисы в фоне
|
||
|
||
```bash
|
||
# Все сервисы
|
||
cargo run -p cubenet-cli -- start
|
||
|
||
# Конкретный сервис
|
||
cargo run -p cubenet-cli -- start --service api_gateway
|
||
```
|
||
|
||
### stop - Остановить сервисы
|
||
|
||
```bash
|
||
# Все сервисы
|
||
cargo run -p cubenet-cli -- stop
|
||
|
||
# Конкретный сервис
|
||
cargo run -p cubenet-cli -- stop --service api
|
||
```
|
||
|
||
### status - Статус сервисов (Real-time)
|
||
|
||
```bash
|
||
cargo run -p cubenet-cli -- status
|
||
```
|
||
|
||
Показывает какие сервисы RUNNING/STOPPED и пути к логам.
|
||
|
||
### logs - Просмотр логов
|
||
|
||
```bash
|
||
# Все логи
|
||
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 - Перезагрузить сервисы
|
||
|
||
```bash
|
||
# Все сервисы
|
||
cargo run -p cubenet-cli -- restart
|
||
|
||
# Конкретный
|
||
cargo run -p cubenet-cli -- restart --service api_gateway
|
||
```
|
||
|
||
### build - Собрать
|
||
|
||
```bash
|
||
# Все
|
||
cargo run -p cubenet-cli -- build
|
||
|
||
# Конкретный
|
||
cargo run -p cubenet-cli -- build --service api_gateway
|
||
|
||
# Release
|
||
cargo run -p cubenet-cli -- build --release
|
||
```
|
||
|
||
### test - Тесты
|
||
|
||
```bash
|
||
# Все тесты
|
||
cargo run -p cubenet-cli -- test
|
||
|
||
# Конкретный пакет
|
||
cargo run -p cubenet-cli -- test --package audit_logger
|
||
```
|
||
|
||
### config - Конфигурация
|
||
|
||
```bash
|
||
cargo run -p cubenet-cli -- config
|
||
```
|
||
|
||
Показывает все доступные сервисы, их статус и доступные команды.
|
||
|
||
## 🎯 Типичный workflow
|
||
|
||
```bash
|
||
# 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`:
|
||
|
||
```bash
|
||
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'
|
||
```
|
||
|
||
Тогда можно использовать просто:
|
||
|
||
```bash
|
||
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
|
||
|
||
```bash
|
||
# Справка
|
||
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
|