Skip to content

About

GopherForge(曾用名 go-admin-kit):企业级 Go 微服务后台脚手架 · Gin + React 19 + Ant Design 6 · Traefik 网关 + 7 基础服务 · RBAC / 监控 / 代码生成器 开箱即用

Topics

Resources

Code of conduct

Contributing

Security policy

Stars

39 stars

Watchers

1 watching

Forks

Repository files navigation

GopherForge 微信交流群二维码
📱 欢迎加群 · 加我拉群,一起交流使用与开发

🚀 GopherForge · Go 微服务管理与业务平台

GopherForge(曾用名 go-admin-kit)是一套开源的企业级 Go 微服务管理与业务平台:后端 Go + Gin 按域拆分 16 个 Go 服务(认证 / RBAC / 系统 / 审计 / 文件 / 监控 / 通知 / AI / BPM / 支付等底座,以及 IM 客服、呼叫中心、CRM、公众号、工单、可见度业务线),前端 React 19 + Ant Design 6,Traefik 网关统一鉴权,自带 RBAC 权限、多租户、审计日志、系统监控与代码生成器,make compose-up 一条命令拉起全栈(数据栈与应用栈分离,重建应用不触碰数据)。

0.x 阶段项目:API、数据库表结构和生成代码格式仍可能调整。最新正式版见下方 Release 徽章 与 CHANGELOG,升级注意事项见文档站 · 版本升级;上线前请按部署文档完成密钥替换、迁移备份和回滚演练。

  • 适合谁:需要快速搭建企业内部管理平台 / SaaS 管理后台的 Go 团队;前端更熟 React 而不想用 Vue 的团队;想要真微服务架构(而非单体)作为起点、又不想背业务包袱的项目。
  • 和同类有何不同:底座与业务域分层、业务线可按需裁剪——对比 gin-vue-admin、go-admin、RuoYi 系见 同类项目对比。
  • 多快能跑起来:克隆后 make compose-up,拉起网关 + 16 服务 + 前端 + PostgreSQL/Redis/NATS(所需时间取决于机器资源与镜像下载);或先玩 在线 Demo(纯前端假数据,任意账号可登录)。

✨ 企业级微服务中台 · 底座 + 业务域一体 · 开箱即用 ✨
🐹 Go + Gin  ·  ⚛️ React + Ant Design  ·  🧩 Traefik 网关 + 16 服务

🖥️ 在线体验 Demo → · 📖 文档站 · English
纯前端演示模式(假数据,任意账号可登录);完整功能克隆后 make compose-up 一键启动,或直接拉 ghcr 官方多架构镜像;版本说明见 CHANGELOG

Latest Release CI License Stars Forks Issues PRs Welcome

Go Gin GORM JWT PostgreSQL Redis goose

React TypeScript Vite Ant Design Redux Toolkit React Router Axios

Traefik NATS Docker OpenAPI Prometheus Grafana GitHub Actions


✨ 为什么选 GopherForge

亮点 说明
🧩 底座 + 业务域 基础设施服务(认证/RBAC/系统/日志/文件/监控/通知)之外,内置 IM 客服、呼叫中心、CRM、公众号、AI 增强等业务域,可按需裁剪。
⚠️ 边界清晰 IM / 呼叫 / CRM / 公众号 / 工单 / 可见度为实验业务线(API 与表结构可能调整);支付当前仅 mock 渠道,微信/支付宝适配器尚未实现。
⚛️ 前端统一 React + Ant Design 深空/亮色双主题,一套视觉语言(渐变卡片墙 + 抽屉)。
🐳 开箱即用 Docker Compose 一键拉起依赖、网关/服务与前端;内置 RBAC、日志、监控、迁移。
🏗️ 工程完备 CI、OpenAPI、健康检查、Prometheus、可选链路追踪与对象存储。
🛠️ 易扩展 加业务能力 = 加一个微服务 + 网关标签,不污染底座。

🖼️ 项目截图

页面 🌌 深空暗色 ☁️ 白蓝亮色
🔐 登录页 深空暗色登录页 白蓝亮色登录页
📊 系统概览 深空暗色系统概览 白蓝亮色系统概览
👥 用户管理 深空暗色用户管理 白蓝亮色用户管理
🛡️ 角色管理 深空暗色角色管理 白蓝亮色角色管理
🐘 数据库监控 深空暗色数据库监控 白蓝亮色数据库监控
🔴 Redis 监控 深空暗色 Redis 监控 白蓝亮色 Redis 监控

截图来自真实运行界面,统一使用桌面视口。


🧰 技术栈全景

🐹 后端

