メインコンテンツへスキップ
Studioセットアップガイド Web開発者です

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エディション:アップロードしてセットアップを完了する

  1. snapsフォルダーを、隠しファイルの.htaccessも含めてWebルートにアップロードし、結果がpublic_html/snaps/index.phpになるようにします。Start Hereページで作成したブランド入りのsnaps.zipも同じ方法で使えます。その場で展開し、snaps/snapsのように入れ子にしないでください。
  2. https://yourcompany.com/snaps/ を一度開きます。セットアップページがPHPとフォルダーの権限をチェックし、40文字の管理者キーを提案します。キーは16文字以上である必要があります。キーをコピーして、「Create my dashboard」をクリックします。
  3. 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

Cloudflare技術資料を読む:すべてのリソース、権限、API呼び出し。

うまくいかない場合

ヘルスチェックが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のキー、パスワードは送らないでください。サポートには必要ありません。

ほかのセットアップガイド