GooseForum:Go + Vue 3 现代化开源论坛系统 - 部署与功能详解
-
一、项目简介
GooseForum 是一个现代化的技术交流社区平台,采用 Go + Vue 3 + TailwindCSS 技术栈开发。项目保持简单部署,同时通过服务端 payload 驱动 SPA 体验,并保留 no-js HTML 渲染用于 SEO 和降级访问。
- GitHub 地址:https://github.com/leancodebox/GooseForum
- 在线体验:https://gooseforum.online/
- 开源协议:MIT License
二、核心特性
2.1 用户体系
- 用户注册/登录 — 支持邮箱激活
- 权限管理 — 基于角色的权限控制
- 用户中心 — 个人资料管理、头像上传
- 积分系统 — 签到、发帖、回复奖励
- 管理后台 — 完整的后台管理功能
2.2 内容管理
- 文章发布 — Markdown 编辑器+预览
- 评论系统 — 多级评论回复
- 文章分类 — 灵活的分类管理
- 实时通知 — WebSocket 驱动通知
- 聊天系统 — 实时消息
2.3 技术特性
- 单文件部署 — 编译后单个可执行文件
- SQLite/MySQL 支持 — 默认 SQLite,可选 MySQL
- 自动备份 — 定时数据库备份
- 响应式设计 — 完美支持移动端
- 品牌定制 — 支持自定义 Logo/文字/图片
- Payload 驱动 SPA — 服务端输出页面 payload,前端提供平滑站内切换
- SEO 友好 — 轻量 no-js GoHTML 渲染,兼顾搜索引擎和降级访问
三、快速开始
3.1 方式一:下载预编译版本(推荐)
-
从 GitHub Releases 下载预编译版本
-
解压并启动:
# 解压 tar -zxvf GooseForum_Linux_x86_64.tar.gz # 赋予权限 chmod +x ./GooseForum # 启动服务 ./GooseForum serve- 访问
http://localhost:5234
提示:首次启动后,第一个注册的账号将自动成为管理员3.2 使用 GoReleaser 构建
# 安装 GoReleaser go install github.com/goreleaser/goreleaser@latest # 构建所有平台 goreleaser build --snapshot --clean # 构建当前平台 goreleaser build --snapshot --clean --single-target3.3 方式二:从源码构建
环境要求:
- Go 1.24+
- Node.js 18+
- pnpm
构建步骤:
# 克隆项目 git clone https://github.com/leancodebox/GooseForum.git cd GooseForum # 构建前端 cd resource && pnpm install && pnpm build && cd .. # 构建后端 go mod tidy go build -ldflags="-w -s" . # 启动服务 ./GooseForum serve3.4 开发模式
# 后端热重载 air # 主站和管理后台前端 cd resource && pnpm dev
四、配置说明
GooseForum 启动时自动创建
config.toml:[app] env = "production" # local 或 production [server] port = 5234 # 服务端口 url = "http://localhost" # 站点 URL [db.default] connection = "sqlite" # 数据库类型 (sqlite/mysql) path = "./storage/database/sqlite.db"
详细配置说明:配置文档
五、技术架构
5.1 后端技术栈
- Go 1.24+ — 主要开发语言
- Gin — Web 框架
- GORM — ORM 框架
- SQLite/MySQL — 数据库支持
- JWT — 身份认证
- Cobra — 命令行工具
5.2 前端技术栈
- Vue 3 — 主站和管理后台 UI 框架
- TypeScript — 前端类型支持
- Payload SPA Runtime — 通过
X-Goose-PageJSON payload 实现站内导航 - TailwindCSS 4 — CSS 框架
- GoHTML — 轻量 no-js/SEO 模板
- Vite — 构建工具
5.3 管理后台技术栈
- Vue 3 + TypeScript — 管理后台应用
- TailwindCSS 4 — 独立样式和设计变量
- Reka UI / VueUse — 可访问性基础组件和交互工具
- Unovis — 图表和统计可视化
- SortableJS / vuedraggable — 运营列表拖拽排序
六、项目结构
GooseForum/ ├── app/ # 后端代码 │ ├── bundles/ # 工具包(JWT、缓存、事件) │ ├── console/ # CLI 命令 │ ├── http/ # 控制器、中间件、路由 │ ├── models/ # GORM 模型 │ └── service/ # 业务服务 ├── resource/ # 前端资源 │ ├── src/ │ │ ├── site/ # 主站 Vue 应用 │ │ ├── admin/ # 管理后台 Vue 应用 │ │ ├── runtime/ # 共享 payload 运行时 │ │ ├── styles/ # 主站样式 │ │ └── types/ # 共享前端类型 │ ├── static/ # 静态资源 │ └── templates/ # no-js/SEO GoHTML 模板 ├── docs/ # 文档 ├── main.go # 程序入口 └── config.toml # 配置文件
七、管理功能
7.1 命令行管理
# 设置管理员 ./GooseForum set-user-admin <用户ID> # 设置用户邮箱 ./GooseForum set-user-email <用户ID> <邮箱> # 重置用户密码 ./GooseForum set-user-password <用户ID> <密码>7.2 管理后台功能
- 用户管理 — 搜索、筛选、封禁、删除用户
- 站点设置 — 基本信息、品牌设置、Footer、邮件、安全、发帖设置
- 分类管理 — 创建、编辑、删除分类
- 赞助商管理 — 赞助商等级和用户赞助记录
- 仪表盘 — 流量统计、每日数据
7.3 数据备份
- 自动定时备份 SQLite 数据库
- 可配置备份频率和保留数量
- 备份文件存储在
./storage/databasebackup/目录
八、部署建议
8.1 生产环境部署
- 使用反向代理(Nginx/Apache)
- 配置 HTTPS 证书
- 设置定时备份
- 监控日志文件
8.2 Docker 部署
FROM alpine:latest RUN apk --no-cache add ca-certificates WORKDIR /root/ COPY GooseForum . CMD ["./GooseForum", "serve"]
九、相关文档
- 配置文档 — 详细的配置选项说明
- Resource 前端设计
- Resource UI 规范
- 文章置顶方案
- Resource 管理后台现状