Zum Hauptinhalt springen
Anleitungen zur Studio-Einrichtung Ich bin Webentwickler

Studio-Einrichtung für Webentwickler

Der Studio-Download enthält den vollständigen Quellcode beider Ausführungen, ein Deploy-Tool für Cloudflare und die technischen Dokumente. Diese Anleitung ist die Kurzfassung für alle, die lieber jeden Schritt selbst ausführen.

Am besten für
Webentwickler und IT-Teams, die Studio lieber selbst installieren, aus dem Quellcode im Studio-Download.
Das brauchen Sie
Den Studio-Download; für die PHP-Ausführung einen Apache-, LiteSpeed- oder nginx-Host mit PHP 8.0 oder neuer; für die Cloudflare-Ausführung ein Cloudflare-Konto mit aktiviertem R2 und Node.js 20 oder neuer.
Ausführungen
Zwei Ausführungen derselben App mit denselben URLs, derselben Upload-API, demselben Dashboard und denselben Rollen: eine datenbankfreie PHP-App und ein Cloudflare Worker mit R2 und D1.

Den Studio-Download holen

Melden Sie sich in Maxisnap mit dem Konto an, das Studio besitzt, und gehen Sie dann so vor:

  • Unter Windows: Öffnen Sie in Maxisnap Einstellungen → Konto → Einrichtungsassistent, klicken Sie auf „Los geht’s“ und dann auf „Dashboard herunterladen“. Maxisnap speichert die Studio-ZIP-Datei in Ihrem Downloads-Ordner und öffnet diesen Ordner.
  • Auf dem Mac: Öffnen Sie in Maxisnap Settings → Welcome & Help → Studio Setup Guide, klicken Sie auf „Get Started“ und dann auf „Download Dashboard“. Maxisnap speichert die Studio-ZIP-Datei in Ihrem Downloads-Ordner.

Entpacken Sie die ZIP-Datei. Klicken Sie unter Windows mit der rechten Maustaste darauf und wählen Sie „Alle extrahieren“. Auf dem Mac doppelklicken Sie darauf.

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

Der vollständige Developer guide behandelt die Architektur, die Upload-API, Schlüssel und Rollen, das Sicherheitsmodell und die Fehlerbehebung. Er liegt im Download unter docs/Developer guide.html.

PHP-Ausführung: hochladen und Einrichtung abschließen

  1. Laden Sie den Ordner snaps samt seinen versteckten .htaccess-Dateien in das Stammverzeichnis der Website hoch, sodass public_html/snaps/index.php entsteht. Eine snaps.zip mit Branding von der Seite „Start Here“ funktioniert genauso; entpacken Sie sie an Ort und Stelle und verschachteln Sie nicht snaps/snaps.
  2. Öffnen Sie https://yourcompany.com/snaps/ einmal. Die Einrichtungsseite prüft PHP und die Ordnerberechtigungen und schlägt einen Admin-Schlüssel mit 40 Zeichen vor; der Schlüssel muss mindestens 16 Zeichen haben. Kopieren Sie ihn und klicken Sie dann auf „Create my dashboard“.
  3. Bilden Sie unter nginx die Routing- und Sperrregeln aus snaps/.htaccess nach. Halten Sie uploads, data und branding privat.

Die Einrichtungsseite schreibt your-settings.php, die bei Updates erhalten bleibt:

'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-Ausführung: Deployment über ein Terminal

Die mitgelieferte CLI liest zuerst das Konto aus, zeigt in einem Plan, was sie erstellen wird und was sie nicht anfasst, und lehnt Namen ab, die schon vergeben sind. Bleibt ein Deployment mittendrin stehen, setzt derselbe Befehl bei erneutem Ausführen die Arbeit fort, ohne etwas doppelt zu erstellen.

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

Das Deployment gibt die Studio-Adresse und den Admin-Schlüssel einmalig aus und schreibt deployment.json in den Ordner, aus dem es läuft. Bewahren Sie diese Datei auf: update und remove verwenden sie.

Prüfen, ob es funktioniert

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"

Öffnen Sie dann die Studio-Adresse in einem Browser und melden Sie sich mit dem Admin-Schlüssel an. 401 bedeutet einen falschen Schlüssel; 404 bedeutet eine falsche Adresse oder einen falschen Ordner.

Maxisnap verbinden

  • Maxisnap für Windows: Öffnen Sie Einstellungen → Konto → Einrichtungsassistent, klicken Sie auf „Los geht’s“ und dann so oft auf „Weiter“, bis Sie Schritt 4, „Maxisnap verbinden“, erreichen. Fügen Sie die Adresse und den Schlüssel Ihres Studios ein, klicken Sie auf „Verbindung testen“, dann auf „Weiter“ und auf der letzten Seite auf „Speichern & beenden“. Der Admin-Schlüssel aus der Einrichtung funktioniert, ebenso ein Upload-Code aus People & access in Ihrem Dashboard.
  • Maxisnap für Mac: Öffnen Sie Settings → Welcome & Help → Studio Setup Guide und wählen Sie „I already have a dashboard“. Fügen Sie die Adresse und den Schlüssel Ihres Studios ein, klicken Sie auf „Test Connection“, dann auf „Next“ und auf „Finish & Save“.

