- 🔗 隧道管理 - 创建和管理双向隧道规则
- 🖥️ 节点管理 - 入口/出口节点配置和监控
- 📊 实时统计 - 流量、连接数、带宽监控
- 🔐 证书管理 - CA/Leaf证书自动生成和管理
- 📦 套餐系统 - 灵活的配额和限制管理
- 🔐 验证码系统 - 支持图片验证码和Cloudflare Turnstile
- 💰 钱包系统 - 余额管理、充值、交易记录
- 🔔 通知系统 - 个人通知和全局系统通知
- 📢 公告系统 - 系统公告发布和管理
- ⚙️ 系统设置 - 动态配置验证码、安全策略、通用设置等
- 🎨 现代化UI - 玻璃态设计,渐变色主题
- 🔑 权限系统 - 完善的RBAC权限控制,动态权限刷新
- 👥 用户管理增强 - 搜索、过滤、批量操作
- 📊 管理员面板 - 独立的管理员面板,统计分析功能
- 🎨 现代化界面 - 参考哪吒Stats的优秀设计
- 💬 即时反馈 - Toast通知组件
- 📱 响应式设计 - 完美适配各种设备
- 🌐 防翻译保护 - 避免浏览器翻译导致的问题
- ⚡ 流畅动画 - 平滑的过渡效果
- Go 1.21+
- Node.js 18+
- Redis(可选,用于验证码和缓存)
- SQLite 3
- 克隆项目
git clone https://github.com/your/gkipass.git
cd gkipass- 启动后端
方式一:使用启动脚本(推荐) ⭐
# 交互式启动,自动处理进程冲突
./start.sh
# 停止服务
./stop.sh方式二:使用 Makefile
# 编译并运行
make plane-build
cd bin && ./gkipass-plane
# 或直接运行(开发模式)
make plane-run方式三:手动启动
cd plane
go mod download
go build -o ../bin/gkipass-plane ./cmd
cd ../bin
./gkipass-plane- 启动前端
cd web
npm install
npm run dev- 访问系统
- 访问 http://localhost:3000
- 点击「立即注册」创建账号
- 第一个注册的用户将自动成为管理员 👑
- 登录后即可使用所有功能
问题:注册时一直提示"邮箱已存在"但实际没有该用户
可能原因:有旧的进程在后台运行占用端口
解决方法:
# 方法1:使用停止脚本
./stop.sh
# 方法2:手动停止所有进程
pkill -f plane
pkill -f "go run.*plane/cmd"
# 方法3:检查进程并手动停止
ps aux | grep plane
kill <PID>详细故障排查指南:查看 TROUBLESHOOTING.md
编辑 bin/config.yaml:
captcha:
enabled: true # 是否启用验证码
type: image # 类型: image(图片), turnstile(CF)
enable_login: false # 登录页面是否启用
enable_register: true # 注册页面是否启用
image_width: 240 # 图片验证码宽度
image_height: 80 # 图片验证码高度
code_length: 6 # 验证码长度
expiration: 300 # 过期时间(秒)
turnstile_site_key: "" # Turnstile站点密钥
turnstile_secret_key: "" # Turnstile服务端密钥auth:
jwt_secret: "change-this-in-production" # ⚠️ 生产环境必须更改
jwt_expiration: 24 # Token有效期(小时)database:
sqlite_path: ./data/gkipass.db # SQLite数据库路径
redis_addr: localhost:6379 # Redis地址
redis_password: "" # Redis密码
redis_db: 0 # Redis数据库编号POST /api/v1/auth/register # 用户注册
POST /api/v1/auth/login # 用户登录
POST /api/v1/auth/logout # 用户登出GET /api/v1/users/me # 获取当前用户完整信息(包括订阅、钱包、权限)
GET /api/v1/users/permissions # 获取用户权限详情
GET /api/v1/users/profile # 获取基本信息
PUT /api/v1/users/password # 修改密码
# 管理员接口
GET /api/v1/users # 获取所有用户列表
PUT /api/v1/users/:id/status # 更新用户状态
PUT /api/v1/users/:id/role # 更新用户角色
DELETE /api/v1/users/:id # 删除用户GET /api/v1/captcha/config # 获取验证码配置(公开)
GET /api/v1/captcha/image # 生成图片验证码(公开)
POST /api/v1/captcha/verify # 验证验证码GET /api/v1/wallet/balance # 获取余额
GET /api/v1/wallet/transactions # 获取交易记录
POST /api/v1/wallet/recharge # 充值GET /api/v1/notifications # 获取通知列表
POST /api/v1/notifications/:id/read # 标记为已读
POST /api/v1/notifications/read-all # 全部标记为已读
DELETE /api/v1/notifications/:id # 删除通知# 用户端
GET /api/v1/announcements # 获取有效公告
GET /api/v1/announcements/:id # 获取公告详情
# 管理员端
GET /api/v1/admin/announcements # 获取所有公告
POST /api/v1/admin/announcements # 创建公告
PUT /api/v1/admin/announcements/:id # 更新公告
DELETE /api/v1/admin/announcements/:id # 删除公告# 通用设置
GET /api/v1/admin/settings/general # 获取通用设置(站点名称、描述等)
PUT /api/v1/admin/settings/general # 更新通用设置
# 安全设置
GET /api/v1/admin/settings/security # 获取安全设置(密码策略、登录限制等)
PUT /api/v1/admin/settings/security # 更新安全设置
# 验证码设置
GET /api/v1/admin/settings/captcha # 获取验证码设置
PUT /api/v1/admin/settings/captcha # 更新验证码设置完整API文档请参考:API_DOCUMENTATION.md
- 主题:Glassmorphism(玻璃态)
- 配色:蓝色-紫色-粉色渐变
- 圆角:16-24px(rounded-xl/2xl)
- 阴影:多层次阴影效果
- 动画:平滑过渡(duration-200/300)
--primary-blue: #3b82f6
--primary-purple: #a855f7
--primary-pink: #ec4899
--gradient-main: linear-gradient(to right, #3b82f6, #a855f7, #ec4899)本项目UI参考了 哪吒Stats 的优秀设计。
gkipass/
├── bin/ # 编译输出
│ ├── plane # 后端可执行文件
│ ├── config.yaml # 配置文件
│ └── data/ # 数据目录
├── plane/ # 后端(Go)
│ ├── cmd/ # 入口
│ ├── db/ # 数据库层
│ │ ├── cache/ # Redis缓存
│ │ ├── sqlite/ # SQLite操作
│ │ ├── init/ # 数据结构定义
│ │ └── migrations/ # 数据库迁移
│ ├── internal/
│ │ ├── api/ # API处理器
│ │ │ ├── handler_*.go # 各功能Handler
│ │ │ ├── middleware/ # 中间件
│ │ │ └── router.go # 路由配置
│ │ ├── config/ # 配置管理
│ │ └── service/ # 业务逻辑
│ └── pkg/ # 公共包
└── web/ # 前端(Next.js)
├── src/
│ ├── app/ # 页面
│ │ ├── (auth)/ # 认证页面
│ │ └── (dashboard)/ # 仪表板页面
│ ├── components/ # 组件
│ │ ├── layout/ # 布局组件
│ │ └── ui/ # UI组件
│ ├── hooks/ # React Hooks
│ ├── lib/ # 工具库
│ └── types/ # TypeScript类型
└── public/ # 静态文件
- ✅ JWT令牌认证
- ✅ 密码bcrypt加密
- ✅ 验证码防机器人攻击
- ✅ CORS跨域保护
- ✅ SQL注入防护
- ✅ XSS防护
- ✅ 验证码一次性使用
- ✅ Token自动过期
- 注册和登录(支持验证码)
- 创建和管理隧道
- 查看节点状态
- 订阅套餐
- 查看钱包余额和交易记录
- 接收系统通知
- 查看系统公告
- 用户管理(搜索、过滤、角色管理、批量操作)
- 节点管理
- 套餐管理
- 公告发布和管理
- 系统通知推送
- 系统设置(通用设置、安全设置、验证码配置)
- 数据统计和监控
- 隧道管理(查看所有用户隧道、流量统计)
- 权限管理
欢迎提交Issue和Pull Request!
- Fork本仓库
- 创建特性分支 (
git checkout -b feature/AmazingFeature) - 提交更改 (
git commit -m 'Add some AmazingFeature') - 推送到分支 (
git push origin feature/AmazingFeature) - 开启Pull Request
本项目采用 MIT 许可证。详见 LICENSE 文件。
- Gin - Go Web框架
- Next.js - React框架
- Tailwind CSS - CSS框架
- base64Captcha - Go验证码库
- Zustand - 状态管理
- 哪吒Stats - UI设计灵感
Made with ❤️ by GKI Pass Team
© 2025 GKI Pass. All rights reserved.