デプロイ

アップロードされるもの

アップロードするのはビルド済みの出力です。ディレクトリでも、それを固めた .tar.gz または .tgz のアーカイブでも構いません。ほかの形式のアーカイブは受け付けません。ビルドはお使いのマシンかCIランナーで行うので、ソースコードがサービスに届くことはありません。

ディレクトリをデプロイするときは、名前がドットで始まるものは .well-known/ も含めてアップロードされません。詳しくは kamakiri deploy をご覧ください。

デプロイは1つ1つが、あとから変わらないスナップショットです。ロールバックは、何もアップロードせずに、以前のスナップショットを公開し直します。

kamakiri deploy は、訪問者がアクセスしうるすべてのキャッシュが新しいデプロイを返すようになってから終了します。待ち方、--no-wait、終了コードは kamakiri deploy にあります。

デフォルトの上限

サイズかファイル数の上限を超えたデプロイは拒否され、何も保存されません。保持される件数を理由に拒否されることはありません。5件を超えると古いものから削除されますが、配信中のデプロイが削除されることはありません。kamakiri status では、使っているサイトと保持されているデプロイの数を上限とあわせて確認でき、デプロイのサイズの上限も表示されます。

ロールバック

kamakiri deploys は、保持されているデプロイを新しい順に一覧表示し、配信中のものに 公開中 と付けます。ロールバックできるのは、この一覧にあるデプロイだけです。

$ kamakiri deploys
ID                   Status  Created
20260919-165352-453  live    2026-09-19 16:53:52 UTC
20260919-165350-000          2026-09-19 16:53:50 UTC
20260919-165349-736          2026-09-19 16:53:49 UTC
$ kamakiri deploys
デプロイID           状態    作成日時
20260919-165352-453  公開中  2026-09-19 16:53:52 UTC
20260919-165350-000          2026-09-19 16:53:50 UTC
20260919-165349-736          2026-09-19 16:53:49 UTC

kamakiri rollback は、そのうちの1つをもう一度公開し、デプロイと同じように待ちます。

$ kamakiri rollback 20260919-165349-736
Rolled back to 20260919-165349-736
✓ live: https://my-site.kamakiri-pages.jp
$ kamakiri rollback 20260919-165349-736
20260919-165349-736 にロールバックしました
✓ 公開中: https://my-site.kamakiri-pages.jp

デプロイのルートに置くファイル

_redirects と _headers は、ファイルとしては配信されません。3つのファイルはどれも、一緒にアップロードされたデプロイの一部なので、ロールバックすると、ファイルと一緒にそのデプロイのリダイレクト、ヘッダー、404ページも戻ります。

CIからデプロイする

CIランナーは、環境変数 KAMAKIRI_API_KEY で認証します。値は、kamakiri login を実行したマシンの ~/.config/kamakiri/credentials.json にある api_key の値です。クライアントがキーを表示することはないので、このファイルからコピーして、リポジトリのシークレットに入れてください。あとでもう一度ログインしても、新しいキーが発行されるだけで、このキーは有効なままです。

kamakiri deploy は、CIでもお使いのマシンと同じように、制限時間なしで待ちます。アップロードが受け付けられた時点でジョブを終えたい場合は --no-wait を付けてください。

main へのプッシュのたびにデプロイする GitHub Actions のジョブです。チェックアウトでコミット済みの .kamakiri/config.json が取り込まれ、公開先のサイトはこのファイルで決まります。

name: Deploy
on:
  push:
    branches: [main]
jobs:
  deploy:
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v7
      - name: Install the client
        run: curl -fsSL https://get.kamakiri-labs.jp/install.sh | sh
      - name: Build
        run: npm ci && npm run build
      - name: Deploy
        env:
          KAMAKIRI_API_KEY: ${{ secrets.KAMAKIRI_API_KEY }}
        run: $HOME/.local/bin/kamakiri deploy ./dist

キーはデプロイのステップにだけ渡してください。そうすれば、ビルドがキーのある環境で動くことはありません。