层级 技术 说明
语言 Go 1.27 高性能、强类型;采用 generic methods 与新版标准库
HTTP Gin 路由与中间件
ORM GORM + pgx PostgreSQL 访问
迁移 goose 版本化 SQL 迁移
认证 JWT v5 Access / Refresh、吊销与轮转
缓存 Redis 8 限流、在线用户、黑名单等
数据库 PostgreSQL 18 主存储(pgvector 镜像便于扩展)

⚛️ 前端

层级 技术 说明
框架 React 19 现代并发渲染
语言 TypeScript 类型安全
构建 Vite 8 极速开发与构建
UI Ant Design 6 企业级组件库
状态 Redux Toolkit 可预测状态
路由 React Router 7 客户端路由
请求 Axios 拦截器 / Token 刷新

🧩 微服务架构(microservices/)

组件 技术 说明
网关 Traefik 路由、ForwardAuth 统一验签
消息 NATS JetStream 登录事件解耦
服务 底座 auth / identity / system / audit / file / monitor / ai / notify / bpm / pay · 业务线 im / cc / crm / mp / visibility / ticket 共 16 个 Go 服务进程(AI 服务内嵌 worker,无独立 worker 容器;migrate 复用 monitor 镜像),另有 services/shared 公共库
契约 OpenAPI 3.1 从路由生成 + 前端类型

🔭 可观测与存储(可选)

组件 技术
指标 Prometheus 📈(+ node_exporter 主机指标)
看板 Grafana 📊
告警 Alertmanager 🚨(分组去抖 → 站内信闭环)
链路 OpenTelemetry + Jaeger 🔭
对象存储 MinIO(S3 兼容) 📦

⚙️ 工程化

项 技术
容器 Docker Compose 🐳
CI GitHub Actions ⚙️
提交规范 全中文 Conventional 风格(见 CONTRIBUTING.md)

✅ 功能矩阵

能力 状态
🔐 登录 / 邀请制注册 / JWT 刷新与撤销 / 验证码 / TOTP / OAuth ✅
🪪 OAuth2 授权服务端 + OIDC(authorization_code+PKCE / client_credentials / id_token / JWKS / 发现文档,控制台管理应用与令牌) ✅
🛡️ RBAC(用户、角色、权限、部门、菜单) ✅
🏢 多租户(共享库 + tenant_id,登录带租户码;租户开通自动建初始管理员、级联删除、租户级设置覆盖) ✅
📚 字典、公告、系统设置(DB 热配置)、在线用户 ✅
📝 登录日志 / 操作日志 / 审计日志(可选按保留天数自动清理) ✅
📁 文件上传(MinIO / 本地) ✅
📨 短信管理(渠道 provider 可插拔 + 模板 + 发送日志;服务间内部发送契约 SYSTEM_INTERNAL_TOKEN 门控) ✅
🖥️ 服务器 / PostgreSQL / Redis / 定时任务监控(60s 采样历史趋势 1h/24h/7d) ✅
❤️ 健康检查、Prometheus metrics、微服务健康总览(并发探测各服务 ready) ✅
🚨 告警(Prometheus 规则 + Alertmanager → 站内信;monitor 内置告警规则引擎:阈值规则 / 状态机 / 多通道通知(邮件 · 站内信 · 企业微信)+ 静默期 / 规则与事件管理页) ✅
💓 任务中心(分布式任务心跳上报 shared/pkg/jobbeat,超期即亮红) ✅
📋 审批流引擎(仿钉钉设计器 / 流程表单零代码发起 / 会签或签依次 / 条件分支 / 超时自动动作 / 加签委派 / 审批统计 / 终态回调) ✅
🚪 Traefik 网关 + ForwardAuth ✅
📡 NATS 登录事件 ✅
🤖 AI(模型配置 AES-GCM 加密 / 内嵌 agent worker / 用量与配额) ✅
🔔 通知中心(站内信 / 模板 / 多渠道) ✅
💬 IM 智能客服(访客组件 / 坐席工作台 / 知识库 / 敏感词) 🧪
☎️ 呼叫中心(FreeSWITCH 媒体 + control-api;完整验收需部署侧 CC_FS_API_BASE 与媒体环境) 🧪
🤝 CRM(线索 / 客户 / 商机 / 合同回款) 🧪
📱 公众号运营 🧪
🎫 工单 🧪
👁️ AI 可见度 🧪
💳 支付中心(仅 mock 渠道:隔离测试/演示;微信/支付宝适配器尚未实现,配商户凭据不能真实收款) ⚠️
🐳 官方多架构镜像(amd64/arm64)/ Compose 一键启动 ✅

