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"}]
"""
构建
环境准备
- 参照 Getting Started - The Go Programming Language 安装并配置 Go 语言开发环境 (>=1.18);
- 参考 下载|Node.js 安装 Node.js;
开始构建
克隆代码
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
评论列表