跳转至内容
  • 0 赞同
    1 帖子
    10 浏览
    L
    一、项目简介 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-target 3.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 serve 3.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-Page JSON 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 管理后台现状