Web開発者向けのStudioセットアップ
Studioのダウンロードには、両方のエディションの完全なソース、Cloudflare用のデプロイツール、技術文書が含まれています。このガイドは、各手順をご自身で実行したい方のための要約版です。
- こんな場合におすすめ
- Studioのダウンロードに含まれるソースから、Studioを自分たちでインストールしたいWeb開発者やITチーム。
- 必要なもの
- Studioのダウンロード;PHPエディションの場合は、PHP 8.0以上が動くApache、LiteSpeed、またはnginxのホスト;Cloudflareエディションの場合は、R2を有効にしたCloudflareアカウントと、Node.js 20以上。
- エディション
- 同じURL、アップロードAPI、ダッシュボード、ロールを備えた、同じアプリの2つのエディション:データベース不要のPHPアプリと、R2とD1を使うCloudflare Worker。
Studioのダウンロードを入手する
Studioを利用できるアカウントでMaxisnapにサインインしてから、次の操作を行います:
- Windowsの場合:Maxisnapで「設定 → アカウント → Maxisnap Studio セットアップウィザード」を開き、「はじめましょう」、続いて「ダッシュボードをダウンロード」をクリックします。MaxisnapがStudioのZIPファイルを「ダウンロード」フォルダーに保存し、そのフォルダーを開きます。
- Macの場合:Maxisnapで「Settings → Welcome & Help → Studio Setup Guide」を開き、「Get Started」、続いて「Download Dashboard」をクリックします。MaxisnapがStudioのZIPファイルを「ダウンロード」フォルダーに保存します。
ZIPファイルを展開します。Windowsでは、右クリックして「すべて展開」を選びます。Macでは、ダブルクリックします。
Maxisnap-Studio-v<version>/
Maxisnap Studio - Start Here.html guided setup (branding + every route)
snaps/ PHP edition: upload this folder to a web host
cloudflare/ Cloudflare Workers edition (Worker + R2 + D1)
deploy/cli.mjs deploys it through the Cloudflare API (Node 20+)
docs/Developer guide.html architecture, upload API, security, updates
docs/Cloudflare setup - technical brief.html
AGENTS.md instructions for AI coding assistants 完全版の「Developer guide」では、アーキテクチャ、アップロードAPI、キーとロール、セキュリティモデル、トラブルシューティングを扱っています。ダウンロード内のdocs/Developer guide.htmlです。
PHPエディション:アップロードしてセットアップを完了する
- snapsフォルダーを、隠しファイルの.htaccessも含めてWebルートにアップロードし、結果がpublic_html/snaps/index.phpになるようにします。Start Hereページで作成したブランド入りのsnaps.zipも同じ方法で使えます。その場で展開し、snaps/snapsのように入れ子にしないでください。
- https://yourcompany.com/snaps/ を一度開きます。セットアップページがPHPとフォルダーの権限をチェックし、40文字の管理者キーを提案します。キーは16文字以上である必要があります。キーをコピーして、「Create my dashboard」をクリックします。
- nginxでは、snaps/.htaccessにあるルーティングと拒否のルールを再現してください。uploads、data、brandingは非公開にしておきます。
セットアップページがyour-settings.phpを書き出します。このファイルは、更新しても保持されます:
'dashboard_key' => '…', // the Admin key; the setup page writes it
'base_url' => 'https://yourcompany.com/snaps', // the address setup was opened at; fix it here if share links come out wrong
'max_upload_mb' => 500, // your host's PHP limits still apply Cloudflareエディション:ターミナルからデプロイする
同梱のCLIは、最初にアカウントを読み取り、作成するものと手を付けないものの実行計画を表示し、すでに使われている名前は受け付けません。デプロイが途中で止まった場合は、同じコマンドをもう一度実行すれば、何も二重に作成することなく続きから再開されます。
cd cloudflare
# Option 1: the bundled CLI (Node 20+; plan first, then --yes). PowerShell:
$env:CLOUDFLARE_API_TOKEN = "<token: Account Settings Read; Workers Scripts, R2 and D1 Edit;
for --zone/--hostname also Zone Read, DNS Read, Workers Routes Read>"
node deploy/cli.mjs whoami
node deploy/cli.mjs plan --account <account id> --name snaps
# no workers.dev name on the account yet? The plan asks you to "Choose your free
# workers.dev name": add --subdomain <your-company> to both commands (account-wide).
# A subdomain of your domain as well: add --zone <zone id> --hostname snaps.example.com
node deploy/cli.mjs deploy --account <account id> --name snaps --yes
# prints the Studio address and the Admin key once, and writes deployment.json here
# Option 2: plain Wrangler (create the bucket and database, set their ids in wrangler.jsonc)
npm install
npx wrangler r2 bucket create maxisnap-studio-media
npx wrangler d1 create maxisnap-studio
npx wrangler secret put ADMIN_KEY
npm run sync
npx wrangler deploy デプロイでは、Studioのアドレスと管理者キーが一度だけ表示され、実行したフォルダーにdeployment.jsonが書き出されます。このファイルは保管しておいてください。updateとremoveで使われます。
動作を確認する
curl.exe -s -H "X-Dashboard-Key: <Admin key>" https://<studio address>/api/health.php
# {"ok":true,"app":"Maxisnap Studio","version":"…"} the Cloudflare edition adds "edition":"cloudflare" そのあと、ブラウザーでStudioのアドレスを開き、管理者キーでサインインします。401はキーが間違っていること、404はアドレスまたはフォルダーが間違っていることを意味します。
Maxisnapを接続する
- Windows版Maxisnap:「設定 → アカウント → Maxisnap Studio セットアップウィザード」を開き、「はじめましょう」をクリックします。ステップ4の「Maxisnap を接続」まで、「次へ」をクリックして進みます。Studioのアドレスとキーを貼り付け、「接続をテスト」、「次へ」の順にクリックして、最後のページで「完了して保存」をクリックします。セットアップで表示された管理者キーを使えます。ダッシュボードの「People & access」にあるアップロードコードも使えます。
- Mac版Maxisnap:「Settings → Welcome & Help → Studio Setup Guide」を開き、「I already have a dashboard」を選びます。Studioのアドレスとキーを貼り付け、「Test Connection」、「Next」、「Finish & Save」の順にクリックします。
アップロードAPIを知る
- Maxisnapのアプリは、X-Dashboard-Keyヘッダーを付けてapi/upload.phpにアップロードします。画像(PNG、JPG、GIF、WebP)と動画(MP4、WebM、MOV)を受け付けます。
- Windows版MaxisnapとMac版Maxisnapは、CloudflareのStudioに各アップロードを1回のリクエストで送信します。受け付けるのは、ファイルあたり25 MBまでです。
- Cloudflareエディションには、大きなファイル向けの分割アップロードAPIもあります。「Developer guide」で説明されています:api/upload/start、part、complete。
- 共有ページとそのメディアファイルには、次のパスが使われます。それ以外のパスはすべて内部用です:
/<slug>/<slug>.<ext>
あとから更新または削除する
PHP:snaps/How to update.txtに記載されたファイルだけを置き換え、そのあとホストとCDNのキャッシュを消去します。キャプチャ、メンバー、ブランド設定、各種設定はそのまま残ります。
Cloudflare:新しいパッケージのcloudflareフォルダーに古いdeployment.jsonをコピーしてから、そのフォルダーで次のコマンドを実行します。
# Update: from a newer package's cloudflare folder, with the old deployment.json copied in
node deploy/cli.mjs update --record deployment.json --yes
# New Admin key (shown once):
node deploy/cli.mjs update --record deployment.json --yes --new-admin-key
# Remove the custom domain and the Worker; the bucket and database (the captures) stay
node deploy/cli.mjs remove --record deployment.json --yes
# Also delete every capture: cannot be undone
node deploy/cli.mjs remove --record deployment.json --yes --delete-data うまくいかない場合
ヘルスチェックが401を返す
{"error":"unauthorized"}
キーが間違っている、無効になっている、Studioが受け付ける長さより短い、あるいはPHPホストでセットアップが完了していない、のいずれかです。キーはX-Dashboard-Keyヘッダーで送信し、アドレスには含めないでください。
ヘルスチェックが404、またはJSONではなくHTMLを返す
アドレスまたはフォルダーが間違っている、ホスト側がStudioの.htaccessルールを無視している(nginx、または書き換えが無効なApache)、あるいはStudioではなくCDNやセキュリティ層が応答している、のいずれかです。nginxでは、snaps/.htaccessにあるルーティングと拒否のルールを再現してください。該当するルールは「Developer guide」に載っています。
ヘルスチェックが429を返す
Too many incorrect codes. Wait a few minutes before trying again.
間違ったキーが繰り返し入力されると、Studioはお使いのネットワークからのそれ以降の試行を15分間拒否します。待ってから、正しいキーでもう一度試してください。
カスタムドメインでアップロードが403を返す
そのホスト名に設定されたCloudflare Access、WAFルール、またはBot Fight Modeが、アプリからのアップロードをブロックしています。Studioのホスト名を対象から除外してください。チェックリストは技術資料に載っています。Viewerのコードでも、アップロードは403になります。管理者キーまたはアップロードコードを使ってください。
アップロードが413を返す
PHPの場合は、upload_max_filesize、post_max_size、またはホストやCDNの上限が、ファイルサイズより小さくなっています。Studio自体の上限は、your-settings.phpのmax_upload_mbです。
Cloudflareでは、1回のリクエストで送れるのは最大25 MBです。それより大きいファイルには、分割アップロードAPIが必要です。
CloudflareのStudioのすべてのページが503を返す
This Studio is not set up correctly: its ADMIN_KEY secret must be at least 16 characters.
ADMIN_KEYシークレットに、より長い値を設定します。たとえば、updateコマンドと --new-admin-key を使うか、npx wrangler secret put ADMIN_KEY を使います。
実行計画が「x」の行で止まる
「x」の行はそれぞれブロッカーで、対処方法も示されています。対処は次のいずれかです。R2を有効にする、workers.dev名のないアカウントでは --subdomain を追加する、名前が無効・使用済み・ドメイン外の場合は --name、--zone、--hostname のいずれかを変更する。そのあと、実行計画をもう一度作成してください。すでに使われているバケット名とデータベース名は、ブロッカーにはならず、次に空いている名前になります。
CLIがdeployment.jsonを受け付けない
deployment.json belongs to the Studio "snaps". Keep it, and pass --record <another file> for this one.
Studioごとに専用の記録ファイルがあります。そのファイルを保管し、2つ目のStudioには --record で別のファイルを指定してください。記録ファイルがないと update と remove は実行できないため、正しいファイルのパスを指定してください。
workers.devのStudioに「Error 1027」と表示される
無料プランの一日あたりのリクエスト上限に達しました。UTCの午前零時にリセットされます。
解決しませんでしたか?
メールをお送りください。担当者が、通常は1営業日以内に返信します。次の情報があると、一度の返信でお答えしやすくなります:
- 選んだセットアップ方法と、今どの手順にいるか。
- 画面のスクリーンショット(エラーメッセージがある場合は全文が分かるもの)。
- Studioをどこに設置するか:新しいCloudflareアカウントか既存のCloudflareアカウントか、またはWebホスティング会社の名前。
- Maxisnapのバージョン:Windowsでは「設定 → バージョン情報」、Macでは「Maxisnap → About Maxisnap」で確認できます。
管理者キー、Cloudflareのキー、パスワードは送らないでください。サポートには必要ありません。