# app-update **Repository Path**: oyhx/app-update ## Basic Information - **Project Name**: app-update - **Description**: 这是一个专为第三方程序设计的自动更新系统,通过配置化的方式实现文件的自动替换和版本管理。 - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2025-07-12 - **Last Updated**: 2026-01-30 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # 应用同步管理平台 一个专为第三方程序设计的应用同步管理平台,支持Web管理界面,通过配置化的方式实现文件的自动同步、版本管理和增量更新。 ## 🌟 核心功能 ### 文件同步管理 - **智能增量同步**:仅下载并替换有差异的文件 - **版本备份回退**:同步前自动创建备份,支持版本回退 - **文件清单生成**:自动生成目录下所有文件的MD5校验清单 - **实时进度监控**:显示同步进度和状态 - **异常处理恢复**:同步失败时自动回退到上一个稳定版本 ### Web管理界面 - **任务管理**:可视化创建和配置同步任务 - **实时日志**:WebSocket实时推送任务执行日志 - **状态监控**:实时监控任务执行状态和进度 - **历史记录**:查看任务执行历史和结果 - **REST API**:完整的API支持前后端分离 ### 安全认证 - **JWT认证**:基于Token的用户认证系统 - **AES加密**:敏感数据加密存储 - **路径安全**:限制文件操作只能在指定路径下进行 - **权限控制**:敏感操作需要认证 ## 🚀 快速开始 ### 系统要求 - Java 8 或以上版本 - Maven 3.6+ (仅编译时需要) - 现代Web浏览器(推荐Chrome、Firefox、Safari最新版本) ### 编译和运行 ```bash # 编译项目 mvn clean package -DskipTests # 启动应用 java -jar target/app-sync-1.0-SNAPSHOT.jar # 或使用启动脚本 ./start.sh build ``` ### 访问应用 启动成功后访问:http://localhost:8019 **默认认证信息:** - 用户名:`admin` - 密码:`adminsync` ## 📋 环境配置 ### 运行环境 ```bash # 开发环境(端口8019,DEBUG日志) java -jar target/app-sync-1.0-SNAPSHOT.jar --spring.profiles.active=dev # 生产环境(端口8019,WARN日志) java -jar target/app-sync-1.0-SNAPSHOT.jar --spring.profiles.active=prod ``` ### 环境变量 ```bash export SERVER_PORT=8020 export APP_SYNC_TASK_STORAGE_BASE_PATH="/custom/tasks/path" export AUTH_JWT_SECRET="your-custom-secret" ``` ## 🔧 配置说明 ### 主要配置文件 - `application.yml`:主配置文件 - `application-dev.yml`:开发环境配置 - `application-prod.yml`:生产环境配置 ### 核心配置项 - **服务端口**:默认8019 - **任务存储路径**:`C:/AppData/Tasks` - **日志文件**:`./logs/app-sync-web.log` - **JWT密钥**:用于访问令牌生成和验证 ## 📁 项目结构 ``` app-sync/ ├── src/main/java/cn/okay/appsync/ │ ├── auth/ # 认证模块 │ ├── config/ # 配置管理 │ ├── service/ # 核心业务服务 │ ├── task/ # 任务管理模块 │ ├── web/ # Web层 │ │ ├── controller/ # REST API控制器 │ │ ├── dto/ # 数据传输对象 │ │ └── websocket/ # WebSocket处理 │ └── security/ # 安全模块 ├── src/main/resources/ │ ├── application.yml # 主配置文件 │ ├── static/ # 静态资源 │ └── templates/ # 模板文件 ├── DOCS/ # 项目文档 └── pom.xml # Maven配置文件 ``` ## 🛠️ 开发指南 ### 开发命令 ```bash # 运行应用程序(开发模式) mvn spring-boot:run # 运行测试 mvn test # 生成测试覆盖率报告 mvn jacoco:report ``` ### API文档 详细的API接口文档请参考:[DOCS/API接口文档.md](DOCS/API接口文档.md) ### WebSocket连接 ``` WebSocket地址:ws://localhost:8019/ws/logs ``` ## 🔍 更新服务器要求 更新服务器需要提供以下文件结构: ``` update-server/ ├── version.txt # 最新版本号 ├── manifest.json # 文件清单 └── files/ # 更新文件目录 ``` ### manifest.json格式 ```json { "version": "2.1.0", "targetDirectory": "./target-app", "generateTime": "2024-01-01T12:00:00.000Z", "files": [ { "filePath": "file1.txt", "fileName": "file1.txt", "md5Hash": "abc123...", "fileSize": 1024, "lastModified": 1640995200000, "fileType": "FILE" } ], "manifestHash": "def456..." } ``` ## 📚 相关文档 - [API接口文档](DOCS/API接口文档.md) - 完整的REST API和WebSocket接口说明 - [快速启动指南](DOCS/快速启动指南.md) - 一键启动和常用命令 - [后端启动说明](DOCS/后端启动说明.md) - 详细的部署和配置说明 - [前端开发指南](DOCS/前端开发指南.md) - 完整的前端开发文档 - [任务管理系统开发文档](DOCS/任务管理系统开发文档.md) - 系统架构设计文档 - [详细开发文档](DOCS/详细开发文档.md) - 完整的开发文档 - [产品需求文档](DOCS/产品需求文档.md) - 产品需求说明 ## 🔧 故障排除 ### 常见问题 1. **端口占用**:修改`server.port`配置或使用其他端口 2. **权限问题**:检查安全路径配置和目录权限 3. **网络连接失败**:检查更新服务器URL和网络连接 4. **磁盘空间不足**:检查备份目录空间,定期清理旧备份 ### 调试模式 ```bash # 启用DEBUG模式 java -jar target/app-sync-1.0-SNAPSHOT.jar --logging.level.cn.okay.appsync=DEBUG ``` ## 🛡️ 技术栈 - **后端框架**:Spring Boot 2.6.3 - **工具库**:Hutool 5.8.31 - **WebSocket**:Spring Boot WebSocket - **HTTP客户端**:Apache HttpClient 4.5.13 - **JSON处理**:Jackson 2.13.1 - **构建工具**:Maven - **日志框架**:SLF4J + Logback - **安全认证**:JWT + AES加密 ## 📄 许可证 本项目采用 MIT 许可证。 ## 🔄 更新日志 ### v0.0.1 - 基础功能实现 - ✅ **Web管理界面**:现代化的任务管理界面 - ✅ **文件同步核心**:智能增量同步和版本管理 - ✅ **任务管理系统**:任务的创建、执行、监控 - ✅ **实时日志推送**:WebSocket实时日志推送 - ✅ **备份回退机制**:文件备份和版本回退功能 - ✅ **REST API接口**:完整的API支持前后端分离 ### v0.0.2 - 分组管理功能 - ✅ **任务分组管理**:支持任务的分组创建和管理 - ✅ **分组基础路径**:每个分组支持独立的基础路径配置 - ✅ **分组权限控制**:基于分组的权限管理 - ✅ **分组界面优化**:Web界面支持分组展示和操作 - ### v0.0.3 - 认证安全增强 - ✅ **新增用户认证系统**:基于JWT的Token认证机制 - ✅ **AES加密支持**:敏感数据AES加密存储 - ✅ **路径安全验证**:限制文件操作安全路径范围 - ✅ **统一接口返回格式**:规范化API响应格式 - ✅ **安全配置管理**:集中管理认证和安全相关配置 ### v0.0.4 - 修复ws连接失败的问题 - ✅ **问题修复**:修复ws连接失败的问题 ### v0.0.5 - 增加脚本执行功能 - ✅ **脚本执行功能**:支持脚本文件的执行和结果返回 ## 🤝 贡献指南 欢迎提交Issue和Pull Request来帮助改进项目。在提交代码前,请确保: 1. 遵循项目的代码规范 2. 添加必要的测试用例 3. 更新相关文档 4. 确保所有测试通过 --- **注意**:本项目目前处于开发阶段,生产环境使用请谨慎评估。