# 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 --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