コンテンツにスキップ

Web コンソール

Web コンソールは、どのノードでもポート 7080 で提供されます。CLI と同じ API を使い、表示はリアルタイムで更新されます。どのノードで Branch の状態が変わっても、再読み込みなしで表が変わります。オペレーションやイベントの専用ページはありません。作成中、リセット中、削除中の行には、その場で進行状況が表示されます。

ブラウザで https://<node>:7080/admin を開きます。証明書は自己署名なので、最初に 1 度ブラウザの警告が出ます。https://<node>:7080/tls.pem からダウンロードして信頼させることもできます。

初回は、ユーザー admin と、db-branch init が表示したパスワードでサインインします。パスワードを忘れたら、どれかのノードで次を実行してください。クラスター全体の管理者パスワードがランダムな新しいものになり、全員がサインアウトされます。

ターミナルウィンドウ
sudo db-branch admin reset-password

セッションは、既定では使わないまま 7 日で切れます(Settings → General → Console session)。サインイン画面には、モジュールが追加したシングルサインオンなどの方法も並びます。

コンソールは 2 つの部分に分かれています。

  • https://<node>:7080/ はユーザーページ(“Get a database”)です。Base を選んで Branch を作り、接続情報をコピーし、自分の Branch を管理します。ログインしていない人には、公開 Snapshot だけが見えます。
  • https://<node>:7080/admin は、以下で説明する管理コンソールです。サイドバーに Branches、Bases、Cluster、Settings と、モジュールが追加したページが並びます。管理者でもメンテナーでもない人が /admin を開くと、ユーザーページへの案内が表示されます。

オープンソース版のアカウントは管理者だけで、すべての画面ですべての操作ができます。有償の auth モジュールを入れると、アカウントとロールが加わります。ロールは、アカウントメニューの名前の下に Administrator、Maintainer、Developer、Viewer のいずれかで表示されます。管理コンソールでは、ロールの権限で許された画面だけが見え、ボタンも、そのロールが押せるものだけが表示されます。Settings は管理者向けです。Updates タブは、アップデートを読める権限があるロールにも表示されます。

トークンを使うスクリプトはコンソールを使いません。トークンとスコープは API リファレンスを見てください。

すべての Branch を表で表示します。

列 内容
Status provisioning、ready、resetting、deleting、failed、lost を示す点。ポインターを重ねると理由が出る
Name Branch の名前。前にオーナー(alice/feature-x)、誰でも接続できる Branch には open のバッジ
Base クローン元の Base(ポインターを重ねると Snapshot)
Engine MySQL か PostgreSQL と、バージョン
Endpoint ポート(クラスターではノードも)と、接続 URL をコピーするボタン
TTL Branch の寿命の残り
Storage Branch が書き込んだデータ量。ほかの Branch との比較つき

+ Branch ボタンは、Snapshot のある Base ができるまで押せません。押すと New branch パネルが開きます。

  • Name: 小文字の英字、数字、単独のハイフン。32 文字まで
  • Base: クローンする Base。最新の Snapshot が使われます
  • TTL: 1h、4h、1 day、3 days、7 days、None、または Other(30m、14d などを入力)。この時間が過ぎると Branch は自動で削除されます
  • Access: Private(専用のランダムなパスワード。オーナーと管理者だけ)または Anyone(クラスター共通のパスワード)
  • Owner: Branch を管理する人。管理者のみ。空欄なら自分
  • + Init SQL: クローンの後に 1 度だけ実行する SQL。Reset するとこの状態に戻ります

各行のアクションメニューには、次の項目があります。

  • Connect…: 接続情報を開きます。タブは URL、Command、.env、Values です。パスワードは Show password を押すまで隠れています。コピーするとパスワードも含まれます
  • Recreate: lost の Branch(ノードが失われた)を、別のノードで Snapshot から作り直します
  • Copy proxy URL: ノードがプロキシを動かしているときに出ます
  • Reset: 変更をすべて破棄します
  • Extend 1h、Extend 24h、Extend 7d: 期限を、今から数えてその時間後にします
  • Delete…: Branch の名前を入力して確認します。Branch のデータは失われます

Base は 1 枚のカードで表されます。名前、エンジン、状態、説明と、Snapshot のタイムラインが載っています。各 Snapshot の下には、その Snapshot から作った Branch が並びます。クラスターでは、Base を持つノードと、Snapshot ごとのコピーの有無(ノードごとの四角)も表示されます。カードをクリックすると詳細パネルが開きます。

