GoWind 开源生态GoWind 开源生态
首页
框架
GoWind Admin
GoWind CMS
GoWind IM
GoWind UBA
GoWind IoT
GoWind Toolkit
GoWind Quant
GitHub
首页
框架
GoWind Admin
GoWind CMS
GoWind IM
GoWind UBA
GoWind IoT
GoWind Toolkit
GoWind Quant
GitHub
  • 通用指南

    • 快速开始
    • 贡献指南
    • 常见问题 (FAQ)

常见问题 (FAQ)

项目相关

Q: GoWind 是什么?

A: GoWind 是一套基于 Go 语言开发的开源项目生态,包含四个核心产品:

  • GoWind Admin - 企业级后台管理系统
  • GoWind CMS - 高性能内容管理系统
  • GoWind IM - 轻量级即时通讯组件
  • GoWind UBA - 用户行为分析工具

所有项目均基于 MIT 协议开源,可自由用于商业项目。

Q: 如何选择使用哪个产品?

A: 根据业务场景选择:

产品适用场景
Admin企业中后台、管理系统、数据平台
CMS新闻资讯、博客、内容门户、电商平台
IM实时聊天、客服系统、在线协作、游戏社交
UBA产品分析、用户研究、业务决策、数据驱动

各产品可独立使用,也可无缝集成。

Q: GoWind 支持商用吗?

A: 完全支持!所有项目均基于 MIT 协议开源,商用无限制。

Q: 有演示环境吗?

A: 有的,无需部署即可在线体验:

  • Admin 演示:https://demo.admin.gowind.cloud
  • API 文档:https://api.demo.admin.gowind.cloud/docs/
  • 默认账号:admin / admin

环境和安装

Q: 系统最低要求是什么?

A:

  • Go:1.18+
  • Node.js:16+
  • 数据库:MySQL 8.0+ 或 PostgreSQL 12+
  • 缓存:Redis 6.0+(可选)
  • 容器:Docker 20.10+(可选)

Q: 在 Windows 上如何安装?