🧪 = 实验业务线:API 与表结构可能调整,生产采用前请单独评估;⚠️ = 能力边界,随版本一并知悉。


🗺️ 架构总览

flowchart LR
    B["🌐 浏览器"] --> GW["🚪 Traefik 网关 :8000"]

    subgraph MS["🧩 microservices/"]
        AUTH["🔐 auth"]
        IDT["👥 identity"]
        SYS["📚 system"]
        AUD["📝 audit"]
        FILE["📁 file"]
        MON["📈 monitor · 迁移/兜底"]
        AI["🤖 ai · 模型/worker"]
        NTF["🔔 notify"]
        BPM["✅ bpm · 审批流"]
        PAY["💳 pay · mock 渠道"]
    end

    subgraph BIZ["🧪 业务线(实验)"]
        IMS["💬 im 客服"]
        CCS["☎️ cc 呼叫"]
        CRMS["🤝 crm"]
        MPS["📱 mp 公众号"]
        VIS["👁️ visibility"]
        TKT["🎫 ticket"]
    end

    GW -. "ForwardAuth 统一验签" .-> AUTH
    GW --> AUTH & IDT & SYS & AUD & FILE & MON & AI & NTF & BPM & PAY
    GW --> BIZ

    subgraph INFRA["🗄️ 共享基础设施"]
        PG[("🐘 PostgreSQL 18 + pgvector")]
        RD[("🔴 Redis 8")]
        NATS["📡 NATS JetStream"]
        MC["📦 MinIO"]
    end

    MS --- PG & RD
    AUTH -- "登录事件" --> NATS -- "持久消费" --> AUD
    FILE --- MC
Loading
  • 业务服务只信任网关注入的 X-Auth-* 头,宿主机端口默认只绑 loopback,外部流量一律经网关。
  • monitor 持有 PathPrefix(/api) 兜底路由(priority 1),并负责共享 goose 迁移。
  • 呼叫媒体面 freeswitch-cc/ 独立 compose(FreeSWITCH + control-api),由中台 cc 服务控制、事件 HMAC 回传;AI worker 内嵌于 ai 服务。

📂 仓库结构

gopherforge/
├── microservices/                 # 🧩 微服务中台
│   ├── services/
│   │   ├── auth/                  # 🔐 认证、令牌、网关验签
│   │   ├── identity/              # 👥 用户 / 角色 / 权限 / 部门
│   │   ├── system/                # 📚 菜单 / 字典 / 公告 / 设置
│   │   ├── audit/                 # 📝 日志与事件消费
│   │   ├── file/                  # 📁 文件与 uploads
│   │   ├── monitor/               # 📈 监控、健康、共享迁移、兜底
│   │   ├── ai/                    # 🤖 模型管理 / 内嵌 agent worker
│   │   ├── notify/                # 🔔 站内信 / 模板 / 渠道
│   │   ├── bpm/                   # ✅ 轻量审批流引擎
│   │   ├── pay/                   # 💳 支付中心(仅 mock 渠道)
│   │   ├── im/  cc/  crm/         # 🧪 实验业务线:客服 / 呼叫 / CRM
│   │   ├── mp/  visibility/  ticket/  # 🧪 公众号 / AI 可见度 / 工单
│   │   └── shared/                # 🧰 跨服务共享包(日志/响应/脱敏)
│   ├── web/                       # ⚛️ React + Ant Design
│   ├── docker-compose.yml
│   └── README.md
├── freeswitch-cc/                 # ☎️ FreeSWITCH 媒体 + control-api(独立 compose)
├── platform/deploy/               # 🔭 Prometheus / Grafana / OTel
├── docs/                          # 📖 工程文档
│   ├── PRODUCT_LINES.md
│   └── design/                    # 数据边界 / 多租户等专项设计
├── CONTRIBUTING.md                # 🤝 贡献与提交规范
└── LOCAL_SETUP.md                 # 💻 本地联调摘要

🚀 快速开始

📋 环境要求

  • 🐳 Docker Desktop
  • 可选本地开发:🐹 Go 1.27.0+、📦 Node.js 20.19+ / 22.12+(推荐 24)、npm

🧩 微服务版

git clone https://github.com/SuperiorChuo/gopherforge.git
cd gopherforge/microservices
cp .env.example .env
cd .. && make compose-up      # 自动:共享网络 → infra 数据栈 → 应用栈

不想本地构建?直接拉官方多架构镜像(amd64 / arm64,每个正式版由 CI 构建推送到 ghcr):

