# EasyClickupdateIecRust **Repository Path**: devagame/EasyClickupdateIecRust ## Basic Information - **Project Name**: EasyClickupdateIecRust - **Description**: EasyClickupdateIecRust项目是一个易点云测项目的热更新版本管理系统 功能:1.iec文件上传支持多项目 2.多个项目的iec文件版本管理(切换版本,删除版本,清理旧版本.删除项目) 3.服务端日志系统(信息,错误,警告,请求,更新) 记录了项目的各个版本历史 ,请求历史,版本切换历史,删除历史,项目删除历史 - **Primary Language**: Rust - **License**: MIT - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 2 - **Created**: 2026-01-11 - **Last Updated**: 2026-01-11 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # EasyClick 项目热更新系统 (RUST重构版) ## 项目概述 EasyClick 是一个支持项目热更新的管理系统,使用 Rust 语言重构,提供稳定、高效的更新服务。系统支持版本管理、文件上传下载、日志记录等功能,适用于需要动态更新的项目场景。 [nodejs版本](https://gitee.com/Mr_laogui/EasyClickupdateIecRust) ## 功能特性 - **热更新支持**:无需重启服务即可更新项目版本 - **版本管理**:支持版本切换、回滚、删除和清理 - **文件上传下载**:提供安全可靠的文件传输机制 - **日志记录**:详细记录系统运行日志,便于调试和监控 - **系统监控**:实时监控系统资源使用情况 - **跨域支持**:支持配置允许的跨域来源,便于前后端分离开发 ## 效果图 ![输入图片说明](doc/upload.png) ![输入图片说明](doc/upload2.png) ![输入图片说明](doc/version.png) ![输入图片说明](doc/versions2.png) ![输入图片说明](doc/logs.png) ## 使用说明 ### 启动服务 确保已安装 Rust 和 Cargo,然后运行以下命令启动服务: ```bash cargo run ``` ### 带热重载的开发模式 在开发过程中,可以使用以下命令启用热重载: ```bash cargo watch -x run ``` ### 构建发布版本 构建发布版本时,使用以下命令: ```bash cargo build --release ``` ## 系统架构 ``` updateEC ├── api # 项目存储基础目录 │ ├── logs # 日志存储目录 │ │ └── server.log # 服务器运行日志文件 │ └── projects # 项目存储目录 │ ├── [project] # 项目存储目录 │ │ └── [version].iec # 项目热更新文件 │ └── [project].json # 项目配置文件 ├── doc # 文档目录 ├── src # 源代码目录 │ ├── config # 配置管理模块 │ ├── storage # 存储管理模块 │ │ ├── download # 下载文件存储 │ │ ├── meta # 元数据存储 │ │ ├── update # 更新文件存储 │ │ ├── upload # 上传文件存储 │ │ └── version # 版本管理数据 │ └── utils # 工具类模块 └── static # 静态资源目录 ├── css # 样式文件目录 ├── image # 图片资源目录 │ └── logo.png # 系统Logo图片 ├── js # JavaScript库文件目录 │ └── crypto-js.min.js # 加密算法库 ├── upload.html # 文件上传页面 ├── version-manager.html # 版本管理页面 └── logs.html # 日志查看页面 ``` ## 访问静态页面 1. 访问 `域名端口/static/upload.html` 上传新版本 2. 访问 `域名端口/static/logs.html` 查看系统日志 3. 访问 `域名端口/static/version-manager.html` 管理项目版本 ## 配置文件说明 (config.toml) ```toml [server] port = 3008 # 服务监听端口 workers = 8 # 工作线程数 upload_timeout_ms = 300000 # 上传超时时间(毫秒) max_file_size = 52428800 # 最大文件大小(字节) [paths] base_dir = "api" # 基础目录 projects_dir = "projects" # 项目存储目录 log_file = "server.log" # 日志文件名 logs_dir = "logs" # 日志目录 [logging] max_files = 3 # 保留的日志文件数 max_size = 1048576 # 单个日志文件最大大小(字节) ``` ## API接口说明 ### 基础信息 - **服务地址**:`http://localhost:8080` - **支持的协议**:HTTP/HTTPS ### 主要接口 1. **上传文件**:`POST /api/upload` 2. **获取项目列表**:`GET /api/projects` 3. **版本管理**:`GET /api/versions` 4. **获取日志**:`GET /api/logs` 5. **版本切换**:`POST /api/switch` 6. **版本回滚**:`POST /api/rollback` 7. **删除版本**:`POST /api/delete/version` 8. **清理版本**:`POST /cleanup` 9. **设置项目状态**:`POST /api/set_status` 10. **删除项目**:`POST /api/delete/project` ## 部署指南 (宝塔面板) ### 环境准备 - 安装宝塔面板 - 安装 Nginx(懒人部署无视) - 配置域名解析(不想配的IP也可) - 产品发布为Linux版本需要win版联系我或自行编译 ### 前端静态资源部署 将静态资源文件(static 目录)上传到网站根目录。 ### 后端API服务部署 1. 将 `updateEC-service.sh` 脚本复制到系统目录,与编译后的文件同级。发布版文件为`updateEC` 2. 使用脚本管理服务: ```bash chmod +x updateEC-service.sh ./updateEC-service.sh start ``` ### 懒人部署 上传发布的release版本到 宝塔面板 `/www/wwwroot/目录` 解压后 进入`ecupdate`目录 配置`config.toml`里的端口为自己的项目端口。 在ecupdate目录启动命令行执行` ./updateEC-service.sh start` 无需单独部署前端。 ### HTTPS配置 在宝塔面板中配置 SSL 证书,启用 HTTPS 协议。 ## 开发指南 ### Rust开发环境配置 1. 安装 Rust:`curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh` 2. 安装 Open SSL 开发包(Linux):`sudo apt-get install libssl-dev` ### 常用开发命令 - **启动开发服务器**:`cargo run` - **代码格式化**:`cargo fmt` - **代码检查**:`cargo clippy` ## 版权信息 本项目遵循 MIT 许可协议。详情请查看 `LICENSE` 文件。