+ Base を押すと New base が開きます。項目は Name、Description(任意)、Engine(インストール済みのバージョン。なければ先に Cluster 画面でインストールする)、Node(クラスターで Base を置くノード)、Data です。Data には、mysqldump または pg_dump のプレーン形式の .sql か .sql.gz ダンプを、自分のコンピューターからアップロードするか、ノード上のパスで指定します。何も指定しなければ空の Base になります。アップロードには進行状況が表示され、キャンセルもできます。

詳細パネルの内容は次のとおりです。

  • Update data: 現在のデータの上にダンプを読み込む(Load a dump)か、Base のサーバーで管理者として SQL を実行します(Run SQL)。既存の Branch には影響しません
  • Take snapshot: Base のサーバーを正常に停止して Snapshot を取り、再び起動します。Branch は必ず Snapshot から作られるので、データを変更したら Snapshot を取ります
  • Delete base…: Branch が使っていない Base を削除します。確認のため Base の名前を入力します
  • Edit description: 説明を変更します
  • Replicas カード(クラスターのみ): 各ノードを origin、held、pulling、draining で表示します。All nodes か Chosen nodes を選んで Save を押します。コピーが少ないほどディスクを節約できますが、Branch は Base を持つノードでしか動かせません。外したノードは、そのノードの Branch がその Base を使わなくなった時点でコピーを手放します
  • Scheduled refresh カード: 元のデータベースから Base を再読み込みします。Set up… を押し、Source host、Port、User(読み取り権限があれば足ります)、Password、Databases(カンマ区切り)、Every(1h 以上。例: 24h)を入力します。設定後は、Source、Databases、Every、Last run、Next run が表示されます。Run now は、元をダンプして Base に読み込み、Snapshot を取ります。Edit でスケジュールを変更でき、パスワードを空にすると保存済みのものが残ります。Turn off で止めます。元のデータはマスクされていないため、読み込みの間だけディスクに置かれ、その後に削除されます
  • Snapshots の表: 各 Snapshot の Taken(取得時刻)、使っている Branch の数、Access を表示します。Access が Private なら、ログインした人だけが、Public なら誰でもログインなしで Branch を作れます。Public な Snapshot から作った Branch は誰にでも開かれ、既定では最長 24 時間で、数にも上限があります(Settings を参照)。最新の Snapshot と使用中の Snapshot には kept か in use と表示され、それ以外には Delete ボタンがあります。Prune old snapshots が有効なら、新しい Snapshot ができた時点で、使われていない古い Snapshot は自動で削除されます
  • Branches の一覧: その Base を使っている Branch

どのボタンが見えるかは、その Base に対する権限で決まります。管理できない Base のカードは読み取り専用です。スケジュールが未設定で、管理する権限もない場合、Scheduled refresh カードは表示されません。

別の Base からマスクする操作は、コンソールにはまだありません。db-branch base mask か API を使ってください。

ノードごとに 1 列で表示します。各列の内容は次のとおりです。

  • ノード名、リーダーを示す L、Voter か Non-voter か。クラスターの変更に投票するのは最大 5 ノードで、ほかのノードは完全なコピーを持ち、投票ノードが失われると自動で代わりになります
  • Pool: ZFS プールの空き容量。80% か 90% を超えると色が変わります
  • ZFS ARC max: そのノードの読み取りキャッシュの上限。適用できなかった場合は警告が出ます
  • Last hour: CPU、Memory、Net in、Net out のスパークライン
  • Branches: ノード上の Branch ごとに 1 つの点

Engines の表には、インストール済みのエンジンのバージョン、それを持つノードごとのチェック、使っているものが並びます。ランタイムをインストールする権限があれば、次の操作ができます。

  • Add engine: 利用できる MySQL と PostgreSQL のバージョンを表示し、選んだものを全ノードにインストールします。進行状況は表に出ます
  • Install on all / Install on N missing: 持っていないノードに、そのバージョンをインストールします
  • Remove: 全ノードにあり、何も使っていないバージョンに表示されます

ノードが 1 台だけの場合は、そのノードだけが表示されます。

管理者専用です。ページはタブに分かれていて、タブによってアドレスが変わります(/admin/settings/<tab>)。

クラスター全体の設定です。グループごとに Save で反映します。