cd microservices
export IMAGE_PREFIX=ghcr.io/superiorchuo/gopherforge/go-admin-kit
export IMAGE_TAG=v0.8.0          # 用最新正式版号(见 Release 徽章)
docker compose pull && docker compose up -d --no-build

生产部署(Nginx/HTTPS、密钥、备份、升级回滚)见 文档站 · 生产部署。

不用 make 的话,等价的三条命令(数据栈与应用栈分离,重建应用不碰数据):

cd microservices
docker network inspect go-admin-kit-net >/dev/null 2>&1 || \
  docker network create --subnet 172.28.0.0/16 go-admin-kit-net
docker compose -p go-admin-kit-infra -f docker-compose.infra.yml up -d
docker compose --profile compose-fallback up -d --build
入口 地址
🚪 统一网关(推荐) http://localhost:8000
⚛️ 前端直连 http://localhost:3000
❤️ 健康检查 http://localhost:8000/api/v1/health/ready
🔐 认证服务调试 http://localhost:8082

更多 👉 microservices/README.md

🔑 默认账号(仅本地开发)

用户名 密码
admin admin123

⚠️ 生产环境请立即修改密码,并替换 .env 中的 JWT_SECRET、数据库与中间件密钥。


🔌 端口一览

用途 端口
前端 3000(推荐走网关 8000)
API 经网关 8000 / 各服务调试 8081+
PostgreSQL 5432
Redis 6379

冲突时在 microservices/.env 中修改 *_PORT 即可。


💻 本地开发(可选)

下面的长时间运行命令请分别放在三个终端执行:

# 终端 1:只起数据栈(PG/Redis/NATS)
cd microservices
make -C .. infra-up

# 终端 2:启动要调试的 Go 服务(以 auth 为例)
cd microservices/services/auth
go run ./cmd

# 终端 3:启动前端 HMR
cd microservices/web
npm ci
npm run dev

完整联调说明 👉 LOCAL_SETUP.md


🧪 验证

cd microservices
(cd services/monitor && go test ./... && go vet ./...)
(cd web && npm run lint && npm run build)
npm run test:smoke:unit && npm run test:contract
API_BASE_URL=http://127.0.0.1:8000/api/v1 npm run smoke:api

OpenAPI:

cd microservices
npm run api:contract
git diff --exit-code -- services/monitor/docs/openapi.json

📁 配置与文档

说明 路径
环境变量 microservices/.env.example
迁移 / OpenAPI microservices/services/monitor/migrations/、docs/openapi.json
📖 文档站(教程/模块文档/二开指南) https://superiorchuo.github.io/gopherforge/docs/
📜 更新日志(与 Release notes 同源) 文档站 · 更新日志
❓ 常见问题 FAQ 文档站 · FAQ
⬆️ 版本升级指南 文档站 · 版本升级
同类项目对比 docs/comparison.md
产品线对照 docs/PRODUCT_LINES.md
安全说明 docs/SECURITY.md · SECURITY.md
工程说明 docs/ENGINEERING.md

🔒 安全提示

上线前请至少替换:

  • 🔑 JWT_SECRET
  • 🐘 PostgreSQL / 🔴 Redis / 📦 MinIO / 📊 Grafana 等密码与密钥
  • 👤 默认管理员密码策略
  • 🌐 CORS_ALLOW_ORIGINS

🛠️ 如何扩展业务

底座与业务域分层。要新增业务能力或裁剪实验业务线,推荐:

  1. 在 microservices/services/ 下新建一个业务微服务,加入 go.work。
  2. 在 docker-compose.yml 补一个服务块 + Traefik 路由标签(PathPrefix + 可选 ForwardAuth)。
  3. 迁移落到 monitor/migrations/(共享 goose 真源)。
  4. 前端在 web/src/pages/ 加页面、api/ 加接口、菜单种子补条目。

原则:底座保持通用,业务域以「新微服务 + 网关标签」接入,避免把脚手架做成巨石。


🤝 开源协作

Contributing Code of Conduct Issues


📄 License

本项目基于 MIT License 开源。

如果这个项目对你有帮助,欢迎 ⭐ Star · 🍴 Fork · 🔧 PR,一起把它打造成更好用的企业级微服务平台!

About

GopherForge(曾用名 go-admin-kit):企业级 Go 微服务后台脚手架 · Gin + React 19 + Ant Design 6 · Traefik 网关 + 7 基础服务 · RBAC / 监控 / 代码生成器 开箱即用

Topics

Resources

Code of conduct

Contributing

Security policy

Stars

39 stars

Watchers

1 watching

Forks

Releases

Packages

Used by

Contributors

Languages