---
title: "イメージCLI"
description: "イメージはアプライアンス。notarium エントリーポイント、start・backup・restore・admin などのコマンド、終了コードの契約。"
---

# イメージCLI

イメージは自分の起動の仕方をすでに知っています。`docker run` にコマンドを書き足す必要はなく、デフォルトではサーバーが立ち上がります。引数が置き換えるのはコマンドだけなので、単発の操作も自然に読めます — `docker run … IMAGE restore` のように。

稼働中のコンテナへは、オペレーター向けのコマンドを `docker exec` 経由で、短い名前のまま渡します。

```bash
docker exec notarium backup
docker exec -it notarium admin list
```

## コマンド

| コマンド | 役割 | よくある呼び出し方 |
|---|---|---|
| `start` | HTTP/MCP サーバーを PID 1 として起動する | イメージのデフォルトコマンド |
| `backup` | 検証済みのオンライン ZIP をストリームで出力する | `docker exec notarium backup` と [ランブック](/docs/self-hosting/backup/) の安全な公開手順 |
| `backup verify` | 何も変更せずにアーカイブを検証する | `docker exec -i notarium backup verify < ファイル` |
| `restore` | 空のデータルートへアーカイブを設置する | まっさらなボリューム上の使い捨てコンテナ |
| `admin` | インターフェースを介さずにアクセスを復旧する | `docker exec -it notarium admin …` |
| `healthcheck` | ローカルの `/api/health` に問い合わせる | Docker の `HEALTHCHECK` |
| `version` | バージョン、コミット、ビルド時刻、ソースへのリンク(スクリプト向けに `--json`) | サポートと互換性の確認 |
| `help` / `--help` | CLI 全体または個別コマンドの説明 | どのコンテナでも |

`start` はフォアグラウンドに留まるので、コンテナのシグナルはそのままサーバーへ届きます — `docker stop` は正常に停止させます。停止や再起動のコマンドが無いのは意図的で、それはオーケストレーターの仕事です。スキーママイグレーションは起動時に適用されるため、別コマンドとして実行する必要はありません。

## ストリームと終了コード

- ストリーミングモード(`--output` なし)の `backup` は、stdout に **ZIP のバイト列だけ** を流します。診断メッセージと最後のサマリーは stderr へ出ます。`--output FILE` を付けるとアーカイブはそのファイルへ書き出され、stdout には JSON のサマリーが 1 つだけ出ます — これを `.zip` へリダイレクトしないでください。そこに残るのはアーカイブではありません。
- `backup verify`、`restore`、そして非対話の `admin` コマンドは、結果を stdout に出力します。
- エラーは stderr に出て、終了コードは非ゼロになります。未知のコマンド、未知のオプション、重複したオプション、値のないオプションは、黙って無視されるのではなく **エラーで落ちます**。
- Docker における本来の転送経路は **stdin と stdout** です。対になる `backup` の `--output FILE` と `verify`/`restore` の `--input FILE` は、コンテナからすでにディレクトリが見えている構成のためにあります。`--output` にはうれしい副産物があります。コマンド自身が一時ファイルへ書き、アーカイブを検証し、何も上書きせずアトミックに公開してくれるので、シェルのラッパーを書かずに済みます。
- どのコマンドにも `--help` があります。`notarium --version` は `notarium version` と同じです。

## ビルド識別情報

`version` は、いま動いているものが何かをそのまま出力します。互換性をめぐる話も、アップグレードも、出発点はここです。

```bash
docker run --rm docouno/notarium:latest version
docker compose exec notarium version --json
```

`version --json` は同じ内容を 1 つのオブジェクトで返します — `version`、`commit`、`builtAt`、そして `source`(該当するソースリビジョンへのリンク)。だから「いま何がデプロイされているか」の確認は、そのままデプロイパイプラインに組み込めます。そのビルドが正直に持っていないものは `null` として返ります。値をでっち上げることはないので、そのまま拠り所にできます。同じ情報はインターフェースでも見られます — **Settings → About** です。

> [!important] バージョンタグは不変です
> 公開されたバージョンタグは、常に 1 つの特定のイメージを指します。`:0.1.0` が別のビルドへ移ることはありません。本番では `:latest` ではなくバージョンで固定してください。公開イメージは `linux/amd64` 向けにビルドされています。他のアーキテクチャではソースからビルドしてください。

## ヘルスチェック

`healthcheck` が終了コード 0 を返すのは、ローカルの `/api/health` エンドポイントが「健全」と答えたときだけです。Docker の `HEALTHCHECK` ディレクティブとオーケストレーターのプローブのために作られており、外部依存もホスト側の `curl` も必要ありません。

## アクセスの復旧

`admin` はホストのオペレーター境界です。パスワード変更の通常の経路はアプリの中にそろっています(自分のパスワードはインターフェースで、他人のパスワードは管理者が渡すワンタイムリンクで)。CLI が担うのは別のことです。現在のパスワードを提示せずに **強制的に** パスワードを設定すること、そしてアプリの外側から管理者を発行すること。この 2 つの操作に HTTP 経路が無いのは意図的です — 提示すべきものが何も無いからで、だからこそホストにアクセスできる人の手だけに残されています。

```bash
docker compose exec notarium admin list
docker compose exec notarium admin create-admin <user> --random
```

コマンドの完全な一覧とそれぞれの意味は [認証](/docs/self-hosting/authentication/#アクセスの復旧) にあります。

## 次へ

- [バックアップとリストア](/docs/self-hosting/backup/) — `backup`、`backup verify`、`restore` の背後にあるランブック。
- [認証](/docs/self-hosting/authentication/) — `admin` にできることと、それが必要になる場面。
- [インストール](/docs/self-hosting/install/) — イメージの起動とデータボリューム。
