Busabase

配置参考

自建部署会读的每一个环境变量——它做什么、配错了会怎样、改了要不要重启。

一体机镜像自己配置自己,下面这些一个都不用管。以下内容适用于 Compose 部署,那里 .env 归你管。

必填

变量默认值需重启作用
BUSABASE_IMAGEbusabase/busabase-premium:latest用哪个镜像。试用走公开的 :trial;签约客户会切到私有 registry。
APP_URL用户实际输入的地址,含协议和端口。
APP_PORT3000对外发布的宿主机端口。
POSTGRES_USERbusabase数据库用户。
POSTGRES_PASSWORD数据库密码。要生成,不要自己想。
POSTGRES_DBbusabase数据库名。
S3_ACCESS_KEYbusabase对象存储 key,必须与 seaweed-s3.json 一致。
S3_SECRET_KEY对象存储 secret,必须与 seaweed-s3.json 一致。
S3_BUCKETbusabasebucket 名,会自动创建。
BETTER_AUTH_SECRET签发会话 cookie。泄漏等同于任何人都能伪造登录态。

最容易配错的是 APP_URL。登录 cookie 按它签发,所以它和浏览器地址栏对不上时——http 写成 https、少了端口、用了 IP 而不是域名——登录看起来成功,然后立刻弹回登录页。没有任何报错,因为从服务端看什么都没失败。

可选

变量默认值需重启作用
IMAGE_REGISTRYdocker.io从内网镜像源拉 Postgres 与 SeaweedFS。
SYSTEM_ADMIN_EMAILadmin@example.com哪个账号拥有系统管理后台。
SEAWEEDFS_VOLUME_LIMIT_MB1024SeaweedFS 切换到新卷文件的阈值。附件量大就调高。

已经替你设好的

这些由 Compose 文件或镜像注入。你一般不用改,但知道它们存在,能解释一些否则会让你困惑的行为。

变量为什么
BUSABASE_EDITIONself-hosted移除计费、waitlist 和公开营销页。只在启动时读一次——故意不做成后台可切换的开关,因为切回去会把这些计费入口重新暴露出来。
PG_DATABASE_URLPOSTGRES_* 拼出想用外部数据库就改这个。
STORAGE_URLS3_* 拼出一条 URL 而不是一组变量。minio:// 表示「S3、path-style、不走 TLS」——描述协议,不是厂商。
REDIS_URLlmdb:///data/cache内嵌 LMDB 缓存 + 进程内 pub/sub。单副本规模下另起一个 Redis 没有收益,而且 Redis 7.4+ 是 RSALv2/SSPL,会带来我们不想转嫁给你的再分发约束。

上面每一个变量都要重启才生效。没有运行时热加载:值在启动时读取,这正是「一个运行中的实例,其配置可以完全从它的 .env 复现」的原因。

是生成的,不是配的

一体机镜像首次启动时自己生成 Postgres 密码、对象存储密钥和会话密钥,写进 /data/.credentials(权限 600)。它们不在镜像里,所以两个人拉同一个镜像不会共用密钥。

请备份那个文件。它是唯一副本。

On this page