Docker Compose
basedbは1つのイメージeodia/basedbとして、amd64とarm64向けに公開されています。リポジトリのdocker-compose.ymlが、これをPostgreSQLと組み合わせます。設定はすべて.envファイルで行います(環境変数を参照)。
イメージにはbasedbの3つのプロセスが含まれ、単一のポート3000で提供されます:
| パス | プロセス |
|---|---|
/api/*、/auth/*、/healthz | REST API、ログイン、バックグラウンド処理 |
/mcp | エージェント向けのMCPサーバー |
それ以外すべて(/、/f/…、/v/…) | インターフェース |
起動時には、APIが最初に動きます。空のデータベースではカタログを適用して最初の管理者を作成し、2回目以降の起動ではどちらも何もしません。MCPサーバーは、APIが応答し次第起動します。いずれかのプロセスが停止するとコンテナ全体が停止し、再起動ポリシーによってコンテナ全体が再起動されます。
イメージはNode 22上でnodeユーザーとして動作し、ヘルスチェック(/healthz)と、ファイルフィールドと画像フィールドのファイル用のボリューム/dataを宣言しています。
| タグ | 内容 |
|---|---|
latest | 最新の公開バージョン |
0.7 | 最新の0.7.x |
0.7.1 | このバージョンそのもの |
| サービス | イメージ | ポート(127.0.0.1上) | ボリューム |
|---|---|---|---|
db | postgres:16-alpine | 5432 | db-data |
basedb | eodia/basedb | 3000 | files → /data |
proxy(オプション) | caddy:2-alpine | 80、443 | caddy-data、caddy-config |
便利なコマンド
Section titled “便利なコマンド”docker compose up -d # イメージをダウンロードして起動docker compose logs -f basedb # basedbのログを追う(初回起動時の管理者パスワード)docker compose ps # サービスの状態とヘルスdocker compose restart basedb # basedbを再起動docker compose down # 停止(ボリュームは残ります)リポジトリをクローンした環境では、docker compose up -d --buildで、イメージをダウンロードする代わりにソースコードからビルドします。
ゲートウェイの配下、パスの下で
Section titled “ゲートウェイの配下、パスの下で”basedbをパスの下で公開する場合——ドメインのルートではなくhttps://passerelle.example.com/basedb/のような場所に——、そのパスを指定します:
BASEDB_PUBLIC_URL=https://passerelle.example.com/basedb# 公開アドレスがない場合は:BASEDB_BASE_PATH=/basedbこれにより/basedbの下にすべてが置かれます:インターフェース、/basedb/api、/basedb/mcp、共有リンク、そしてメールのリンクです。ゲートウェイは、リクエストをそのまま転送してパスを残すことも、取り除くこともできます:basedbはどちらにも対応します。BASEDB_BASE_PATH=/はルートを強制します。
イメージはどのアドレスでも同じです:パスはコンテナの起動時にインターフェースへ書き込まれ、パスを変更するには再起動だけで済みます。
ポートを変更する
Section titled “ポートを変更する”BASEDB_PORT=3100POSTGRES_PORT=5433既存のPostgreSQLデータベース
Section titled “既存のPostgreSQLデータベース”DATABASE_URLを設定すると、basedbはdbコンテナの代わりにそのデータベースに接続します(dbコンテナは使われないまま起動します。必要ならdocker-compose.override.ymlファイルで取り除いてください)。PostgreSQL 16以上、データベースの所有者ロール、そして利用可能なpg_trgmとunaccent拡張が必要です。この場合は、イメージだけで十分です。インストールをご覧ください。
basedbは、AIネイティブなソフトウェアスタジオEodiaが開発するフリーソフトウェアです。