kamakiri CLI
kamakiri は Kamakiri Pages のコマンドラインクライアントで、サービスを操作する唯一の窓口です。
インストール
Linux と macOS ではターミナルで、Windows では PowerShell でインストールスクリプトを実行します。
$ curl -fsSL https://get.kamakiri-labs.jp/install.sh | sh
PS> irm https://get.kamakiri-labs.jp/install.ps1 | iex
スクリプトは、ダウンロードしたものをリリースとともに公開されているチェックサムと照合してから、~/.local/bin/kamakiri に配置します。Windows では %USERPROFILE%\.local\bin です。別の場所に入れるときは、ご自身が所有するディレクトリを KAMAKIRI_INSTALL_DIR に指定してください。kamakiri upgrade は管理者権限なしでバイナリをその場で置き換えるので、root が所有するディレクトリにあるものは更新できません。
macOS と Linux では、シェルの設定ファイルは書き換えません。インストール先が PATH に入っていなければ、追加する行と、その行を書き足すファイルを最後に表示します。Windows では、インストール先をユーザーの PATH と実行中のセッションに追加するので、そのまま kamakiri version を実行できます。
npm と Homebrew でも公開しています。
npm install -g kamakiriは、macOS、Linux、Windows で使えます。brew install kamakiri-labs/tap/kamakiriは、macOS と、Homebrew 4.5.0 以降の Linux で使えます。
各プラットフォーム向けのバイナリは、get.kamakiri-labs.jp からたどれます。
更新
インストールのコマンドをもう一度実行するか、kamakiri upgrade を実行します。npm や Homebrew で入れたものは、そのパッケージマネージャーで更新します。新しいリリースが出ていると、ターミナルで成功したコマンドのあとに、その旨が標準エラー出力に1行表示されます。表示は1日に1回までです。お使いのバージョンをサーバーがサポートしなくなると、サーバーとやりとりするコマンドはすべて拒否され、kamakiri upgrade を実行するよう案内する行が表示されます。
アンインストール
アンインストールスクリプトを実行します。
$ curl -fsSL https://get.kamakiri-labs.jp/uninstall.sh | sh
Removed ~/.local/bin/kamakiri.
Removed the config directory ~/.config/kamakiri.
It held your saved API key. Only this copy is gone: the key itself stays valid on your account, and nothing here revokes it.
kamakiri is uninstalled.
If you added ~/.local/bin to your PATH for kamakiri alone, that line in ~/.bashrc can come out now.
PS> irm https://get.kamakiri-labs.jp/uninstall.ps1 | iex
Removed C:\Users\you\.local\bin\kamakiri.exe.
Removed the config directory C:\Users\you\.config\kamakiri.
It held your saved API key. Only this copy is gone: the key itself stays valid on your account, and nothing here revokes it.
Removed C:\Users\you\.local\bin from your user PATH.
kamakiri is uninstalled.
スクリプトは、バイナリと設定ディレクトリ全体を取り除きます。保存したAPIキーと設定も含まれます。KAMAKIRI_INSTALL_DIR を指定してインストールした場合は、アンインストールのときにも同じ値を指定してください。npm や Homebrew で入れたものは、npm uninstall -g kamakiri または brew uninstall kamakiri で取り除きます。
使い方メッセージ
コマンドを付けずに kamakiri を実行すると、次の内容を標準エラー出力に表示して、終了コード1で終わります。help コマンドも --help フラグもありません。
$ kamakiri
Usage: kamakiri <command>
Commands:
login Log in with your email
status Show current status (--verbose shows DNS records inline; --recheck asks the server to check DNS now)
init Create a new site
deploy Deploy a directory or archive
deploys List recent deploys
rollback Roll back to a previous deploy
teardown Delete the linked site
cdn Manage CDN (cloudflare/webaccel/none/cleanup/verify/credentials/status/purge)
domain Manage custom domains (register/unregister/verify/set/unset/add/remove/list)
subdomain Get or set the site subdomain
version Print the CLI version (--version, -v)
language Show or set the CLI language (en/ja)
upgrade Update the CLI to the latest release
Environment variables:
KAMAKIRI_API_KEY
The API key every command that needs a credential uses, for CI runners
with no credentials file. While it is set, the credentials file is not
read. Take the key from the file `kamakiri login` saves on your machine.
KAMAKIRI_CDN_TOKEN, KAMAKIRI_CDN_SECRET
WebAccel API credentials for `kamakiri cdn webaccel`. Prefer these
over --token/--secret flags in CI: command-line arguments are visible
in `ps`, while env vars are not.
$ kamakiri
使い方: kamakiri <command>
コマンド:
login メールアドレスでログインします
status 現在の状態を表示します(--verbose はDNSレコードも表示し、--recheck はサーバーにDNSの再確認を要求します)
init 新しいサイトを作成します
deploy ディレクトリまたはアーカイブをデプロイします
deploys 最近のデプロイを一覧表示します
rollback 以前のデプロイにロールバックします
teardown リンクされているサイトを削除します
cdn CDNを管理します (cloudflare/webaccel/none/cleanup/verify/credentials/status/purge)
domain カスタムドメインを管理します (register/unregister/verify/set/unset/add/remove/list)
subdomain サイトのサブドメインを表示・設定します
version CLIのバージョンを表示します (--version, -v)
language CLIの言語を表示・設定します (en/ja)
upgrade CLIを最新リリースに更新します
環境変数:
KAMAKIRI_API_KEY
認証情報が必要なすべてのコマンドが使うAPIキーです。認証情報ファイルの
ないCIランナー向けで、設定されている間はそのファイルを読みません。
キーは、手元のマシンで `kamakiri login` が保存したファイルにあります。
KAMAKIRI_CDN_TOKEN, KAMAKIRI_CDN_SECRET
`kamakiri cdn webaccel` で使う WebAccel API の認証情報です。CIでは
--token/--secret フラグより環境変数を推奨します。コマンドライン
引数は `ps` から見えますが、環境変数は見えません。
ファイル
設定ディレクトリは、XDG_CONFIG_HOME が設定されていれば $XDG_CONFIG_HOME/kamakiri、そうでなければ ~/.config/kamakiri で、どのプラットフォームでも同じです。Windows では %USERPROFILE%\.config\kamakiri になります。中身は次のとおりです。
credentials.jsonには、kamakiri loginが保存したAPIキーと、そのメールアドレスが入ります。決してコミットしないでください。settings.jsonには、言語の設定が入ります。設定したときに作られます。install.jsonには、スクリプトがどの方法でどこにインストールしたかが記録され、kamakiri upgradeがそれを読みます。update-check.jsonには、更新のお知らせを最後に表示した時刻が入ります。これで表示を1日1回に抑えています。
プロジェクトには、kamakiri init が書き出す .kamakiri/config.json があります。紐付いているサイトのIDが入っていますが、秘密の情報は含まれません。共同作業者やCIのジョブが同じサイトにデプロイできるよう、コミットしてください。
認証
kamakiri login は、設定ディレクトリの credentials.json にAPIキーを保存します。APIとやりとりするコマンドは、すべてこのキーを使います。
KAMAKIRI_API_KEY に空でない値が入っている間は、コマンドはその値を使い、認証情報ファイルは読みません。CIでの設定方法はデプロイで説明しています。
認証情報が見つからないコマンドは ログインしていません と表示して、終了コード1で終わります。サーバーがキーを拒否した場合は APIキーが無効です と表示されます。ログインし直すか、キーが KAMAKIRI_API_KEY から来ている場合は、その変数の値を確認してください。
コマンドが待つもの
サーバー側の処理を始めるコマンドは、リクエストが受け付けられた時点ではなく、サイトを訪れた人から見て結果がそのとおりになった時点で終了します。kamakiri deploy、kamakiri rollback、kamakiri cdn purge は、訪問者に現在のデプロイが届くようになってから終了します。CDNを設定している場合は、CDNを通した配信も含みます。
- 待機に制限時間はありません。何を待っているかを示す行がその場で更新され、完了した段階は
✓の行として画面に残ります。 - 途中で止まるのは、ご自身で直す必要があることが妨げになっているときだけです。そのときは何が問題かを表示して、終了コード1で終わります。直したあと、デプロイ、ロールバック、キャッシュのクリアは自動で完了します。それ以外のコマンドは、もう一度実行してください。
- Ctrl-C で止まるのは見守ることだけで、処理そのものは続きます。終了コードは130です。続きは kamakiri status で確認できます。
--no-waitを付けると、リクエストが受け付けられた時点で終了します。結果はあとからkamakiri statusで確認します。deploy、rollback、cdn purgeは、CIでも手元と同じように待ちます。ジョブを待たせたくない場合は--no-waitを付けます。- 対話的でないターミナルでは、
domainのregister、set、add、verifyは、設定すべきDNSレコードを表示して終了します。そのレコードを設定できるのはご自身だけだからです。詳しくは kamakiri domain を参照してください。
言語
CLIは英語と日本語で表示します。KAMAKIRI_LANG、kamakiri language で保存した設定、ロケールの順に決まります。サーバーから届くテキストは常に英語なので、日本語の出力にも英語の行が混ざることがあります。
コマンド一覧
- kamakiri login は、メールアドレスでログインします。
- kamakiri status は、アカウントと紐付いているサイトの状態を表示します。
- kamakiri init は、サイトを作成し、いまのディレクトリを紐付けます。
- kamakiri deploy は、ディレクトリまたはアーカイブをデプロイします。
- kamakiri deploys は、サイトに保持されているデプロイを一覧表示します。
- kamakiri rollback は、以前のデプロイをもう一度公開します。
- kamakiri teardown は、紐付いているサイトを削除します。
- kamakiri cdn は、サイトの前段のCDNを管理します。
- kamakiri domain は、独自ドメインを管理します。
- kamakiri subdomain は、サイトのサブドメインを表示・変更します。
- kamakiri version は、実行中のバージョンを表示します。
- kamakiri language は、クライアントが使う言語を表示・設定します。
- kamakiri upgrade は、クライアントを最新のリリースに更新します。