運用がiPadで回るのは分かっている。問題は「その環境をゼロから作れるか」です。結論から言うと作れます。ターミナルが要る作業は一つもありません。ただしAPI では代替できない関門が1つだけあります——GitHub App の認可。ここはブラウザで人が承認するしかない。逆に言えば、引っかかる可能性があるのもそこだけです。
GitOps構築ガイドは「ローカル環境が無くても進められる」と書いています。本記事はその一段先——「iPadという具体的な端末で、初期構築まで通るのか」を、工程ごとに分解して確かめたものです。
| # | 作業 | 誰が | iPadでの実際 |
|---|---|---|---|
| 1 | GitHub/Cloudflare のアカウント | 人 | Safari。無料プランで可 |
| 2 | リポジトリ作成 | エージェントでも可 | GitHub API で作れる。人がSafariで作っても同じ |
| 3 | 中身の生成 build スクリプト・ wrangler.jsonc・コンテンツ・CI | エージェント | 指示を出すだけ。ここが作業量の大半で、そこが丸ごと外に出る |
| 4 | ドメイン取得+ネームサーバーをCloudflareへ | 人 | レジストラのサイト(Safari)。*.workers.dev だけで済ませるなら不要 |
| 5 | GitHub App「Cloudflare Workers and Pages」の認可 | 人・ブラウザ必須 | APIで代替不可。ここだけが関門(→3章) |
| 6 | リポジトリ接続・ビルド/デプロイ設定 | 人 (認可後はAPIでも可) | Cloudflareダッシュボードのフォーム入力 |
| 7 | 独自ドメインの割り当て | エージェント | 設定ファイルに書くだけでダッシュボード操作が消える(→5章) |
| 8 | ブランチ保護 | 人 | GitHub の Settings → Branches |
PUT /accounts/{id}/builds/repos/connections と POST /accounts/{id}/builds/triggers)。ただし user-scoped の API トークン(Workers CI Write)が必要で、account-scoped トークンは Invalid token で拒否されます。iPad構築が成立する理由は、作業量の大半を占める部分が、そもそも人の手を離れていることにあります。
| エージェントがやること | 補足 |
|---|---|
| リポジトリの作成 | GitHub API 経由。人がSafariで作っても構わない |
| プロジェクトの雛形一式 | ビルドスクリプト・wrangler.jsonc・package.json・.nvmrc・ディレクトリ構成 |
| CIワークフロー | .github/workflows/ にビルドと検証を置く |
| 独自ドメインの設定 | wrangler.jsonc に書く(→5章) |
| commit・push・PR・マージ | — |
| ビルドと整合性チェック | コンテナ内で実行して結果を報告 |
地味ですが、iPadでの手作業を1つ減らせる箇所です。
{
"name": "your-app",
"compatibility_date": "YYYY-MM-DD",
"assets": { "directory": "./dist" },
"routes": [
{ "pattern": "example.com", "custom_domain": true }
]
}
routes[].custom_domain: true を書いておけば、DNSレコードとTLS証明書は Cloudflare が自動で発行します。ダッシュボードで Custom Domain を追加する操作が要らなくなり、ドメインの設定がリポジトリの中に残るという副次的な利点もあります。Cloudflare へのデプロイには、もう1つ GitHub Actions から API トークンでデプロイする方式があります。こちらなら GitHub App の認可すら要りません。それでも本記事が Workers Builds を採るのは、次の交換だからです。
| Workers Builds | GitHub Actions + APIトークン | |
|---|---|---|
| GitHub App認可 | 必要(1回) | 不要 |
| APIトークン | 不要 | 必要。作成してGitHub Secretsに保管・更新 |
| ブラウザ操作 | サイトごとに1分程度 | ゼロにできる |
| 向いている場面 | サイト数が少ない/トークンを持ちたくない | サイトを量産する/CIに独自処理を足したい |
| やること | 場所 | |
|---|---|---|
| 1 | Cloudflareアカウントを作る | Safari |
| 2 | ドメインのネームサーバーをCloudflareへ向ける | レジストラのサイト。反映に時間がかかるので最初にやる |
| 3 | 空のリポジトリを作る | Safari(GitHub) |
| 4 | エージェントに雛形一式を作らせる | Claude Code。wrangler.jsonc にドメインも書かせておく |
| 5 | GitHub App を認可 | Cloudflareダッシュボード → GitHubの承認画面。Only select repositories |
| 6 | リポジトリを接続し、ビルド/デプロイ設定を入れる | Cloudflareダッシュボード |
| 7 | 初回デプロイを確認 | ダッシュボードのビルドログ |
| 8 | ブランチ保護を入れる | GitHub Settings → Branches |
✘ [ERROR] The entry-point file at "src/index.ts" was not found.wrangler.jsonc から main の行を削除し、assets だけにします。エントリーポイントを要求されなくなります。Workerコードが要るなら main を残したうえで src/index.ts を実在させる——片方だけだとこのエラーです。詳細はGitOps構築ガイドに。
「作れる」と書きましたが、本記事はiPad実機で構築を通していません。工程を分解して「ターミナルを要求する作業が無い」ことを確かめたに留まります。踏んでみないと分からない箇所を、正直に挙げます。