README_ZH.md
July 23, 2026 · View on GitHub

快速开始
下载并启动
从 GitHub Releases 下载最新预编译版本,然后启动:
tar -zxvf GooseForum_Linux_x86_64.tar.gz
chmod +x ./GooseForum
./GooseForum serve
访问 http://localhost:5234。第一个注册用户会自动成为管理员。
从源码构建
环境要求:
- Go 1.26+
- 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
配置
GooseForum 首次启动会自动创建 config.toml,默认使用 SQLite。
[app]
env = "production"
[server]
port = 5234
url = "http://localhost"
[db.default]
connection = "sqlite"
path = "./storage/database/sqlite.db"
MySQL、邮件、备份、安全和站点配置见 配置文档。
管理命令
./GooseForum set-user-admin <用户ID>
./GooseForum set-user-email <用户ID> <邮箱>
./GooseForum set-user-password <用户ID> <密码>
GooseForum 是什么?
GooseForum 是一个技术社区平台,使用 Go、Gin、GORM、Vue 3、TypeScript、Vite 和 TailwindCSS 构建。它以单个可执行文件发布,支持 SQLite/MySQL,并通过服务端 payload 驱动 SPA 体验,同时保留 no-js/SEO 友好的 GoHTML 页面。
在线体验:gooseforum.online
核心特性
- Markdown 主题、回复、分类、通知、私信、草稿和用户主页。
- 角色和权限管理,内置完整管理后台。
- 桌面端与移动端响应式主站界面。
- 主题工作台,支持浅色/深色主题预览和发布。
- 默认 SQLite,可选 MySQL,支持定时备份。
- Payload 驱动站内导航,并保留 no-js GoHTML 降级模板。
- 支持站点 Logo、品牌文案、Footer 和资源自定义。
开发
# 后端热重载
air
# 主站和管理后台前端
cd resource && pnpm dev
管理后台由同一个 Vue 应用提供,访问路径为 /admin,不需要单独启动管理端前端服务。
项目结构
GooseForum/
├── app/ # 后端代码
│ ├── console/ # CLI 命令
│ ├── http/ # 控制器、中间件、路由
│ ├── models/ # GORM 模型
│ └── service/ # 业务服务
├── resource/ # Vue 3 前端、模板和静态资源
│ ├── src/site/ # 主站
│ ├── src/admin/ # 管理后台
│ ├── src/runtime/ # Payload 运行时和共享浏览器工具
│ └── templates/ # GoHTML 降级模板
├── docs/ # 文档
├── main.go
└── config.toml
部署建议
生产环境建议放在 Nginx 或 Caddy 等反向代理后,开启 HTTPS,并配置数据库备份。
最小容器镜像示例:
FROM alpine:latest
RUN apk --no-cache add ca-certificates
WORKDIR /root/
COPY GooseForum .
CMD ["./GooseForum", "serve"]
文档
许可证
MIT License,见 LICENSE。