Перейти к основному содержимому
Руководства по настройке Studio Я веб-разработчик

Настройка Studio для веб-разработчиков

В пакет Studio входят полный исходный код обоих вариантов, инструмент развёртывания для Cloudflare и технические документы. Это руководство — краткая версия для тех, кто предпочитает выполнять каждый шаг самостоятельно.

Лучше всего подходит для
Веб-разработчиков и ИТ-команд, которые предпочитают установить Studio самостоятельно из исходного кода в пакете Studio.
Что понадобится
Пакет Studio; для варианта на PHP — хостинг на Apache, LiteSpeed или nginx с PHP 8.0 или новее; для варианта на Cloudflare — аккаунт Cloudflare с включённым R2 и Node.js 20 или новее.
Варианты
Два варианта одного приложения с одинаковыми URL-адресами, API загрузки, панелью управления и ролями: PHP-приложение без базы данных и Cloudflare Worker на базе R2 и D1.

Скачайте пакет Studio

Войдите в Maxisnap, используя аккаунт, у которого есть Studio, затем:

  • В Windows: в Maxisnap откройте Настройки → Аккаунт → Мастер настройки Studio, нажмите «Начать работу», затем «Скачать панель управления». Maxisnap сохраняет ZIP-архив Studio в папку «Загрузки» и открывает эту папку.
  • На Mac: в Maxisnap откройте Settings → Welcome & Help → Studio Setup Guide, нажмите «Get Started», затем «Download Dashboard». Maxisnap сохраняет ZIP-архив Studio в папку «Загрузки».

Распакуйте 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 в пакете Studio.

Вариант на PHP: загрузка и завершение настройки

  1. Загрузите папку snaps в корневую папку сайта вместе со скрытыми файлами .htaccess, чтобы получился путь public_html/snaps/index.php. Архив snaps.zip с вашим оформлением, созданный на странице Start Here, работает так же: распакуйте его на месте и не допускайте вложенности 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

  • Maxisnap для Windows: откройте Настройки → Аккаунт → Мастер настройки Studio, нажмите «Начать работу», затем нажимайте «Далее», пока не дойдёте до шага 4 — «Подключите Maxisnap». Вставьте адрес вашего Studio и ключ, нажмите «Проверить подключение», затем «Далее», а на последней странице — «Завершить и сохранить». Подойдёт ключ администратора, полученный при настройке, а также код загрузки из раздела People & access в вашей панели управления.
  • Maxisnap для Mac: откройте Settings → Welcome & Help → Studio Setup Guide и выберите «I already have a dashboard». Вставьте адрес вашего Studio и ключ, нажмите «Test Connection», затем «Next», затем «Finish & Save».

Узнайте об API загрузки

  • Приложения Maxisnap отправляют загрузки на api/upload.php с заголовком X-Dashboard-Key. Принимаются изображения (PNG, JPG, GIF и WebP) и видео (MP4, WebM и MOV).
  • Maxisnap для Windows и Maxisnap для Mac отправляют каждую загрузку в Studio на Cloudflare одним запросом, а Studio принимает такие запросы для файлов размером до 25 МБ.
  • В варианте на 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 или HTML вместо JSON

Адрес или папка указаны неверно, хостинг игнорирует правила .htaccess от Studio (nginx или Apache без перезаписи URL) либо вместо 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 задаётся параметром max_upload_mb в your-settings.php.

В Cloudflare один запрос может содержать до 25 МБ; для больших файлов нужен API загрузки по частям.

Каждая страница Studio на Cloudflare возвращает 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, добавить --subdomain для аккаунта без имени workers.dev или изменить --name, --zone либо --hostname, если имя недопустимо, занято или находится вне домена. Затем снова запустите план. Занятые имена хранилищ и баз данных заменяются следующим свободным именем без блокера.

CLI отклоняет deployment.json

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

У каждого Studio своя запись развёртывания. Сохраните этот файл, а для второго Studio укажите другой файл с помощью --record. Без записи команды update и remove выполнить нельзя; передайте путь к нужному файлу.

Studio на workers.dev показывает «Error 1027»

Достигнут суточный лимит запросов бесплатного тарифа. Он сбрасывается в полночь по UTC.

Нужна дополнительная помощь?

Напишите нам, и вам ответит человек, обычно в течение одного рабочего дня. Эти сведения помогут нам ответить с первого раза:

  • Выбранный вами вариант настройки и шаг, на котором вы находитесь.
  • Скриншот экрана, на котором целиком видно любое сообщение об ошибке.
  • Где будет работать ваш Studio: новый или существующий аккаунт Cloudflare либо название вашего хостинг-провайдера.
  • Ваша версия Maxisnap: в Windows — Настройки, затем О программе; на Mac — Maxisnap, затем About Maxisnap.

Пожалуйста, не присылайте ключ администратора, ключ Cloudflare или пароль. Они не нужны нам, чтобы вам помочь.

Другие руководства по настройке