This commit is contained in:
2026-03-18 22:02:22 +08:00
parent 68bea98b81
commit aca5396995

268
README.md
View File

@@ -8,9 +8,12 @@
- **应用管理**: 支持应用的增删改查、版本管理、状态控制、密钥管理
- **API接口管理**: 支持多种加密算法的API接口配置RC4、RSA、易加密等
- **变量管理**: 独立的变量系统,支持变量的增删改查和别名管理
- **函数管理**: 支持自定义函数代码管理,可绑定特定应用或全局使用
- **用户管理**: 完整的用户认证和权限管理系统
- **系统设置**: 灵活的系统配置和参数管理
- **系统安装**: 提供可视化的安装向导,轻松完成数据库和管理员配置
- **仪表盘**: 实时系统状态监控和统计数据展示
- **日志审计**: 详细的登录日志和操作日志记录,保障系统安全
### 🔧 技术特性
- **RESTful API**: 标准的 REST API 接口设计
@@ -18,6 +21,7 @@
- **多种加密算法**: 支持 RC4、RSA、RSA动态、易加密等多种加密方式
- **数据库支持**: 支持 MySQL 和 SQLite 数据库
- **Redis 缓存**: 集成 Redis 缓存提升性能(可选)
- **Excel 导出**: 支持数据导出为 Excel 文件
- **日志系统**: 完整的日志记录和管理,支持日志切割
- **配置管理**: 基于 Viper 的灵活配置系统
@@ -30,14 +34,15 @@
## 技术栈
- **后端**: Go 1.24.1
- **后端**: Go 1.25.0
- **Web 框架**: Gin + 自定义路由
- **数据库**: GORM + MySQL/SQLite
- **缓存**: Redis可选
- **认证**: JWT
- **认证**: JWT + 验证码
- **日志**: Logrus + Lumberjack
- **配置**: Viper
- **前端**: LayUI + JavaScript
- **工具**: Excelize (Excel导出)
- **加密**: 自定义加密工具包
## 项目结构
@@ -58,45 +63,51 @@ networkDev/
│ │ ├── api.go # API接口管理
│ │ ├── app.go # 应用管理
│ │ ├── auth.go # 认证管理
│ │ ├── captcha.go # 验证码管理
│ │ ├── function.go # 函数管理
│ │ ├── handlers.go # 通用处理器
│ │ ├── login_log.go # 登录日志
│ │ ├── operation_log.go # 操作日志
│ │ ├── profile.go # 个人资料
│ │ ├── settings.go # 系统设置
│ │ ├── user.go # 用户管理
│ │ └── variable.go # 变量管理
│ ├── base.go # 基础控制器
── home/ # 前台控制器
└── home.go # 主页控制器
│ ├── default/ # 默认控制器
── install/ # 安装向导控制器
│ └── base.go # 基础控制器
├── database/ # 数据库相关
│ ├── database.go # 数据库连接
│ ├── migrate.go # 数据库迁移
│ └── settings.go # 默认设置初始化
├── middleware/ # 中间件
── logging.go # 日志中间件
── devmode.go # 开发模式中间件
│ ├── install.go # 安装检查中间件
│ ├── logging.go # 日志中间件
│ └── maintenance.go # 维护模式中间件
├── models/ # 数据模型
│ ├── api.go # API接口模型
│ ├── app.go # 应用模型
│ ├── function.go # 函数模型
│ ├── login_log.go # 登录日志模型
│ ├── operation_log.go # 操作日志模型
│ ├── settings.go # 系统设置模型
│ ├── user.go # 用户模型
│ └── variable.go # 变量模型
├── server/ # 服务器路由配置
│ ├── admin.go # 管理后台路由
│ ├── home.go # 前台路由
│ ├── default.go # 默认路由
│ ├── install.go # 安装路由
│ └── routes.go # 路由注册
├── services/ # 业务逻辑层
│ ├── log_cleanup.go # 日志清理服务
│ ├── operation_log.go # 操作日志服务
│ ├── query.go # 查询服务
│ └── settings.go # 设置服务
├── utils/ # 工具函数
│ ├── encrypt/ # 加密工具包
│ ├── easy.go # 易加密
│ │ ├── rc4.go # RC4加密
│ │ ├── rsa.go # RSA加密
│ │ ├── rsa_dynamic.go # RSA动态加密
│ │ └── rsa_standard.go# RSA标准加密
│ ├── excel/ # Excel工具
│ ├── logger/ # 日志工具
│ │ ├── http.go # HTTP日志
│ │ ├── logger.go # 日志配置
│ │ └── server.go # 服务器日志
│ ├── timeutil/ # 时间工具
│ │ └── server.go # 服务器时间工具
│ ├── cookie.go # Cookie工具
│ ├── crypto.go # 加密工具
│ ├── csrf.go # CSRF防护
@@ -104,24 +115,18 @@ networkDev/
│ └── errors.go # 错误处理
└── web/ # Web 资源
├── assets/ # 资源文件
│ ├── favicon.svg # 网站图标
│ ├── logo.svg # 系统Logo
│ └── themes.json # 主题配置
├── static/ # 静态资源
│ ├── css/ # 样式文件
├── js/ # JavaScript文件
── lib/ # 第三方库
├── template/ # 模板文件
│ ├── admin/ # 管理后台模板
│ └── index.html # 主页模板
└── public.go # 静态资源处理
└── template/ # 模板文件
├── admin/ # 管理后台模板
── default/ # 默认模板
└── install/ # 安装向导模板
```
## 快速开始
### 环境要求
- Go 1.24.1 或更高版本
- Go 1.25.0 或更高版本
- MySQL 5.7+ 或 SQLite 3
- Redis (可选,用于缓存)
@@ -138,83 +143,20 @@ networkDev/
go mod download
```
3. **配置系统**
项目默认使用 SQLite 数据库,配置文件为 `config.json`。
主要配置项:
- **数据库配置**: 默认使用 SQLite也可配置 MySQL
- **服务器配置**: 默认监听 `0.0.0.0:8080`
- **Redis配置**: 可选,用于缓存(连接失败时自动禁用)
- **安全配置**: JWT密钥、加密密钥等
4. **编译项目**
```bash
go build -o networkDev main.go
```
5. **运行项目**
3. **运行项目**
```bash
# 直接运行
./networkDev server
# 或使用 go run
go run main.go server
# 指定端口
./networkDev server -p 8080
# 指定主机和端口
./networkDev server -H 0.0.0.0 -p 8080
```
6. **访问系统**
4. **系统初始化**
打开浏览器访问: `http://localhost:8080`
打开浏览器访问: `http://localhost:8080/install`
默认管理员账号需要通过数据库初始化创建
### 配置说明
主要配置文件位于 `config.json`,包含以下配置项:
#### 服务器配置 (server)
- `host`: 服务器监听地址,默认 `0.0.0.0`
- `port`: 服务器端口,默认 `8080`
- `dist`: Web 资源目录,默认 `./web/`
- `dev_mode`: 开发模式开关
#### 数据库配置 (database)
- `type`: 数据库类型,支持 `sqlite` 或 `mysql`
- `mysql`: MySQL 数据库连接配置
- `host`, `port`, `username`, `password`, `database`
- `charset`: 字符集,默认 `utf8mb4`
- `max_idle_conns`, `max_open_conns`: 连接池配置
- `sqlite`: SQLite 数据库配置
- `path`: 数据库文件路径,默认 `./database.db`
#### Redis 配置 (redis)
- `host`: Redis 服务器地址
- `port`: Redis 端口
- `password`: Redis 密码
- `db`: Redis 数据库编号
#### 日志配置 (log)
- `level`: 日志级别 (debug, info, warn, error)
- `file`: 日志文件路径
- `max_size`: 单个日志文件最大大小 (MB)
- `max_backups`: 保留的日志文件数量
- `max_age`: 日志文件保留天数
#### 安全配置 (security)
- `jwt_secret`: JWT 签名密钥
- `encryption_key`: 数据加密密钥
- `jwt_refresh`: JWT 刷新时间 (小时)
- `cookie`: Cookie 安全配置
- `secure`: HTTPS 安全标志
- `same_site`: SameSite 策略
- `domain`: Cookie 域名
- `max_age`: Cookie 过期时间 (秒)
根据安装向导提示,配置数据库连接和管理员账号即可完成初始化。
### 命令行工具
@@ -232,20 +174,8 @@ networkDev/
# 指定端口启动 (覆盖配置文件)
./networkDev server -p 8080
# 指定主机和端口 (覆盖配置文件)
./networkDev server -H 0.0.0.0 -p 8080
# 使用 go run 方式
go run main.go server
go run main.go --config ./config.json server
```
#### 可用参数
- `--config`: 指定配置文件路径,默认为 `./config.json`
- `-H, --host`: 服务器监听地址,覆盖配置文件设置
- `-p, --port`: 服务器监听端口,覆盖配置文件设置
## API 文档
### 认证接口
@@ -254,29 +184,11 @@ go run main.go --config ./config.json server
- `GET /admin/api/auth/captcha` - 获取验证码
### 应用管理接口
- `GET /admin/api/apps/list` - 获取应用列表(完整信息,支持分页)
- `GET /admin/api/apps/simple` - 获取应用列表简化信息仅包含uuid和name
- `GET /admin/api/apps/list` - 获取应用列表
- `POST /admin/api/apps/create` - 创建应用
- `POST /admin/api/apps/update` - 更新应用
- `POST /admin/api/apps/delete` - 删除应用
- `POST /admin/api/apps/batch_delete` - 批量删除应用
- `POST /admin/api/apps/batch_update_status` - 批量更新应用状态
- `POST /admin/api/apps/update_status` - 更新应用状态
- `POST /admin/api/apps/reset_secret` - 重置应用密钥
- `GET /admin/api/apps/get_app_data` - 获取应用数据
- `POST /admin/api/apps/update_app_data` - 更新应用数据
- `GET /admin/api/apps/get_announcement` - 获取应用公告
- `POST /admin/api/apps/update_announcement` - 更新应用公告
- `GET /admin/api/apps/get_bind_config` - 获取绑定配置
- `POST /admin/api/apps/update_bind_config` - 更新绑定配置
- `GET /admin/api/apps/get_register_config` - 获取注册配置
- `POST /admin/api/apps/update_register_config` - 更新注册配置
### API接口管理
- `GET /admin/api/apis/list` - 获取API接口列表
- `POST /admin/api/apis/update` - 更新API接口配置
- `GET /admin/api/apis/types` - 获取API类型列表
- `POST /admin/api/apis/generate_keys` - 生成加密密钥对
### 变量管理接口
- `GET /admin/variable/list` - 获取变量列表
@@ -285,37 +197,18 @@ go run main.go --config ./config.json server
- `POST /admin/variable/delete` - 删除变量
- `POST /admin/variable/batch_delete` - 批量删除变量
### 用户管理接口
- `GET /admin/api/user/profile` - 获取用户资料
- `POST /admin/api/user/profile/update` - 更新用户资料
- `POST /admin/api/user/password` - 修改密码
### 函数管理接口
- `GET /admin/function/list` - 获取函数列表
- `POST /admin/function/create` - 创建函数
- `POST /admin/function/update` - 更新函数
- `POST /admin/function/delete` - 删除函数
- `POST /admin/function/batch_delete` - 批量删除函数
### 系统管理接口
- `GET /admin/api/settings` - 获取系统设置
- `POST /admin/api/settings/update` - 更新系统设置
- `GET /admin/api/system/info` - 获取系统信息
- `GET /admin/api/dashboard/stats` - 获取仪表盘统计数据
## 开发指南
### 代码规范
- 遵循 Go 官方代码规范
- 使用 gofmt 格式化代码
- 添加必要的注释和文档
- 遵循 RESTful API 设计原则
### 数据库迁移
项目使用 GORM 自动迁移功能,启动时会自动创建和更新数据库表结构。
### 日志系统
项目集成了完整的日志系统,支持:
- 不同级别的日志记录
- HTTP 请求日志
- 服务器状态日志
- 自定义日志格式
- `GET /admin/api/logs` - 获取操作日志
- `GET /admin/api/login_logs` - 获取登录日志
## 部署
@@ -340,77 +233,6 @@ docker run -d -p 8080:8080 networkdev
3. 使用进程管理工具(如 systemd管理服务
## 贡献指南
1. Fork 本项目
2. 创建特性分支 (`git checkout -b feature/AmazingFeature`)
3. 提交更改 (`git commit -m 'Add some AmazingFeature'`)
4. 推送到分支 (`git push origin feature/AmazingFeature`)
5. 创建 Pull Request
## 许可证
本项目采用 MIT 许可证 - 查看 [LICENSE](LICENSE) 文件了解详情。
## 联系方式
如有问题或建议,请通过以下方式联系:
- 提交 Issue
- 发送邮件
- 创建 Pull Request
## 开发状态
### 🚧 当前开发进度
#### ✅ 已完成功能
- **基础架构**: 完整的 MVC 架构,支持模块化开发
- **用户认证**: JWT 认证系统,支持登录/登出/验证码
- **应用管理**: 完整的应用 CRUD 操作,支持配置管理
- **API接口管理**: 支持多种加密算法的接口配置
- **变量管理**: 独立的变量系统,支持别名管理
- **系统设置**: 灵活的配置管理系统
- **仪表盘**: 实时系统监控和统计
- **日志系统**: 完整的日志记录和切割功能
- **数据库**: 支持 SQLite 和 MySQL自动迁移
- **前端界面**: 基于 LayUI 的现代化管理界面
#### 🔄 开发中功能
- **用户权限系统**: 多角色权限管理
- **API 文档**: 自动生成 API 文档
- **数据导入导出**: 支持配置和数据的导入导出
- **监控告警**: 系统状态监控和告警功能
- **插件系统**: 支持第三方插件扩展
#### 📋 计划功能
- **Docker 支持**: 容器化部署
- **集群支持**: 多节点部署和负载均衡
- **WebSocket**: 实时通信功能
- **国际化**: 多语言支持
- **移动端适配**: 响应式设计优化
### 📝 更新日志
#### v0.3.0 (开发中)
- ✅ 重构变量管理系统,移除应用依赖
- ✅ 完善 API 接口管理功能
- ✅ 优化前端用户体验
- ✅ 增强日志系统功能
- 🔄 开发用户权限管理
#### v0.2.0
- ✅ 实现应用管理完整功能
- ✅ 添加 API 接口管理
- ✅ 集成多种加密算法
- ✅ 完善系统设置功能
#### v0.1.0
- ✅ 项目基础架构搭建
- ✅ 用户认证系统
- ✅ 基础管理后台界面
- ✅ 数据库设计和迁移
---
**注意**: 本项目仍在积极开发中,功能和 API 可能会发生变化。建议在生产环境使用前进行充分测试。