GooseForum 快速上手

获取 GooseForum

你可以在 GitHub Release 页面获取已经构建打包完成的主程序。其中每个版本都提供了常见系统架构下可用的主程序,命名规则为GooseForum_操作系统_CPU架构.tar.gz 。比如,普通 64 位 Linux 系统上部署 v0.0.2 版本,则应该下载GooseForum_Linux_x86_64.tar.gz。

启动 GooseForum

#解压获取到的主程序
tar -zxvf GooseForum_OS_ARCH.tar.gz

# 赋予执行权限
chmod +x ./GooseForum

# 启动 GooseForum
./GooseForum serve

GooseForum 在首次启动时,会创建初始管理员账号,管理员账号为admin、密码为gooseforum。如果你在个人中心更改了密码后忘记管理员密码,你可以通过执行./GooseForum user:changePassword --userId=1 --password=q1234567890命令进行重置。

GooseForum 默认会监听99端口。你可以在浏览器中访问 http://服务器IP:99 进入 GooseForum。

如果你需要进入管理员页面可以通过访问 http://服务器IP:99/app/admin 进入

以上步骤操作完后,最简单的部署就完成了。你可能需要一些更为具体的配置,才能让 GooseForum 更好的工作,具体流程请参考下面的配置流程。

配置文件

GooseForum 启动总会默认检查执行的同级目录是否存在config.toml,如果不存在则会进行创建,同时使用本文件进行项目启动。默认情况下,你不需要更改任何配置。如果有需要你可以参考下方相关配置文件解释

[app]
name = "app"
env = "production" # APP_ENV in local,production 会影响某些加载逻辑,生产环境不要更改
debug = false # 日志会更详细一般不用调整

[server]
url = "http://localhost" # 影响一些地址返回的url ,例如 rss sitemap
port = 99 # 启动端口

[footer]
url = "https://github.com/leanCodeBox/GooseForum" # 项目
text = "Powered by GooseForum"

[jwtopt]
signingKey="signingKey" # 项目生成的为一个随机 signingKey 你和别人的不会一样,一般情况不用修改,修改的话,会导致已经登录的用户退出登录。
validTime = 604800

[mail]
host = "smtp.example.com" # 邮箱相关配置,可以用来邮件激活
port = 587
username = "noreply@example.com"
password = "your-password"
from_name = "GooseForum"

[db]
migration = "on" # on,off # 数据库迁移 ,如果你没有进行GooseForum 版本替换,可以启动一次后调整为 off
backupSqlite = true # 是否定时备份sqlite数据库 
backupDir = "./storage/databasebackup/" # 备份地址
keep = 7 # 备份数量
spec = "0 3 * * *" # cron定时 ,这一句是每天凌晨3点更新,默认不用调整

[db.default]
connection = "sqlite"# in mysql sqlite # 默认使用sqlite 项目使用wal,一般不用调整也可以
url = "db_user:db_pass@tcp(db_host:3306)/db_name?charset=utf8mb4&parseTime=True&loc=Local"
path = "./storage/database/sqlite.db"# :memory:|./storage/database/sqlite.db

maxIdleConnections = 3
maxOpenConnections = 5
maxLifeSeconds = 300

[db.file]
connection = "sqlite"# in mysql sqlite
url = "root:root_password@tcp(127.0.0.1:3306)/goose_forum?charset=utf8mb4&parseTime=True&loc=Local"
path = "./storage/database/file.db"# :memory:|./storage/database/sqlite.db

maxIdleConnections = 3
maxOpenConnections = 5
maxLifeSeconds = 300


[log]
type = "file"# LOG_TYPE stdout,file 日志输出格式,如果使用 stdout 会在控制台输出
path = "./storage/logs/run.log"
rolling = false # 是否开启滚动 true ,false
maxage = 10 # 最大日期
maxsize = 256 # 最大文件大小 MB
maxBackUps = 30 # 最大保留文件数量

[site] # html 中 meta 扩展内容,如果你有baidu等验证网站所有权的需要,可以更改此处
metaList="""
[{"name":"author","content":"GooseForum's Friend"}] 
"""

构建

环境准备

开始构建

克隆代码

git clone git@github.com:leancodebox/GooseForum.git
cd GooseForum

构建项目前后端分离资源并编译完整项目为二进制可执行文件

GooseForum 项目主要由两部分组成:二者均在同一仓库,分别为主目录下的服务端和actorv2目录下的前后端分离项目,需要先构建actorv2 目录下的前后端分离项目。完整命令如下

cd actorv2
npm i
npm run build
cd .. 
go mod tidy
go build 

编译完成后,会在项目根目录下生成最终的可执行文件 GooseForum

构建助手

你可以使用 goreleaser 快速完成构建、打包等操作,使用方法如下:

安装 goreleaser

go install github.com/goreleaser/goreleaser@latest

构建项目

goreleaser build --clean --single-target --snapshot

或者交叉编译出所有可用版本:

goreleaser build --clean --snapshot

评论列表