A:

  1. 下载并安装 Go(https://go.dev/dl/)
  2. 下载并安装 Node.js(https://nodejs.org/)
  3. 使用 Chocolatey 安装 Docker(可选):
    choco install golang nodejs docker-desktop
    npm install -g pnpm
    
  4. 克隆仓库并按照快速开始指南操作

Q: 在 Linux 上如何快速安装所有依赖?

A:

# Ubuntu/Debian
sudo apt-get update
sudo apt-get install -y golang-go nodejs docker.io docker-compose

# 或使用 Docker 环境
docker run -it golang:1.21 bash

Q: 如何使用 Docker 快速启动开发环境?

A: 在项目根目录执行:

docker-compose up -d

这将自动启动:

  • MySQL 数据库
  • Redis 缓存
  • 后端服务
  • 前端开发服务

Q: 如何安装 pnpm?为什么推荐 pnpm?

A: 安装方式:

npm install -g pnpm

推荐理由:

  • 速度快(比 npm 快 3 倍以上)
  • 磁盘占用小(使用硬链接共享依赖)
  • 严格的依赖隔离
  • 更好的单体仓库支持

开发相关

Q: 推荐使用什么编辑器?

A:

  • Go 后端开发:

    • VS Code + Go 扩展(免费)
    • GoLand(付费,功能最强)
    • Vim + vim-go(终端编辑)
  • Vue3 前端开发:

    • VS Code + Volar 扩展(推荐)
    • WebStorm(付费)
    • Vim + coc-volar(终端编辑)

Q: 后端开发时如何启用热加载?

A:

cd backend/app/admin/service

# 使用 air 工具实现热加载
gow run admin

# 或使用传统方式
make watch

每次修改代码后会自动重启服务。

Q: 前端开发时支持热加载吗?

A: 是的,使用以下命令启动前端开发服务:

cd frontend
pnpm dev:antd

Vite 会自动监听文件变化并进行热更新,修改代码后浏览器会实时刷新。

Q: 如何生成 API 代码?

A:

cd backend

# 生成 Go 和 TypeScript 代码
make proto

# 或使用 buf 工具
buf generate

生成的代码会自动放入 api/gen/ 目录。

Q: 如何运行单元测试?

A:

cd backend

# 运行所有测试
make test

# 运行特定包的测试
go test ./app/admin/service/internal/...

# 查看测试覆盖率
make cover

Q: 如何调试后端代码?

A: 使用 VS Code + Go 扩展:

  1. 在代码行号处点击设置断点
  2. 按 F5 或点击"运行和调试"
  3. 选择"Go: Launch program"配置
  4. 代码执行到断点时会暂停

或使用 GoLand 的内置调试器。

Q: 如何修改数据库为 PostgreSQL?

A:

  1. 编辑 backend/app/admin/service/configs/config.yaml
  2. 将数据库配置中的 mysql 改为 postgres
  3. 修改连接字符串:
    data:
      database:
        driver: postgres
        dsn: "host=localhost port=5432 user=postgres password=postgres dbname=admin sslmode=disable"
    

Q: 如何添加新的数据库表?

A: 使用 Ent ORM 框架:

cd backend

# 创建新的 schema
go run entc.go schema <table_name>

# 编辑 schema 文件
vim ent/schema/<table_name>.go

# 生成代码
go generate ./ent

# 创建迁移文件
go run -mod=mod entgo.io/ent/cmd/ent migrate diff <migration_name>

部署相关

Q: 如何构建生产环境版本?

A:

# 后端构建
cd backend
make build

# 前端构建
cd ../frontend
pnpm build:antd

生成的产物:

  • 后端:backend/bin/admin(二进制可执行文件)
  • 前端:frontend/dist/(静态资源目录)

Q: 如何使用 Docker 部署到生产环境?

A:

# 构建 Docker 镜像
docker build -t gowind-admin:latest .

# 运行容器
docker run -d \
  -p 7788:7788 \
  -e DATABASE_DSN="your-database-dsn" \
  -e REDIS_ADDR="your-redis-addr" \
  gowind-admin:latest

# 查看日志
docker logs -f <container-id>

Q: 如何配置反向代理(Nginx)?

A: 参考配置文件 nginx.conf:

upstream admin_backend {
    server localhost:7788;
}

upstream admin_frontend {
    server localhost:5555;
}

server {
    listen 80;
    server_name api.example.com;

    location / {
        proxy_pass http://admin_backend;
        proxy_set_header Host $host;
        proxy_set_header X-Real-IP $remote_addr;
    }
}

server {
    listen 80;
    server_name admin.example.com;

    location / {
        proxy_pass http://admin_frontend;
        proxy_set_header Host $host;
        proxy_set_header X-Real-IP $remote_addr;
    }
}

Q: 如何配置 HTTPS?

A: 使用 Let's Encrypt 证书:

# 安装 Certbot
sudo apt-get install certbot python3-certbot-nginx

# 申请证书
sudo certbot certonly --nginx -d api.example.com -d admin.example.com

# 在 Nginx 配置中启用 SSL
listen 443 ssl;
ssl_certificate /etc/letsencrypt/live/api.example.com/fullchain.pem;
ssl_certificate_key /etc/letsencrypt/live/api.example.com/privkey.pem;

Q: 如何监控服务运行状态?

A: 后端提供健康检查接口:

# 健康检查
curl http://localhost:7788/health

# 指标查询(Prometheus 格式)
curl http://localhost:7788/metrics

问题排查

Q: 启动后端服务时出现 "port already in use" 错误?

A: 解决方案:

# 查找占用 7788 端口的进程
lsof -i :7788

# 杀死进程
kill -9 <PID>

# 或者修改配置文件中的端口
vim backend/app/admin/service/configs/config.yaml
# 修改 server.port

Q: 连接数据库失败?

A: 检查以下项目:

  1. 数据库是否正常运行
  2. 连接字符串是否正确(用户名、密码、主机、端口)
  3. 数据库用户是否有足够权限
  4. 防火墙是否阻止连接
# 测试连接
mysql -h localhost -u root -p

# 或
psql -h localhost -U postgres

Q: 前端无法连接到后端 API?

A: 检查以下项目:

  1. 后端服务是否正常运行
  2. 前端配置中的 API 地址是否正确
  3. CORS 跨域设置是否正确
  4. 网络连接和防火墙
# 查看浏览器控制台(F12)的网络请求
# 检查是否有 CORS 相关错误

Q: 构建前端时出现 "out of memory" 错误?

A: 增加 Node 内存限制:

# 设置 Node 堆内存为 2GB
export NODE_OPTIONS="--max-old-space-size=2048"

# 重新构建
pnpm build:antd

Q: 如何查看详细的错误日志?

A:

# 后端日志(开发模式)
gow run admin 2>&1 | tee app.log

# 前端日志
pnpm dev:antd 2>&1 | tee frontend.log

# 系统日志
docker logs <container-id>
journalctl -u gowind-admin -f

Q: 忘记后台管理员密码怎么办?

A: 使用命令行重置:

cd backend/app/admin/service

# 重置密码
gow run admin cmd admin:reset-password admin newpassword

功能相关

Q: 如何添加新的权限或菜单?

A:

  1. 在数据库中添加权限记录(sys_menu 表)
  2. 前端路由会自动同步权限
  3. 使用 Admin API 重新获取权限列表

Q: 如何自定义主题颜色?

A: 编辑前端主题配置:

// frontend/apps/admin/src/theme.ts
export const themeConfig = {
    colorPrimary: '#1890ff',
    colorSuccess: '#52c41a',
    colorWarning: '#faad14',
    colorError: '#f5222d',
}

Q: 是否支持国际化(i18n)?

A: 是的,已内置国际化支持。语言文件位于 frontend/packages/i18n/:

# 添加新语言
cp -r frontend/packages/i18n/zh-CN frontend/packages/i18n/fr-FR
# 编辑翻译文件

Q: 如何上传文件到对象存储(OSS)?

A: 配置 OSS 参数:

# backend/app/admin/service/configs/config.yaml
oss:
  provider: aliyun  # 或 minio, aws, etc
  bucket: my-bucket
  endpoint: oss-cn-hangzhou.aliyuncs.com
  access_key: your-access-key
  secret_key: your-secret-key

Q: 如何编写自定义 Lua 脚本?

A:

-- scripts/custom.lua
local function hello(name)
  return "Hello, " .. name
end

return {
  hello = hello
}

在 API 中调用:

result := luaEngine.Call("custom.hello", "World")

贡献相关

Q: 如何参与项目贡献?

A:

  1. Fork 项目仓库
  2. 创建功能分支:git checkout -b feature/my-feature
  3. 提交更改:git commit -m 'Add my feature'
  4. 推送分支:git push origin feature/my-feature
  5. 创建 Pull Request

详见 贡献指南

Q: 代码规范有哪些要求?

A:

  • Go:遵循 Go Code Review Comments(gofmt, golint)
  • TypeScript/Vue:使用 ESLint 和 Prettier 格式化
  • Commit 消息:遵循 Conventional Commits 规范

Q: 如何报告 Bug?

A: 在 GitHub Issues 中提交,包含:

  1. Bug 描述和重现步骤
  2. 预期行为和实际行为
  3. 环境信息(OS、Go/Node 版本、浏览器等)
  4. 相关日志或截图

Q: 如何提出新功能建议?

A: 在 GitHub Discussions 中讨论,或创建 GitHub Issues(标记为 enhancement)。


性能和优化

Q: 如何提升后端服务性能?

A:

  1. 启用 Redis 缓存
  2. 使用连接池
  3. 启用数据库查询优化(加索引)
  4. 开启 GZIP 压缩
  5. 使用 CDN 加速静态资源

Q: 前端页面加载速度较慢怎么办?

A:

  1. 启用 Vite 的代码分割
  2. 使用 Tree Shaking 移除未使用代码
  3. 启用 Gzip 压缩
  4. 优化图片大小
  5. 使用 CDN 加速

Q: 如何进行性能测试和监控?

A:

# 后端性能测试
go test -bench=. -benchmem

# 前端性能分析
pnpm build:antd --analyze

# 使用 Prometheus + Grafana 进行实时监控

安全相关

Q: 如何保护 API 接口?

A:

  1. 启用 HTTPS:所有生产环境必须使用 HTTPS
  2. API 认证:使用 JWT Token 或 OAuth
  3. 速率限制:防止 DDoS 攻击
  4. 输入验证:验证所有用户输入
  5. SQL 防注入:使用参数化查询

Q: 如何防止 XSS 攻击?

A:

  • Vue3 模板自动转义 HTML
  • 避免使用 v-html,改用 {{ }}
  • 对用户输入进行清理和验证

Q: 密码如何加密存储?

A: 使用 bcrypt 算法(项目已内置):

// 后端密码加密
hashedPassword := bcrypt.Generate(password)

// 验证密码
bcrypt.Compare(hashedPassword, inputPassword)

Q: 敏感信息(如 API Key)如何管理?

A:

  1. 不要提交到代码仓库
  2. 使用环境变量:export DATABASE_PASSWORD=xxx
  3. 使用密钥管理服务:HashiCorp Vault
  4. 定期轮换:定期更新密钥

Q: 如何进行安全审计?

A:

# 检查依赖漏洞
go list -json -m all | nancy sleuth

# 或使用 Snyk
snyk test

# 代码安全扫描
golangci-lint run

其他问题

Q: 项目文档在哪里?

A:

  • 官方文档:https://gowind.cloud
  • GitHub Wiki:https://github.com/tx7do/go-wind-admin/wiki
  • API 文档:https://api.demo.admin.gowind.cloud/docs/

Q: 如何获得技术支持?

A:

  • 📧 邮件:yanglinbo@gmail.com
  • 💬 GitHub Discussions:https://github.com/tx7do/go-wind-admin/discussions
  • 🐛 Bug 反馈:https://github.com/tx7do/go-wind-admin/issues
  • 📖 文档讨论:https://github.com/tx7do/gowind-website/issues

Q: 项目的开发进度如何?

A: 关注 GitHub Project 面板:https://github.com/tx7do/go-wind-admin/projects

Q: 是否有企业级支持?

A: 是的,可联系 business@gowind.cloud 咨询商业支持服务。

Q: 如何保持最新版本?

A:

# 拉取最新代码
git pull origin main

# 更新依赖
go mod tidy
pnpm update

# 查看版本号
cat version.txt

Q: 项目更新频率如何?

A:

  • 主要功能更新:每月一次
  • Bug 修复和补丁:实时发布
  • 安全补丁:优先级最高,及时发布

更多帮助

如果您的问题未在本文档中列出,欢迎:

  1. 📚 查看 快速开始指南
  2. 📖 阅读 产品文档
  3. 💬 提问:GitHub Discussions
  4. 📧 邮件反馈:yanglinbo@gmail.com
  5. 🐛 报告 Bug:GitHub Issues

感谢您的使用和支持!

Edit this page
Last Updated:: 2/28/26, 10:43 PM
Contributors: Bobo
Prev
贡献指南