내 서버에 Busabase 설치하기
먼저 컨테이너 하나로 체험해보고, 프로덕션에 올릴 때는 Compose를 사용하세요. 아래 내용은 모두 그대로 복사해서 쓸 수 있으며, 미리 채워야 할 플레이스홀더는 없습니다.
서버에 필요한 사양
CPU
2 vCPU
메모리
2 GB
디스크
10 GB
열어야 할 포트
3000 + 8333/tcp
빈 볼륨으로 콜드 스타트한 실측 결과입니다: 정상 상태까지 24초, 유휴 상태 548MiB, 최초 부팅 후 /data 용량 50MB. 포트는 두 개가 필요합니다 — 앱용과 오브젝트 스토리지용인데, 브라우저가 첨부파일을 스토리지에서 직접 가져오기 때문에 외부에서 접근 가능해야 합니다. 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 계정의 설정 → 자체 호스팅 라이선스에서 발급받을 수 있습니다.
인터넷이 되지 않는 네트워크에 설치하기
이미지를 파일로 옮기세요. tar 파일 크기는 약 489MB이며, 도착 후 반드시 해시값을 확인하세요 — 전송이 중간에 잘리면 한참 뒤에야 알쏭달쏭한 런타임 오류로 나타납니다.
# 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