快速开始
一条命令把 Busabase 装到你自己的服务器上,确认它真的装成功了,然后激活授权——内网不通外网也一样能装。
这份指引和官网 busabase.com/self-hosted/install 上的是同一份。这里再放一遍,是因为文档随镜像一起发布:在打不开 busabase.com 的内网里,这一页照样能打开。
机器需要什么
空数据卷冷启动实测:24 秒进入健康状态,空载常驻 548 MiB,首次启动后 /data 占 50 MB。对外两个端口:应用与对象存储——浏览器要直接从存储取附件,所以存储必须可达。Postgres 仍留在容器内部。
docker run -d --name busabase \
-p 3000:3000 \
-p 8333:8333 \
-v busabase-data:/data \
--restart unless-stopped \
busabase/busabase-premium-allinone:trial确认装成功了
别凭容器在跑就下结论。直接问服务器本身——它在任何人登录之前就能回答。
curl -s http://localhost:3000/api/health正常的服务器会返回:
{"status":"ok","service":"busabase","version":"0.10.0", ...}激活授权
打开服务器,用管理员账号登录,进「系统管理 → 授权」,把激活码粘贴进去。验签在本机完成,不需要联网。激活码在 Busabase 云端账号的「设置 → 自建版授权」里签发。
在不能上网的内网里安装
把镜像当文件搬过去。tar 包约 489 MB,落地后务必核对哈希——传输被截断的话,问题会在很久之后以一个莫名其妙的运行时错误浮现。
# On a machine with internet access
docker pull busabase/busabase-premium-allinone:latest
docker save busabase/busabase-premium-allinone:latest -o busabase-premium-allinone.tar
sha256sum busabase-premium-allinone.tar > busabase-premium-allinone.tar.sha256
# Move both files to the target host, then
sha256sum -c busabase-premium-allinone.tar.sha256
docker load -i busabase-premium-allinone.tar装不起来
收集一个诊断包发到 support@busabase.com。里面是日志、健康检查输出和镜像信息,不含任何凭据:生成的密钥写在 /data/.credentials,从不打进日志。
docker logs --tail 500 busabase > sb-logs.txt 2>&1
curl -s http://localhost:3000/api/health > sb-health.json
docker inspect busabase --format '{{.Config.Image}} {{.State.Status}}' > sb-meta.txt
tar czf busabase-support.tar.gz sb-logs.txt sb-health.json sb-meta.txt首次启动会发生什么
容器会自己生成一套凭据——Postgres 密码、对象存储密钥、会话签名密钥——写进 /data/.credentials(权限 600),之后每次启动都复用同一套。镜像里不预置任何密钥,所以两个人拉同一个镜像,不会共用同一套密码。
接着它会执行数据库迁移并启动应用。空数据卷下整个过程约 24 秒,其中大部分是 Postgres 第一次初始化自身。之后的重启会跳过这两步,快得多。
备份数据时要连 /data/.credentials 一起备。它是这套密钥的唯一副本——重新生成的话,你会得到一个自己也打不开的数据库。
接下来
- 准备正式使用 → Compose 生产部署
- 激活或续期 → 授权
- 出问题了 → 故障排查