設定リファレンス
セルフホスト構成が読むすべての環境変数 — 何をするか、間違えるとどうなるか、変更に再起動が要るか。
オールインワンイメージは設定を自動生成するため、以下は一切不要です。ここから先は .env を自分で管理する Compose デプロイ向けです。
必須
| 変数 | 既定値 | 再起動 | 役割 |
|---|---|---|---|
BUSABASE_IMAGE | busabase/busabase-premium:latest | 要 | 使用するイメージ。試用は公開の :trial、契約後はプライベートレジストリへ。 |
APP_URL | — | 要 | ユーザーが実際に入力するアドレス(スキームとポートを含む)。 |
APP_PORT | 3000 | 要 | 公開するホスト側ポート。 |
POSTGRES_USER | busabase | 要 | データベースユーザー。 |
POSTGRES_PASSWORD | — | 要 | データベースパスワード。考えるのではなく生成してください。 |
POSTGRES_DB | busabase | 要 | データベース名。 |
S3_ACCESS_KEY | busabase | 要 | オブジェクトストレージのキー。seaweed-s3.json と一致必須。 |
S3_SECRET_KEY | — | 要 | オブジェクトストレージのシークレット。seaweed-s3.json と一致必須。 |
S3_BUCKET | busabase | 要 | バケット名。自動作成されます。 |
BETTER_AUTH_SECRET | — | 要 | セッション cookie の署名鍵。漏れると誰でもログイン状態を偽造できます。 |
最も間違えやすいのが APP_URL です。セッション cookie はこれを基準に発行されるため、ブラウザに表示されているものと食い違う(http と https、ポートの欠落、ホスト名ではなく IP)と、ログインは成功したように見えてすぐログイン画面に戻されます。サーバー側では何も失敗していないので、エラーメッセージも出ません。
任意
| 変数 | 既定値 | 再起動 | 役割 |
|---|---|---|---|
IMAGE_REGISTRY | docker.io | 要 | Postgres と SeaweedFS を社内ミラーから取得する。 |
SYSTEM_ADMIN_EMAIL | admin@example.com | 要 | どのアカウントにシステム管理コンソールを与えるか。 |
SEAWEEDFS_VOLUME_LIMIT_MB | 1024 | 要 | SeaweedFS が新しいボリュームファイルに切り替える閾値。添付が多いなら上げます。 |
こちらで設定済みのもの
以下は Compose ファイルまたはイメージが注入します。通常は設定不要ですが、存在を知っておくと不可解に見える挙動の説明がつきます。
| 変数 | 値 | 理由 |
|---|---|---|
BUSABASE_EDITION | self-hosted | 課金・waitlist・公開マーケティングページを取り除きます。起動時に一度だけ読まれ、管理画面から切り替えられるフラグには意図的にしていません(戻せば課金導線が再露出するため)。 |
PG_DATABASE_URL | POSTGRES_* から組み立て | 外部データベースを使うならここを変更。 |
STORAGE_URL | S3_* から組み立て | 変数群ではなく URL 1 本。minio:// は「S3、path-style、TLS なし」の意味で、ベンダー名ではありません。 |
REDIS_URL | lmdb:///data/cache | 組み込み LMDB キャッシュ + プロセス内 pub/sub。単一レプリカの規模で別途 Redis を立てる利点はなく、Redis 7.4+ は RSALv2/SSPL でお客様に転嫁したくない再配布上の制約を伴います。 |
上記はすべて反映に再起動が必要です。実行時リロードはありません: 値は起動時に読まれるため、稼働中インスタンスの設定は .env だけから再現できます。
設定するものではなく生成されるもの
オールインワンイメージは初回起動時に Postgres のパスワード、オブジェクトストレージのキー、セッション署名鍵を自分で生成し、/data/.credentials(パーミッション 600)に書き出します。イメージには含まれないので、同じイメージを pull した 2 人がシークレットを共有することはありません。
そのファイルはバックアップしてください。唯一のコピーです。