Configuration de Studio pour les développeurs web
Le téléchargement de Studio contient le code source complet des deux éditions, un outil de déploiement pour Cloudflare et les documents techniques. Ce guide en est la version courte, pour ceux qui préfèrent exécuter chaque étape eux-mêmes.
- Meilleur pour
- Les développeurs web et les équipes informatiques qui préfèrent installer Studio eux-mêmes, à partir du code source inclus dans le téléchargement de Studio.
- Ce qu'il vous faut
- Le téléchargement de Studio ; pour l'édition PHP, un hébergement Apache, LiteSpeed ou nginx avec PHP 8.0 ou une version plus récente ; pour l'édition Cloudflare, un compte Cloudflare avec R2 activé et Node.js 20 ou une version plus récente.
- Éditions
- Deux éditions de la même application, avec les mêmes URL, la même API d'envoi, le même tableau de bord et les mêmes rôles : une application PHP sans base de données, et un Worker Cloudflare s'appuyant sur R2 et D1.
Téléchargez Studio
Connectez-vous à Maxisnap avec le compte qui dispose de Studio, puis :
- Sous Windows : dans Maxisnap, ouvrez Paramètres → Compte → Assistant de configuration, cliquez sur « Commencer », puis sur « Télécharger le tableau de bord ». Maxisnap enregistre le ZIP de Studio dans votre dossier Téléchargements et ouvre ce dossier.
- Sur Mac : dans Maxisnap, ouvrez Settings → Welcome & Help → Studio Setup Guide, cliquez sur « Get Started », puis sur « Download Dashboard ». Maxisnap enregistre le ZIP de Studio dans votre dossier Téléchargements.
Extrayez le ZIP. Sous Windows, faites un clic droit dessus et choisissez « Extraire tout ». Sur Mac, double-cliquez dessus.
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 Le Developer guide complet couvre l'architecture, l'API d'envoi, les clés et les rôles, le modèle de sécurité et le dépannage. Il s'agit de docs/Developer guide.html dans le téléchargement.
Édition PHP : envoi des fichiers et fin de la configuration
- Envoyez le dossier snaps à la racine web, avec ses fichiers .htaccess cachés, de sorte que le résultat soit public_html/snaps/index.php. Un snaps.zip personnalisé depuis la page Start Here fonctionne de la même façon : extrayez-le sur place et n'imbriquez pas snaps/snaps.
- Ouvrez https://yourcompany.com/snaps/ une fois. La page de configuration vérifie PHP et les permissions du dossier, et propose une clé d'administration de 40 caractères ; la clé doit en compter au moins 16. Copiez-la, puis cliquez sur « Create my dashboard ».
- Sur nginx, reproduisez les règles de routage et de refus de snaps/.htaccess. Gardez uploads, data et branding privés.
La page de configuration écrit your-settings.php, qui est conservé lors des mises à jour :
'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 Édition Cloudflare : déploiement depuis un terminal
Le CLI fourni lit d'abord le compte, présente un plan de ce qu'il va créer et de ce qu'il ne touchera pas, et refuse les noms déjà utilisés. Si un déploiement s'arrête en cours de route, relancer la même commande permet de continuer sans rien créer en double.
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 Le déploiement affiche l'adresse de Studio et la clé d'administration une seule fois, et écrit deployment.json dans le dossier depuis lequel il s'exécute. Conservez ce fichier : update et remove l'utilisent.
Vérifiez que tout fonctionne
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" Ouvrez ensuite l'adresse de Studio dans un navigateur et connectez-vous avec la clé d'administration. 401 signifie une clé incorrecte ; 404 signifie une adresse ou un dossier incorrect.
Connectez Maxisnap
- Maxisnap pour Windows : ouvrez Paramètres → Compte → Assistant de configuration, cliquez sur « Commencer », puis sur « Suivant » jusqu'à l'étape 4, « Connecter Maxisnap ». Collez l'adresse et la clé de votre Studio, cliquez sur « Tester la connexion », puis sur « Suivant », puis, sur la dernière page, sur « Terminer et enregistrer ». La clé d'administration fournie lors de la configuration fonctionne, tout comme un code d'envoi issu de People & access dans votre tableau de bord.
- Maxisnap pour Mac : ouvrez Settings → Welcome & Help → Studio Setup Guide et choisissez « I already have a dashboard ». Collez l'adresse et la clé de votre Studio, cliquez sur « Test Connection », puis sur « Next », puis sur « Finish & Save ».
Découvrez l'API d'envoi
- Les applications Maxisnap envoient les fichiers avec un en-tête X-Dashboard-Key vers api/upload.php. Les images (PNG, JPG, GIF et WebP) et les vidéos (MP4, WebM et MOV) sont acceptées.
- Maxisnap pour Windows et Maxisnap pour Mac envoient chaque fichier à un Studio Cloudflare en une seule requête, que celui-ci accepte jusqu'à 25 MB par fichier.
- L'édition Cloudflare dispose aussi d'une API d'envoi par morceaux pour les fichiers plus volumineux, décrite dans le Developer guide : api/upload/start, part et complete.
- Les pages de partage et leurs fichiers multimédias utilisent ces chemins ; tout autre chemin est interne :
/<slug>/<slug>.<ext>
Mettez-le à jour ou supprimez-le plus tard
PHP : remplacez uniquement les fichiers listés dans snaps/How to update.txt, puis videz les caches de l'hébergeur et du CDN. Les captures, l'équipe, la personnalisation et les paramètres sont conservés.
Cloudflare : exécutez ces commandes depuis le dossier cloudflare du paquet plus récent, avec l'ancien deployment.json copié dedans.
# 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 Lisez la note technique Cloudflare : chaque ressource, chaque permission et chaque appel d'API.
En cas de problème
Le contrôle d'état répond 401
{"error":"unauthorized"}
La clé est incorrecte, désactivée ou plus courte que ce que Studio accepte, ou la configuration n'est pas terminée sur un hébergement PHP. Envoyez-la dans l'en-tête X-Dashboard-Key, jamais dans l'adresse.
Le contrôle d'état répond 404, ou du HTML au lieu de JSON
L'adresse ou le dossier est incorrect, l'hébergeur ignore les règles .htaccess de Studio (nginx, ou Apache sans réécriture), ou bien un CDN ou une couche de sécurité répond à la place de Studio. Sur nginx, reproduisez les règles de routage et de refus de snaps/.htaccess ; le Developer guide les répertorie.
Le contrôle d'état répond 429
Too many incorrect codes. Wait a few minutes before trying again.
Après plusieurs clés incorrectes à la suite, Studio refuse les nouvelles tentatives depuis votre réseau pendant 15 minutes. Patientez, puis réessayez avec la bonne clé.
Les envois répondent 403 sur un domaine personnalisé
Cloudflare Access, une règle WAF ou Bot Fight Mode sur ce nom d'hôte bloque les envois des applications. Excluez le nom d'hôte de Studio ; la note technique contient la liste de contrôle. Un code Viewer reçoit aussi la réponse 403 lors des envois : utilisez la clé d'administration ou un code d'envoi.
Les envois répondent 413
Sur PHP, upload_max_filesize, post_max_size ou une limite de l'hébergeur ou du CDN est inférieure à la taille du fichier ; la limite propre à Studio est max_upload_mb dans your-settings.php.
Sur Cloudflare, une requête peut transporter jusqu'à 25 MB ; les fichiers plus volumineux nécessitent l'API d'envoi par morceaux.
Chaque page d'un Studio Cloudflare répond 503
This Studio is not set up correctly: its ADMIN_KEY secret must be at least 16 characters.
Définissez un secret ADMIN_KEY plus long, par exemple avec la commande update et --new-admin-key, ou avec npx wrangler secret put ADMIN_KEY.
Le plan s'arrête sur une ligne « x »
Chaque ligne « x » est un élément bloquant, et elle indique quoi faire : activer R2, ajouter --subdomain pour un compte sans nom workers.dev, ou modifier --name, --zone ou --hostname lorsqu'un nom est invalide, déjà pris ou en dehors du domaine. Relancez ensuite le plan. Les noms de bucket et de base de données déjà pris reçoivent le prochain nom libre, sans élément bloquant.
Le CLI refuse deployment.json
deployment.json belongs to the Studio "snaps". Keep it, and pass --record <another file> for this one.
Chaque Studio a son propre enregistrement de déploiement. Conservez ce fichier et donnez-en un autre au second Studio avec --record. Sans enregistrement, update et remove ne peuvent pas s'exécuter ; indiquez le chemin du bon fichier.
Un Studio sur workers.dev affiche « Error 1027 »
La limite quotidienne de requêtes de l'offre gratuite a été atteinte. Elle est réinitialisée à minuit UTC.
Besoin d'aide supplémentaire ?
Écrivez-nous et une personne vous répondra, en général sous un jour ouvré. Ces informations nous aident à vous répondre en une seule fois :
- L'option de configuration que vous avez choisie et l'étape où vous en êtes.
- Une capture de l'écran, avec le message d'erreur éventuel en entier.
- Où votre Studio sera installé : un compte Cloudflare nouveau ou existant, ou le nom de votre hébergeur web.
- Votre version de Maxisnap : sous Windows, dans Paramètres, puis À propos ; sur Mac, dans le menu Maxisnap, puis About Maxisnap.
Merci de ne pas envoyer votre clé d'administration, une clé Cloudflare ni un mot de passe. Nous n'en avons pas besoin pour vous aider.
Autres guides de configuration
- Je n'ai pas de site web
Installez Studio dans un compte Cloudflare gratuit
- Mon entreprise utilise déjà Cloudflare
Ajoutez Studio au compte Cloudflare de votre entreprise
- J'ai un hébergement web
Installez Studio sur votre hébergement web
- Mon assistant IA le configurera
Laissez votre assistant IA configurer Studio
- J'ai déjà un Studio
Connectez Maxisnap à votre Studio