Die Upload-API kennenlernen

  • Die Maxisnap-Apps laden mit dem Header X-Dashboard-Key an api/upload.php hoch. Bilder (PNG, JPG, GIF und WebP) und Videos (MP4, WebM und MOV) werden akzeptiert.
  • Maxisnap für Windows und Maxisnap für Mac senden jeden Upload in einer einzigen Anfrage an ein Cloudflare-Studio, das bis zu 25 MB pro Datei annimmt.
  • Die Cloudflare-Ausführung hat außerdem eine Chunked-Upload-API für größere Dateien, beschrieben im Developer guide: api/upload/start, part und complete.
  • Freigabeseiten und ihre Mediendateien verwenden diese Pfade; jeder andere Pfad ist intern: /<slug> /<slug>.<ext>

Später aktualisieren oder entfernen

PHP: Ersetzen Sie nur die in snaps/How to update.txt aufgeführten Dateien und leeren Sie dann die Caches von Host und CDN. Aufnahmen, Personen, Branding und Einstellungen bleiben erhalten.

Cloudflare: Führen Sie diese Befehle im Ordner cloudflare des neueren Pakets aus, nachdem Sie die alte deployment.json in diesen Ordner kopiert haben.

# 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

Lesen Sie die technische Übersicht zu Cloudflare: jede Ressource, jede Berechtigung und jeden API-Aufruf.

Wenn etwas schiefgeht

Der Health-Check antwortet mit 401

{"error":"unauthorized"}

Der Schlüssel ist falsch, deaktiviert oder kürzer, als Studio akzeptiert, oder die Einrichtung auf einem PHP-Host ist noch nicht abgeschlossen. Senden Sie ihn im Header X-Dashboard-Key, niemals in der Adresse.

Der Health-Check antwortet mit 404 oder mit HTML statt JSON

Die Adresse oder der Ordner ist falsch, der Host ignoriert die .htaccess-Regeln von Studio (nginx oder Apache ohne Rewriting), oder ein CDN oder eine Sicherheitsschicht antwortet anstelle von Studio. Bilden Sie unter nginx die Routing- und Sperrregeln aus snaps/.htaccess nach; der Developer guide listet sie auf.

Der Health-Check antwortet mit 429

Too many incorrect codes. Wait a few minutes before trying again.

Nach wiederholter Eingabe falscher Schlüssel lehnt Studio weitere Versuche aus Ihrem Netzwerk 15 Minuten lang ab. Warten Sie und versuchen Sie es dann mit dem richtigen Schlüssel erneut.

Uploads antworten auf einer eigenen Domain mit 403

Cloudflare Access, eine WAF-Regel oder der Bot Fight Mode auf diesem Hostnamen blockieren die Uploads der Apps. Schließen Sie den Studio-Hostnamen aus; die technische Übersicht enthält die Checkliste. Auch ein Viewer-Code erhält bei Uploads 403: Verwenden Sie den Admin-Schlüssel oder einen Upload-Code.

Uploads antworten mit 413

Bei PHP ist upload_max_filesize, post_max_size oder ein Limit des Hosts oder CDN kleiner als die Datei; das eigene Limit von Studio ist max_upload_mb in your-settings.php.

Bei Cloudflare darf eine Anfrage bis zu 25 MB enthalten; größere Dateien brauchen die Chunked-Upload-API.

Jede Seite eines Cloudflare-Studios antwortet mit 503

This Studio is not set up correctly: its ADMIN_KEY secret must be at least 16 characters.

Legen Sie ein längeres ADMIN_KEY-Secret fest, zum Beispiel mit dem Befehl update und --new-admin-key oder mit npx wrangler secret put ADMIN_KEY.

Der Plan stoppt mit einer „x“-Zeile

Jede „x“-Zeile ist ein Blocker und sagt, was zu tun ist: R2 aktivieren, --subdomain für ein Konto ohne workers.dev-Namen hinzufügen oder --name, --zone oder --hostname ändern, wenn ein Name ungültig, vergeben oder außerhalb der Domain ist. Erstellen Sie danach den Plan erneut. Belegte Bucket- und Datenbanknamen erhalten ohne Blocker den nächsten freien Namen.

Die CLI lehnt deployment.json ab

deployment.json belongs to the Studio "snaps". Keep it, and pass --record <another file> for this one.

Jedes Studio hat seine eigene Record-Datei. Behalten Sie diese Datei und geben Sie dem zweiten Studio mit --record eine andere. Ohne Record-Datei können update und remove nicht ausgeführt werden; übergeben Sie den Pfad der richtigen Datei.

Ein Studio auf workers.dev zeigt „Error 1027“

Das tägliche Anfragelimit des kostenlosen Tarifs wurde erreicht. Es wird um Mitternacht UTC zurückgesetzt.

Brauchen Sie weitere Hilfe?

Schreiben Sie uns eine E-Mail, und eine Person antwortet Ihnen, in der Regel innerhalb eines Werktags. Diese Angaben helfen uns, in einem Zug zu antworten:

  • Die gewählte Einrichtungsoption und der Schritt, bei dem Sie gerade sind.
  • Ein Screenshot des Bildschirms, mit jeder Fehlermeldung im vollen Wortlaut.
  • Wohin Ihr Studio kommen soll: ein neues oder bestehendes Cloudflare-Konto oder der Name Ihres Webhosting-Anbieters.
  • Ihre Maxisnap-Version: unter Windows in Einstellungen, dann Info; auf dem Mac unter Maxisnap, dann About Maxisnap.

Bitte senden Sie uns weder Ihren Admin-Schlüssel noch einen Cloudflare-Schlüssel noch ein Passwort. Wir brauchen sie nicht, um Ihnen zu helfen.

Weitere Einrichtungsanleitungen