デプロイ
アップロードされるもの
アップロードするのはビルド済みの出力です。ディレクトリでも、それを固めた .tar.gz または .tgz のアーカイブでも構いません。ほかの形式のアーカイブは受け付けません。ビルドはお使いのマシンかCIランナーで行うので、ソースコードがサービスに届くことはありません。
ディレクトリをデプロイするときは、名前がドットで始まるものは .well-known/ も含めてアップロードされません。詳しくは kamakiri deploy をご覧ください。
デプロイは1つ1つが、あとから変わらないスナップショットです。ロールバックは、何もアップロードせずに、以前のスナップショットを公開し直します。
kamakiri deploy は、訪問者がアクセスしうるすべてのキャッシュが新しいデプロイを返すようになってから終了します。待ち方、--no-wait、終了コードは kamakiri deploy にあります。
デフォルトの上限
- サイト。 1アカウントあたり5つまでです。サイトを削除すると、その分の枠が空きます。
- デプロイのサイズ。 1回あたり100MBまでで、展開後のファイルの合計です。
- 1回のデプロイのファイル数。 20,000件までです。
- 保持されるデプロイ。 1サイトあたり5件までです。
サイズかファイル数の上限を超えたデプロイは拒否され、何も保存されません。保持される件数を理由に拒否されることはありません。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には、レスポンスヘッダーを書きます。ヘッダーをご覧ください。404.htmlは、存在しないパスへのリクエストに返されます。カスタム404ページをご覧ください。
_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
キーはデプロイのステップにだけ渡してください。そうすれば、ビルドがキーのある環境で動くことはありません。