Zero Key セットアップ

GCPへの自動デプロイ + Cloudflare Tunnel自動設定。フォーム入力とボタン操作だけで、ドメインでアクセス可能なZero Keyが立ち上がります。

事前に必要なもの:

1. Cloudflareアカウント(無料)
Cloudflareアカウント作成

2. ドメイン
→ まだお持ちでない場合: Cloudflareでドメインを取得(.com等。年間約$10)
→ 既にお持ちの場合: Cloudflareにドメインを追加(他のレジストラで取得したドメインも利用可能)

3. GCPアカウント(無料)
Google Cloud アカウント(Gmailをお持ちならそのアカウントで利用可能)

4. Cloudflare APIトークン詳しい手順はこちら ↓
簡易手順例(3分で完了)
1. Cloudflare API Tokens を開く
2. 「Create Token」→「Create Custom Token」
3. 権限: Account / Cloudflare Tunnel / EditZone / DNS / Edit
4. 対象アカウントとゾーン(ドメイン)を選択して作成
⚠️ トークンは作成時に一度だけ表示されます。必ずコピーして保存してください。
※ 上記は手順の例です。実際の手順はCloudflareの公式ドキュメントで確認してください。
5. メール送信用のSMTPサーバー情報Gmailの手順はこちら ↓
Gmailの場合の簡易手順例
1. Googleアカウント → セキュリティ → 2段階認証を有効化
2. アプリパスワードを生成
3. SMTPサーバー: smtp.gmail.com / ポート: 465
4. パスワード: 生成したアプリパスワード(Gmailのログインパスワードではない)
※ 上記は手順の例です。実際の手順はGoogleの公式ドキュメントで確認してください。
※ このツールはメールアドレスやドメインの新規作成・登録を行うものではありません。既にお持ちの送受信可能なメールアドレスが必要です。

公開URL

取得済みで、Zero Keyに割り当てるドメインのホスト名を入力してください。https://は不要です。
例: zerokey.example.com
ドメイン名を入力してください

管理者設定

管理者ログインに使用するメールアドレスです。パスワードリセットやセキュリティ通知の送信先にもなります。
実在する受信可能なメールアドレスを入力してください。仮アドレスのまま運用すると、ロックアウト時にリセットメールを受け取れず、ログインできなくなります。
有効なメールアドレスを入力してください
初回ログイン時に使用するパスワードです。12文字以上で設定してください。ログイン後にパスキーを登録すれば、以降はパスワード不要になります。
パスワードは12文字以上で入力してください
セキュリティイベント(不審なログイン試行等)の通知先です。管理者メールと同じアドレスを推奨します。

SMTP設定(メール送信)

