# nuwax-cli
**Repository Path**: nuwax/nuwax-cli
## Basic Information
- **Project Name**: nuwax-cli
- **Description**: nuwax-cli
- **Primary Language**: Rust
- **License**: Not specified
- **Default Branch**: main
- **Homepage**: None
- **GVP Project**: No
## Statistics
- **Stars**: 0
- **Forks**: 0
- **Created**: 2026-01-17
- **Last Updated**: 2026-01-17
## Categories & Tags
**Categories**: Uncategorized
**Tags**: None
## README
# Nuwax CLI - Docker 服务智能管理工具



一个专业的 **Docker 服务管理和升级工具**,提供完整的容器化服务生命周期管理。
## 🎯 项目概述
Nuwax CLI 是一个基于 Rust 开发的现代化 Docker 服务管理工具,专门设计用于简化容器化应用的部署、升级、备份和维护工作。通过智能化的升级策略和完善的安全机制,为企业级应用提供可靠的运维支持。
### ✨ 核心特性
- **🐋 智能Docker管理**:完整的Docker容器生命周期管理,支持启动、停止、重启、健康检查
- **🔄 多策略升级**:支持全量升级和增量升级,自动选择最优升级策略
- **💾 完整备份系统**:升级前自动备份,支持数据和应用配置的完整回滚
- **🏗️ 跨平台架构**:原生支持 x86_64 和 aarch64 架构,自动识别系统类型
- **📊 实时监控**:服务状态监控、健康检查、性能指标收集
- **🛡️ 安全可靠**:事务性升级操作,失败自动回滚,保障服务稳定性
- **⚡ 高性能**:基于 Rust 异步运行时,提供卓越的并发性能
- **🎨 现代化CLI**:直观的命令行界面,丰富的进度显示和状态提示
## 📁 项目架构
```
nuwax-cli/
├── 📦 nuwax-cli/ # CLI 主程序
│ ├── src/
│ │ ├── main.rs # 程序入口点
│ │ ├── cli.rs # 命令行定义
│ │ ├── app.rs # 应用主逻辑
│ │ ├── commands/ # 命令处理器
│ │ └── docker_service/ # Docker 服务管理
│ └── Cargo.toml
├── 🔧 client-core/ # 核心业务库
│ ├── src/
│ │ ├── upgrade.rs # 升级管理
│ │ ├── backup.rs # 备份系统
│ │ ├── database.rs # 数据库管理
│ │ ├── api.rs # API 客户端
│ │ ├── container/ # Docker 操作
│ │ └── sql_diff/ # SQL 差异对比
│ └── Cargo.toml
├── 🖥️ cli-ui/ # Tauri GUI 应用 (开发中)
│ ├── src-tauri/ # Tauri 后端
│ └── src/ # 前端界面
├── 📚 docs/ # 技术文档
├── 📋 spec/ # 设计规范
├── 🗄️ data/ # 数据目录
└── 📄 README.md
```
## 🚀 快速开始
### 环境要求
- **Rust**: 1.75+
- **Docker**: 20.10+ 和 Docker Compose v2+
- **操作系统**: Windows 10+, macOS 10.15+, Linux (主流发行版)
- **内存**: 最少 512MB 可用内存
### 安装
#### 从源码构建
```bash
# 克隆仓库
git clone https://github.com/soddygo/nuwax-cli.git
cd nuwax-cli
# 构建项目
cargo build --release
# 安装到系统
cargo install --path .
```
#### 直接运行
```bash
# 开发模式运行
cargo run -- --help
# 生产模式运行
./target/release/nuwax-cli --help
```
### 基础使用
```bash
# 1. 初始化工作环境
nuwax-cli init
# 2. 检查服务状态
nuwax-cli status
# 3. 下载并部署服务
nuwax-cli upgrade
# 4. 启动 Docker 服务
nuwax-cli docker-service start
# 5. 创建备份
nuwax-cli backup
# 6. 查看可用更新
nuwax-cli check-update check
```
## 📖 详细功能
### Docker 服务管理
```bash
# 服务控制
nuwax-cli docker-service start # 启动服务
nuwax-cli docker-service stop # 停止服务
nuwax-cli docker-service restart # 重启服务
nuwax-cli docker-service status # 查看状态
# 镜像管理
nuwax-cli docker-service load-images # 加载镜像
nuwax-cli docker-service arch-info # 架构信息
# 实用工具
nuwax-cli ducker # 启动 Docker TUI
```
### 升级和备份
```bash
# 升级管理
nuwax-cli upgrade # 执行升级
nuwax-cli upgrade --check # 检查更新
nuwax-cli upgrade --force # 强制重装
# 备份恢复
nuwax-cli backup # 创建备份
nuwax-cli list-backups # 列出备份
nuwax-cli rollback # 回滚恢复
nuwax-cli rollback --force # 强制回滚
```
### 自动化运维
```bash
# 自动备份
nuwax-cli auto-backup run # 立即备份
nuwax-cli auto-backup status # 备份状态
# 自动升级部署
nuwax-cli auto-upgrade-deploy run # 自动升级部署
nuwax-cli auto-upgrade-deploy status # 查看配置
```
### 工具命令
```bash
# SQL 差异对比
nuwax-cli diff-sql old.sql new.sql --old-version 1.0 --new-version 2.0
# 缓存管理
nuwax-cli cache clear # 清理缓存
nuwax-cli cache status # 缓存状态
```
## 🛠️ 开发指南
### 开发环境设置
```bash
# 1. 安装 Rust 工具链
rustup update stable
rustup component add rustfmt clippy
# 2. 验证依赖
cargo check --workspace
# 3. 运行测试
cargo test --workspace
# 4. 代码格式化
cargo fmt --all
# 5. 静态分析
cargo clippy --workspace -- -D warnings
```
### 性能测试
```bash
# 运行性能基准测试
cargo bench
# 生成性能报告
cargo bench -- --output-format html
```
### 项目依赖管理
项目使用 Cargo workspace 管理多个子模块:
- **nuwax-cli**: CLI 接口层,依赖 client-core
- **client-core**: 核心业务逻辑,独立可测试
- **cli-ui**: Tauri GUI 应用,独立前端项目
所有依赖版本在根 `Cargo.toml` 中统一管理,确保版本一致性。
## 🔧 配置说明
### 配置文件结构
项目使用 `config.toml` 配置文件,支持智能配置查找:
```toml
[versions]
docker_service = "1.0.0"
patch_version = "1.0.1"
full_version_with_patches = "1.0.1+1"
[docker]
compose_file = "docker/docker-compose.yml"
env_file = "docker/.env"
[backup]
storage_dir = "./backups"
max_backups = 10
[cache]
download_dir = "./cache"
max_cache_size = "1GB"
[updates]
auto_check = true
auto_backup = true
```
### 智能配置查找
配置文件查找顺序:
1. 命令行指定路径 (`--config`)
2. 当前目录 `./config.toml`
3. 向上级目录递归查找
4. 用户主目录 `~/.nuwax/config.toml`
## 🏗️ 系统架构
### 核心组件
- **CLI 接口层**: 命令解析、用户交互、进度显示
- **业务逻辑层**: 升级策略、备份管理、Docker 操作
- **数据访问层**: DuckDB 存储、配置管理、状态持久化
- **API 客户端**: 版本检查、文件下载、服务通信
### 设计模式
- **分层架构**: 清晰的职责分离和依赖管理
- **依赖注入**: 通过 `CliApp` 统一管理组件生命周期
- **策略模式**: 支持多种升级策略的灵活切换
- **Actor 模式**: 数据库操作的并发安全处理
## 🤝 贡献指南
我们欢迎社区贡献!请遵循以下步骤:
1. **Fork** 项目到您的 GitHub 账户
2. **创建** 功能分支 (`git checkout -b feature/amazing-feature`)
3. **提交** 您的更改 (`git commit -m 'Add some amazing feature'`)
4. **推送** 到分支 (`git push origin feature/amazing-feature`)
5. **创建** Pull Request
### 代码规范
- 使用 `cargo fmt` 格式化代码
- 使用 `cargo clippy` 进行静态检查
- 为新功能添加单元测试
- 更新相关文档
## 📄 许可证
本项目采用双许可证:
- [MIT License](LICENSE-MIT)
- [Apache License 2.0](LICENSE-APACHE)
您可以选择其中任一许可证使用本项目。
## 🔗 相关链接
- **项目主页**: https://docx.xspaceagi.com/
- **GitHub 仓库**: https://github.com/soddygo/nuwax-cli
- **问题反馈**: https://github.com/soddygo/nuwax-cli/issues
- **更新日志**: [CHANGELOG.md](CHANGELOG.md)
## 💬 支持
如果您在使用过程中遇到问题或有改进建议:
1. 查看 [文档](docs/) 获取详细信息
2. 搜索 [已知问题](https://github.com/soddygo/nuwax-cli/issues)
3. 创建新的 [Issue](https://github.com/soddygo/nuwax-cli/issues/new)
4. 参与 [讨论](https://github.com/soddygo/nuwax-cli/discussions)
---
**[⬆ 回到顶部](#nuwax-cli---docker-服务智能管理工具)**
Made with ❤️ by the Nuwax Team