設定 内容
Branch memory (MB) 各 Branch の InnoDB バッファプールまたは shared_buffers。今後起動する Branch から反映される
Default TTL 期限なしで作った Branch の寿命。空欄は期限なし
First branch port、Last branch port Branch に使うポートの範囲
Console session ログインが、使わないまま続く時間
Open branch password open な Branch の共通パスワード(英数字)
Anonymous branch TTL、Anonymous branches ログインなしで作った Branch の最長寿命と、同時に存在できる数。0 は作れない
Largest dump upload (MB) これを超えるアップロードは拒否される
ZFS ARC max 各ノードで ZFS が読み取りキャッシュに使えるメモリの上限。割合(50%)かサイズ(8GB)
Backup interval、Backups kept、Backup directory 各ノードがクラスターの状態を保存する間隔、残すファイルの数、保存先。0 でバックアップを止める
Slack webhook URL、Webhook URL、Webhook secret、Warn before expiry 期限が近い Branch、失敗したオペレーション、ダウンしたノードの通知。Webhook には JSON が届き、X-Db-Branch-Signature に HMAC-SHA256 の署名が付く
Check for updates daily リーダーが 1 日 1 回、パッケージリポジトリに新しいバージョンを問い合わせるか
Prune old snapshots 新しい Snapshot ができたら、Branch が使っていない古い Snapshot を削除する

設定の下には Backups セクションがあります。ノードを選ぶと、そのノードのバックアップファイルを一覧し、ファイルごとの Download リンクと Back up now ボタンがあります。ファイルには秘密が含まれるので、ダウンロードしたものは安全に保管してください。復元は、ノードで db-branch backup restore <file> を実行します。Base のデータは含まれません。

CI や外部連携向けです。サービストークンは人ではなく、トークン自身として動きます。一覧に名前、スコープ、有効期限が並び、Revoke で失効させます。発行するときは、名前、スコープ(branches か full)、有効期限(7 日から 1 年、または期限なし)を選んで Issue を押します。トークンは 1 度だけ表示され、Claude Code で使うための claude mcp add コマンドと、自己署名証明書の tls.pem へのリンクも表示されます。個人のトークンは、Account で各自が作ります。

License カードに、ライセンスの状態が表示されます。有償モジュールは、最初の 1 つを有効にしてから 30 日間はキーなしで動き、それ以降は対象のキーが必要です。キーを貼り付けて Verify を押すと、有効なキーが保存され、そのモジュールが全ノードで有効になります。カードには、顧客、有効期限、ノード数の上限、キーが対象とするものが表示されます。

その下には、パッケージリポジトリが提供するモジュールごとのカードが並びます。カードには、Paid · trial、Paid · licensed、Paid · needs licence のいずれか、バージョン、ノードごとの四角(最新のバージョンが動いていれば塗りつぶし)が表示され、インストール中や問題がある間はその旨が出ます。Enable で全ノードにインストールし、Disable で無効にします。有効にしたモジュールには、設定を載せた専用のタブと Configure › のリンクができます。

アップデートを読める権限があるロールに表示されます。ノードにログインせずに、クラスターを新しいマイナーまたはパッチバージョンに上げられます。表には、ノードごとのバージョンと稼働状態が並び、リーダーには印が付きます。Check for updates はパッケージリポジトリに問い合わせ、最後に確認した日時とノードがページに出ます。確認すると、新しいバージョンのあるパッケージが一覧されます。Update to X を押すと確認(Start the update)があり、ロールアウトが始まります。フォロワーを 1 台ずつ更新し、リーダーは最後です。各ノードはエージェントを再起動するので、そのノードの Branch と Base は停止してから再び起動します。ノードが失敗するとロールアウトは止まり、元には戻りません。実行中は Stop the rollout で止められ、まだ始まっていないノードは更新されません。メジャーアップデートは手作業です。

サイドバー下部のアカウントメニュー(自分の名前)を開き、Account settings を選びます。

  • Profile: 名前、サインイン ID、ロール。アカウントの情報で、変更するのは管理者です
  • Language: English、日本語、またはブラウザの既定。アカウントに保存されます
  • MCP access: 自分として動く個人トークンで、Claude Code などの LLM エージェント向けです。名前と有効期限を選んで Issue を押します。トークンは 1 度だけ、claude mcp add --transport http db-branch https://<node>:7080/v1/mcp ... のコマンドとともに表示されます。個人トークンのスコープは branches です。同じ一覧から失効させられます
  • Password: パスワードを変更します(12 文字以上。ほかのセッションはサインアウトされます)。サインインプロバイダーを使っている場合、パスワードはそちらで管理されます

メニューには、2 つの部分を切り替える Admin console または User page と、Sign out もあります。