diff --git a/LICENSE b/LICENSE new file mode 100644 index 0000000..922e0fc --- /dev/null +++ b/LICENSE @@ -0,0 +1,21 @@ +MIT License + +Copyright (c) 2025 NetworkDev + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. \ No newline at end of file diff --git a/README.md b/README.md new file mode 100644 index 0000000..e1408bb --- /dev/null +++ b/README.md @@ -0,0 +1,219 @@ +# NetworkDev + +一个基于 Go 语言开发的网络设备管理系统,提供应用程序管理、用户认证、卡片管理等功能的 Web 管理平台。 + +## 功能特性 + +### 🚀 核心功能 +- **应用管理**: 支持应用的增删改查、版本管理、状态控制 +- **更新管理**: 支持自动更新、手动下载、强制更新等多种更新方式 +- **用户管理**: 完整的用户认证和权限管理系统 +- **卡片管理**: 支持多种卡片类型的管理和统计 +- **系统设置**: 灵活的系统配置和参数管理 + +### 🔧 技术特性 +- **RESTful API**: 标准的 REST API 接口设计 +- **JWT 认证**: 基于 JWT 的安全认证机制 +- **数据库支持**: 支持 MySQL 和 SQLite 数据库 +- **Redis 缓存**: 集成 Redis 缓存提升性能 +- **日志系统**: 完整的日志记录和管理 +- **配置管理**: 基于 Viper 的灵活配置系统 + +### 🎨 界面特性 +- **响应式设计**: 支持多种设备和屏幕尺寸 +- **现代化 UI**: 基于 LayUI 的现代化管理界面 +- **主题支持**: 支持明暗主题切换 +- **实时更新**: 支持数据的实时刷新和更新 + +## 技术栈 + +- **后端**: Go 1.24.1 +- **Web 框架**: 原生 net/http + 自定义路由 +- **数据库**: GORM + MySQL/SQLite +- **缓存**: Redis +- **认证**: JWT +- **日志**: Logrus +- **配置**: Viper +- **前端**: LayUI + JavaScript + +## 项目结构 + +``` +networkDev/ +├── cmd/ # 命令行工具 +├── config/ # 配置文件和配置管理 +├── constants/ # 常量定义 +├── controllers/ # 控制器层 +│ ├── admin/ # 管理后台控制器 +│ └── home/ # 前台控制器 +├── database/ # 数据库相关 +├── middleware/ # 中间件 +├── models/ # 数据模型 +├── server/ # 服务器路由配置 +├── services/ # 业务逻辑层 +├── utils/ # 工具函数 +│ ├── logger/ # 日志工具 +│ ├── taskutil/ # 任务工具 +│ └── timeutil/ # 时间工具 +└── web/ # Web 资源 + ├── static/ # 静态资源 + └── template/ # 模板文件 +``` + +## 快速开始 + +### 环境要求 + +- Go 1.24.1 或更高版本 +- MySQL 5.7+ 或 SQLite 3 +- Redis (可选,用于缓存) + +### 安装步骤 + +1. **克隆项目** + ```bash + git clone + cd networkDev + ``` + +2. **安装依赖** + ```bash + go mod download + ``` + +3. **配置数据库** + + 复制配置文件并修改数据库连接信息: + ```bash + cp config/config.json.example config/config.json + ``` + + 编辑 `config/config.json` 文件,配置数据库连接参数。 + +4. **运行项目** + ```bash + go run main.go server + ``` + +5. **访问系统** + + 打开浏览器访问: `http://localhost:8080` + +### 配置说明 + +主要配置文件位于 `config/config.json`,包含以下配置项: + +- **服务器配置**: 端口、主机地址等 +- **数据库配置**: 数据库类型、连接参数等 +- **Redis 配置**: Redis 连接参数 +- **JWT 配置**: JWT 密钥和过期时间 +- **日志配置**: 日志级别和输出方式 + +### 命令行工具 + +项目提供了命令行工具支持: + +```bash +# 启动服务器 +go run main.go server + +# 指定端口启动 +go run main.go server -p 8080 + +# 指定主机和端口 +go run main.go server -H 0.0.0.0 -p 8080 +``` + +## API 文档 + +### 认证接口 +- `POST /admin/api/auth/login` - 用户登录 +- `POST /admin/api/auth/logout` - 用户登出 + +### 应用管理接口 +- `GET /admin/api/apps/list` - 获取应用列表 +- `POST /admin/api/apps/create` - 创建应用 +- `PUT /admin/api/apps/update` - 更新应用 +- `DELETE /admin/api/apps/delete` - 删除应用 + +### 用户管理接口 +- `GET /admin/api/users/list` - 获取用户列表 +- `POST /admin/api/users/create` - 创建用户 +- `PUT /admin/api/users/update` - 更新用户 +- `DELETE /admin/api/users/delete` - 删除用户 + +## 开发指南 + +### 代码规范 + +- 遵循 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 + +## 更新日志 + +### v1.0.0 +- 初始版本发布 +- 基础的应用管理功能 +- 用户认证系统 +- 管理后台界面 + +--- + +**注意**: 本项目仍在积极开发中,功能和 API 可能会发生变化。 \ No newline at end of file