Files
NetworkAuth/README.md
skyle1995 3990ec01c6 Add public functions
Fix a large number of bugs
Optimize the description information
2025-10-27 21:06:41 +08:00

416 lines
14 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# NetworkDev开发中
一个基于 Go 语言开发的网络应用管理系统提供应用程序管理、API接口管理、变量管理、用户认证等功能的 Web 管理平台。
## 功能特性
### 🚀 核心功能
- **应用管理**: 支持应用的增删改查、版本管理、状态控制、密钥管理
- **API接口管理**: 支持多种加密算法的API接口配置RC4、RSA、易加密等
- **变量管理**: 独立的变量系统,支持变量的增删改查和别名管理
- **用户管理**: 完整的用户认证和权限管理系统
- **系统设置**: 灵活的系统配置和参数管理
- **仪表盘**: 实时系统状态监控和统计数据展示
### 🔧 技术特性
- **RESTful API**: 标准的 REST API 接口设计
- **JWT 认证**: 基于 JWT 的安全认证机制
- **多种加密算法**: 支持 RC4、RSA、RSA动态、易加密等多种加密方式
- **数据库支持**: 支持 MySQL 和 SQLite 数据库
- **Redis 缓存**: 集成 Redis 缓存提升性能(可选)
- **日志系统**: 完整的日志记录和管理,支持日志切割
- **配置管理**: 基于 Viper 的灵活配置系统
### 🎨 界面特性
- **响应式设计**: 支持多种设备和屏幕尺寸
- **现代化 UI**: 基于 LayUI 的现代化管理界面
- **主题支持**: 支持明暗主题切换
- **实时更新**: 支持数据的实时刷新和更新
- **片段化加载**: 采用 AJAX 片段加载提升用户体验
## 技术栈
- **后端**: Go 1.24.1
- **Web 框架**: Gin + 自定义路由
- **数据库**: GORM + MySQL/SQLite
- **缓存**: Redis可选
- **认证**: JWT
- **日志**: Logrus + Lumberjack
- **配置**: Viper
- **前端**: LayUI + JavaScript
- **加密**: 自定义加密工具包
## 项目结构
```
networkDev/
├── cmd/ # 命令行工具
│ ├── root.go # 根命令定义
│ └── server.go # 服务器启动命令
├── config/ # 配置文件和配置管理
│ ├── config.go # 配置加载和验证
│ ├── security.go # 安全配置
│ └── validator.go # 配置验证器
├── constants/ # 常量定义
│ └── status.go # 状态常量
├── controllers/ # 控制器层
│ ├── admin/ # 管理后台控制器
│ │ ├── api.go # API接口管理
│ │ ├── app.go # 应用管理
│ │ ├── auth.go # 认证管理
│ │ ├── handlers.go # 通用处理器
│ │ ├── settings.go # 系统设置
│ │ ├── user.go # 用户管理
│ │ └── variable.go # 变量管理
│ ├── base.go # 基础控制器
│ └── home/ # 前台控制器
│ └── home.go # 主页控制器
├── database/ # 数据库相关
│ ├── database.go # 数据库连接
│ ├── migrate.go # 数据库迁移
│ └── settings.go # 默认设置初始化
├── middleware/ # 中间件
│ └── logging.go # 日志中间件
├── models/ # 数据模型
│ ├── api.go # API接口模型
│ ├── app.go # 应用模型
│ ├── settings.go # 系统设置模型
│ ├── user.go # 用户模型
│ └── variable.go # 变量模型
├── server/ # 服务器路由配置
│ ├── admin.go # 管理后台路由
│ ├── home.go # 前台路由
│ └── routes.go # 路由注册
├── services/ # 业务逻辑层
│ ├── query.go # 查询服务
│ └── settings.go # 设置服务
├── utils/ # 工具函数
│ ├── encrypt/ # 加密工具包
│ │ ├── easy.go # 易加密
│ │ ├── rc4.go # RC4加密
│ │ ├── rsa.go # RSA加密
│ │ ├── rsa_dynamic.go # RSA动态加密
│ │ └── rsa_standard.go# RSA标准加密
│ ├── logger/ # 日志工具
│ │ ├── http.go # HTTP日志
│ │ ├── logger.go # 日志配置
│ │ └── server.go # 服务器日志
│ ├── timeutil/ # 时间工具
│ │ └── server.go # 服务器时间工具
│ ├── cookie.go # Cookie工具
│ ├── crypto.go # 加密工具
│ ├── csrf.go # CSRF防护
│ ├── database.go # 数据库工具
│ └── errors.go # 错误处理
└── web/ # Web 资源
├── assets/ # 资源文件
│ ├── favicon.svg # 网站图标
│ ├── logo.svg # 系统Logo
│ └── themes.json # 主题配置
├── static/ # 静态资源
│ ├── css/ # 样式文件
│ ├── js/ # JavaScript文件
│ └── lib/ # 第三方库
├── template/ # 模板文件
│ ├── admin/ # 管理后台模板
│ └── index.html # 主页模板
└── public.go # 静态资源处理
```
## 快速开始
### 环境要求
- Go 1.24.1 或更高版本
- MySQL 5.7+ 或 SQLite 3
- Redis (可选,用于缓存)
### 安装步骤
1. **克隆项目**
```bash
git clone <repository-url>
cd networkDev
```
2. **安装依赖**
```bash
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. **运行项目**
```bash
# 直接运行
./networkDev server
# 或使用 go run
go run main.go server
# 指定端口
./networkDev server -p 8080
# 指定主机和端口
./networkDev server -H 0.0.0.0 -p 8080
```
6. **访问系统**
打开浏览器访问: `http://localhost:8080`
默认管理员账号需要通过数据库初始化创建。
### 配置说明
主要配置文件位于 `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 过期时间 (秒)
### 命令行工具
项目基于 Cobra CLI 框架,提供了丰富的命令行工具支持:
```bash
# 查看帮助信息
./networkDev --help
# 启动服务器
./networkDev server
# 指定配置文件启动
./networkDev --config ./config.json server
# 指定端口启动 (覆盖配置文件)
./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 文档
### 认证接口
- `POST /admin/api/auth/login` - 用户登录
- `POST /admin/api/auth/logout` - 用户登出
- `GET /admin/api/auth/captcha` - 获取验证码
### 应用管理接口
- `GET /admin/api/apps/list` - 获取应用列表(完整信息,支持分页)
- `GET /admin/api/apps/simple` - 获取应用列表简化信息仅包含uuid和name
- `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` - 获取变量列表
- `POST /admin/variable/create` - 创建变量
- `POST /admin/variable/update` - 更新变量
- `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/api/settings` - 获取系统设置
- `POST /admin/api/settings/update` - 更新系统设置
- `GET /admin/api/system/info` - 获取系统信息
- `GET /admin/api/dashboard/stats` - 获取仪表盘统计数据
## 开发指南
### 代码规范
- 遵循 Go 官方代码规范
- 使用 gofmt 格式化代码
- 添加必要的注释和文档
- 遵循 RESTful API 设计原则
### 数据库迁移
项目使用 GORM 自动迁移功能,启动时会自动创建和更新数据库表结构。
### 日志系统
项目集成了完整的日志系统,支持:
- 不同级别的日志记录
- HTTP 请求日志
- 服务器状态日志
- 自定义日志格式
## 部署
### Docker 部署
```bash
# 构建镜像
docker build -t networkdev .
# 运行容器
docker run -d -p 8080:8080 networkdev
```
### 生产环境部署
1. 编译生产版本
```bash
go build -o networkdev main.go
```
2. 配置生产环境配置文件
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 可能会发生变化。建议在生产环境使用前进行充分测试。