在你自己的伺服器上安裝 Busabase
試用用單一容器就好,正式上線再用 Compose。以下內容全部可以直接複製貼上,不需要先填入任何佔位符。
主機需求
CPU
2 vCPU
記憶體
2 GB
磁碟空間
10 GB
需開放的連接埠
3000 + 8333/tcp
在空資料磁碟區冷啟動下實測:24 秒進入健康狀態,閒置時佔用 548 MiB,首次啟動後 /data 佔 50 MB。對外需開放兩個連接埠:應用程式本身,以及物件儲存 —— 瀏覽器會直接從物件儲存取得附件,因此該連接埠必須可連線。Postgres 則留在容器內部,不對外開放。
docker run -d --name busabase \
-p 3000:3000 \
-p 8333:8333 \
-e APP_URL=http://localhost:3000 \
-v busabase-data:/data \
--restart unless-stopped \
busabase/busabase-premium-allinone:latestgit clone https://github.com/busabase/busabase-premium.git
cd busabase-premium/compose
# Generates .env and seaweed-s3.json with matching random credentials.
# Doing this by hand is the single most common cause of "the app starts
# but every attachment upload fails".
./init.sh
BUSABASE_IMAGE=busabase/busabase-premium:latest docker compose up -dgit clone https://github.com/busabase/busabase-premium.git
helm install busabase ./busabase-premium/helm \
--namespace busabase --create-namespace \
--set image.tag=<version> \
--set appUrl=https://busabase.company.internal
# Bring your own Postgres and S3 (recommended for production):
# --set postgres.mode=external --set postgres.external.host=pg.company.internal
# --set storage.mode=external --set storage.publicHost=s3.company.internal確認安裝成功
不要只憑容器正在執行就下結論。直接詢問伺服器本身 —— 在任何人登入之前,它就會回應。
curl -s http://localhost:3000/api/health健康的伺服器會回覆:
{"status":"ok","service":"busabase","version":"0.10.0", ...}啟用你的授權
開啟伺服器,以管理員身分登入,進入「系統管理 → 授權」,把啟用碼貼在那裡。驗證會在本機完成,不需要連上網際網路。啟用碼可從你的 Busabase Cloud 帳號「設定 → 自託管授權」中取得。
在無法連上網際網路的內網中安裝
把映像檔當成一般檔案搬移過去。壓縮檔大約 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./support-bundle.shkubectl logs -l app.kubernetes.io/name=busabase-premium --tail=500 > sb-logs.txt
kubectl get pods -l app.kubernetes.io/name=busabase-premium -o wide > sb-pods.txt
tar czf busabase-support.tar.gz sb-logs.txt sb-pods.txt