293 lines
9.1 KiB
Markdown
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# 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