# gateman **Repository Path**: reepu/gateman ## Basic Information - **Project Name**: gateman - **Description**: No description available - **Primary Language**: JavaScript - **License**: Not specified - **Default Branch**: main - **Homepage**: https://gateman.reepu.com - **GVP Project**: No ## Statistics - **Stars**: 1 - **Forks**: 0 - **Created**: 2025-12-24 - **Last Updated**: 2026-05-04 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # Gateman
Gateman Logo **现代化 APISIX 管理控制台** [![Vue](https://img.shields.io/badge/Vue-3.4+-4FC08D?logo=vue.js)](https://vuejs.org/) [![TDesign](https://img.shields.io/badge/TDesign-1.9+-0052D9)](https://tdesign.tencent.com/) [![Docker](https://img.shields.io/badge/Docker-Ready-2496ED?logo=docker)](https://www.docker.com/) [![License](https://img.shields.io/badge/License-MIT-green)](LICENSE)
--- ## 简介 Gateman 是基于 **Apache APISIX Admin API** 的现代化管理控制台,采用最新的前端技术栈重构,提供直观、高效的网关管理体验。支持本地登录认证、双因素认证(MFA)、审计日志等安全特性,符合等保 2.0 / 密评相关要求。 ### 功能特性 - 🔐 **安全认证** - 本地登录认证(SHA-256 + Salt 哈希) - JWT Token 会话管理 - 双因素认证(TOTP,支持 Google Authenticator) - 登录失败锁定机制 - 密码强度策略 - 🛡️ **安全合规** - 审计日志记录(登录、操作、密码修改) - 日志导出功能 - 会话超时管理 - 等保 2.0 / 密评合规设计 - 🛣️ **路由管理** - 可视化配置路由规则、优先级、请求/响应重写 - ⬆️ **上游服务** - 节点管理、健康检查配置、负载均衡算法选择 - 🔌 **插件中心** - 动态表单引擎,根据插件 Schema 自动渲染配置界面 - 👥 **服务与消费者** - 完整的生命周期管理 - 📊 **监控仪表盘** - 实时统计展示,预留 Prometheus 接口 - 🎨 **暗黑模式** - 支持亮色/暗色主题切换 - 🐳 **Docker 就绪** - 多阶段构建,镜像体积 < 50MB ## 技术栈 | 类别 | 技术 | |------|------| | 前端框架 | Vue 3.4+ (Composition API) | | 开发语言 | TypeScript 5.0+ (严格模式) | | UI 组件库 | TDesign Vue Next | | 状态管理 | Pinia | | 路由管理 | Vue Router 4 | | 构建工具 | Vite 5.0+ | | 运行环境 | OpenResty (Nginx + Lua) | | 容器化 | Docker Multi-stage Build | ## 快速开始 ### 开发模式 ```bash # 克隆项目 git clone https://github.com/your-org/gateman.git cd gateman # 安装依赖 yarn install # 启动开发服务器 yarn dev ``` 访问 http://localhost:5173 即可看到管理界面。 **默认登录凭据:** - 用户名:`admin` - 密码:配置文件中设置的密码(首次运行需要修改 `public/config.yaml`) ### Docker 部署 #### 构建镜像 ```bash # 构建镜像 docker build -t gateman:latest . ``` #### 单独运行 ```bash # 生成密码哈希 # 使用 Python: python3 -c " import hashlib, os username = 'admin' password = 'YourPassword123!' salt = os.urandom(16).hex() hash_value = hashlib.sha256(f'{username}:{password}:{salt}'.encode()).hexdigest() print(f'Salt: {salt}') print(f'Hash: {hash_value}') " # 运行容器 docker run -d \ --name gateman \ -p 8080:80 \ -e GATEMAN_APISIX_ADMIN_URL=http://your-apisix:9180 \ -e GATEMAN_API_KEY=your-api-key \ -e GATEMAN_ADMIN_PASSWORD_HASH=生成的哈希值 \ -e GATEMAN_ADMIN_SALT=生成的盐值 \ gateman:latest ``` 访问 http://localhost:8080 即可使用。 #### Docker Compose(推荐) ```bash # 复制环境变量配置 cp .env.example .env # 编辑 .env,设置以下变量: # - GATEMAN_API_KEY: APISIX Admin Key # - GATEMAN_ADMIN_PASSWORD_HASH: 密码哈希 # - GATEMAN_ADMIN_SALT: 密码盐值 vim .env # 启动完整环境(Gateman + APISIX + etcd) docker-compose up -d ``` ## 环境变量 | 变量名 | 说明 | 默认值 | |--------|------|--------| | `GATEMAN_APISIX_ADMIN_URL` | APISIX Admin API 地址 | `http://apisix:9180` | | `GATEMAN_API_KEY` | APISIX 管理员 Token | 无(必须设置) | | `GATEMAN_ADMIN_USERNAME` | 管理员用户名 | `admin` | | `GATEMAN_ADMIN_PASSWORD_HASH` | 密码哈希(SHA-256) | 无(建议设置) | | `GATEMAN_ADMIN_SALT` | 密码盐值 | 无(建议设置) | | `GATEMAN_MFA_ENABLED` | 是否启用 MFA | `false` | | `GATEMAN_MFA_SECRET` | TOTP 密钥(Base32) | 无 | ## 配置文件 ### config.yaml 结构 ```yaml # 服务配置 server: name: "Gateman" version: "1.0.0" session_timeout: 28800 # 会话超时(秒),默认 8 小时 max_login_attempts: 5 # 最大登录失败次数 lockout_duration: 1800 # 账户锁定时间(秒) # APISIX 配置 apisix: admin_url: "http://apisix:9180" api_key: "your-api-key" timeout: 30000 retry_count: 3 # 管理员配置 admin: username: "admin" password_hash: "sha256-hash" password_salt: "random-salt" mfa: enabled: false secret: "base32-secret" issuer: "Gateman" password_policy: min_length: 10 require_uppercase: true require_lowercase: true require_digit: true require_special: true # 安全配置 security: audit: enabled: true retention_days: 180 login: captcha_type: "math" # 界面配置 ui: theme: "light" language: "zh-CN" ``` ## 目录结构 ``` gateman/ ├── docs/ │ └── SECURITY_COMPLIANCE.md # 等保/密评合规备忘录 ├── public/ │ └── config.yaml # 运行时配置(Docker 注入) ├── src/ │ ├── api/ # API 请求封装 │ ├── auth/ # 认证模块(登录、JWT、MFA) │ ├── components/ # 公共组件 │ ├── composables/ # 组合式函数 │ ├── config/ # 配置加载 │ ├── layouts/ # 布局组件 │ ├── router/ # 路由配置 │ ├── stores/ # Pinia 状态 │ ├── types/ # TypeScript 类型 │ └── views/ # 页面视图 ├── Dockerfile # 多阶段构建 ├── docker-compose.yml # 编排示例 ├── nginx.conf # OpenResty 配置 ├── entrypoint.sh # 启动脚本 └── package.json ``` ## 安全特性 ### 已实现 - ✅ SHA-256 + Salt 密码哈希 - ✅ JWT Token 会话管理 - ✅ 双因素认证(TOTP) - ✅ 登录失败锁定 - ✅ 密码强度策略 - ✅ 审计日志记录 - ✅ 会话超时管理 - ✅ 安全 Headers(X-Frame-Options, X-Content-Type-Options 等) ### 需要后端支持 详见 [docs/SECURITY_COMPLIANCE.md](docs/SECURITY_COMPLIANCE.md) - 🔴 真实 IP 获取 - 🔴 审计日志持久化 - 🔴 多用户支持 - 🔴 操作权限控制 ## 开发命令 ```bash # 开发模式 yarn dev # 类型检查 + 构建 yarn build # 代码检查 yarn lint # 代码格式化 yarn format # 预览构建结果 yarn preview ``` ## 贡献指南 欢迎提交 Issue 和 Pull Request! ## License [MIT](LICENSE) ---
Made with ❤️ by Gateman Team