ユーザー招待メール・パスキー再登録メール・セキュリティ通知の送信に使用します。
この送信元アドレスからのメールを、利用者・登録者に受信拒否しないよう周知することを推奨します。
SMTPサーバーURLを入力してください
SSL/TLS: 465、STARTTLS: 587
有効なポート番号を入力してください
SMTPユーザー名を入力してください
メールサービスのパスワードまたはアプリパスワードを入力してください。
SMTPパスワードを入力してください
形式: 表示名 <メールアドレス> 例: Zero Key <noreply@example.com>
送信元アドレスを入力してください
メールの件名に付加される接頭辞です。自社名や組織名に変更できます。
Gmailをお使いの場合の設定手順:
1. Googleアカウント → セキュリティ → 2段階認証を有効化
2. アプリパスワードを生成(https://myaccount.google.com/apppasswords)
3. SMTPサーバー: smtp.gmail.com
4. ポート: 465
5. ユーザー名: お使いのGmailアドレス
6. パスワード: 生成したアプリパスワード(Gmailのログインパスワードではありません)
※ Google Workspace(独自ドメインのGmail)も同じ手順です。

WebAuthn(パスキー)

自動入力された値を確認してください。通常はルートドメイン(example.com、example.co.jpなど)を入力します。
一度設定すると変更できません。変更した場合、全ユーザーがパスキーを再登録する必要があります。
※ co.jpなどの複合ドメインの場合、自動導出が不正確になることがあります。手動で確認・修正してください。
RP IDを入力してください
公開URLから自動導出されます。ポート:443はZeroKeyの検証要件で必須です。

タイムゾーン

メール内のタイムスタンプに使用されるデフォルトタイムゾーンです。IANA形式で入力してください(例: Asia/Tokyo、Europe/Berlin、America/New_York)。
ユーザー個別のタイムゾーンはAdmin UIのZero Key設定ページから動的に変更できます。

暗号化キー・シークレット

内部データベースの暗号化とクラスタ通信の認証に使用します。生成ボタンで安全な値を自動作成できます。
生成ボタンで自動作成できます。既存のキーを使用する場合は直接入力してください。
形式: xxxxxxxx/base64文字列(例: 1c3134de/V4ad05MG...)
一度設定したら変更できません。紛失するとデータの復旧ができなくなります。
暗号化キーを生成または入力してください(形式: hex文字列/base64文字列)
Raftシークレットを生成または入力してください(16文字以上)
APIシークレットを生成または入力してください(16文字以上)
生成されたシークレットは必ずセキュアな場所に別途バックアップ保存してください。紛失するとデータの復旧ができなくなります。

オプション設定

ログイン画面(トップページ)に管理者ページへのボタンを表示するかどうかを選択します。
ボタンを非表示にしても、管理者は URLに https://{ドメイン}/auth/v1/admin を直接入力してログインできます。
一般ユーザーが管理者ボタンを押しても、管理者権限がない場合は管理者画面にはアクセスできません。セキュリティ上の問題はありません。
API開発を行う技術者のみ有効にしてください。有効にするとAPI仕様書(/auth/v1/docs/)にアクセスできるようになります。

Cloudflare接続

Tunnel・DNS設定を自動で行い、cloudflaredコンテナをcompose.yamlに含めます。
既にCloudflare Tunnelやリバースプロキシをお使いの場合はOFFにしてください。OFFの場合、Zero Keyはlocalhost:19080で待ち受けます。既存のTunnel設定にルーティングを追加してください。
Cloudflare Tunnelの自動作成とDNS設定に使用します。Zero Keyへの外部アクセスを自動的に設定します。
Cloudflare APIトークンを入力してください
Cloudflare APIトークンの作成手順例(初回のみ・3分で完了)
1. Cloudflareダッシュボード → API Tokens を開く
2. 「Create Token」ボタンをクリック
3. 一番下の「Create Custom Token」の「Get started」をクリック
4. Token name: 任意の名前(例: Zero Key Setup)
5. Permissions(2つ追加):
   • Account / Cloudflare Tunnel / Edit
   • Zone / DNS / Edit
6. Account Resources: 「Include」→ お使いのアカウントを選択
7. Zone Resources: 「Include」→ 「Specific zone」→ 対象のドメインを選択
8. 「Continue to summary」→「Create Token」
9. 表示されたトークンをコピーして上の入力欄に貼り付け

⚠️ トークンは作成時に一度だけ表示されます。必ずコピーして安全な場所にも保存してください。この画面を閉じると二度と表示されません。
※ 上記は手順の例です。実際の手順はCloudflareの公式ドキュメントで確認してください。

GCP + Cloudflare 全自動デプロイ

上のフォームで全項目を入力後、Googleアカウントでログインし「デプロイ」を押すと、GCPにVMを作成し、Cloudflare Tunnelを設定し、ドメインでアクセス可能なZero Keyが自動的に立ち上がります。
SSHやコマンド操作は一切不要です。
GCP e2-microの無料枠は us-west1、us-central1、us-east1 のみです。他のリージョンでは課金が発生します。
1プロジェクトあたりe2-micro 1台が無料枠の上限です。
Zero Keyはメモリ約50MBで動作するため、e2-microで十分です。
既にe2-microを使用中の場合、追加すると無料枠を超えて課金が発生する可能性があります。
Googleログイン後、GCPプロジェクト一覧が自動で読み込まれます。
このツールはお客様のGCPアカウントにVMを作成し、Cloudflare Tunnelを設定します。
作成されたVM・Tunnel・DNSレコードの管理・削除はお客様の責任です。
お客様のデータはお客様のGCPアカウント上に保存されます(セルフSaaS)。
入力に不備があります。赤く表示されている項目を確認してください。
※ secrets.txtはサーバーに配置せず、セキュアな場所に別途保管してください。
手動でGCPにデプロイする場合(手順例)
1. 上のフォームで全項目を入力し、「GCP startup script をコピー」ボタンを押す
2. GCPコンソール(https://console.cloud.google.com)にログイン
3. Compute Engine → VMインスタンス → 「インスタンスを作成」
4. マシンタイプ例: e2-micro(無料枠対象)
5. リージョン例: asia-northeast1(東京)
6. OSイメージ例: Ubuntu 22.04 LTS
7. 「詳細オプション」→「管理」→「自動化」→「起動スクリプト」テキストボックスに、コピーしたスクリプトを貼り付け
8. 「作成」ボタンでVM作成。起動後、自動的にZero Keyがセットアップされます
9. ブラウザで https://{ドメイン}/auth/v1/ にアクセスし、設定した管理者メール・パスワードでログイン
10. Admin UI → Zero Key設定ページで運用ポリシーを設定

※ 上記は手順の例です。実際の手順は実装環境に合わせて確認・変更してください。
NAS・自前サーバーにデプロイする場合(手順例)
1. 上のボタンから全ファイル+setup.shをダウンロード
2. SSHでサーバーに接続
3. 任意のディレクトリを作成: mkdir -p ~/zerokey && cd ~/zerokey
※ Synology NASの場合は /volume1/docker/zerokey/ など、DSMやSMB共有から見える場所に作成してください。見えない場所ではファイルを直接ドロップ配置できません
4. ダウンロードした4ファイル(config.toml、compose.yaml、Caddyfile、setup.sh)を配置
※ secrets.txtはサーバーに配置不要です。手元のセキュアな場所に保管してください
5. cd ~/zerokey && bash setup.sh を実行(フォルダ作成・権限設定・Docker起動を一括実行します)
6. ブラウザで https://{ドメイン}/auth/v1/ にアクセスし、設定した管理者メール・パスワードでログイン
7. Admin UI → Zero Key設定ページで運用ポリシーを設定

※ 上記は手順の例です。実際の手順は実装環境に合わせて確認・変更してください。