Pular para o conteúdo principal
Guias de configuração do Studio Sou desenvolvedor web

Configuração do Studio para desenvolvedores web

O download do Studio contém o código-fonte completo das duas edições, uma ferramenta de implantação para a Cloudflare e os documentos técnicos. Este guia é a versão resumida para quem prefere executar cada passo por conta própria.

Melhor para
Desenvolvedores web e equipes de TI que preferem instalar o Studio por conta própria, a partir do código-fonte que vem no download do Studio.
O que você precisa
O download do Studio; para a edição PHP, uma hospedagem com Apache, LiteSpeed ou nginx e PHP 8.0 ou mais recente; para a edição Cloudflare, uma conta da Cloudflare com o R2 ativado e Node.js 20 ou mais recente.
Edições
Duas edições do mesmo app, com as mesmas URLs, a mesma API de envio, o mesmo painel e as mesmas funções: um app PHP sem banco de dados e um Worker da Cloudflare que usa R2 e D1.

Obtenha o download do Studio

Entre no Maxisnap com a conta que tem o Studio e então:

  • No Windows: no Maxisnap, abra Configurações → Conta → Assistente de configuração, clique em “Comece agora” e depois em “Baixar painel”. O Maxisnap salva o ZIP do Studio na sua pasta Downloads e abre essa pasta.
  • No Mac: no Maxisnap, abra Settings → Welcome & Help → Studio Setup Guide, clique em “Get Started” e depois em “Download Dashboard”. O Maxisnap salva o ZIP do Studio na sua pasta Downloads.

Extraia o ZIP. No Windows, clique nele com o botão direito e escolha “Extrair Tudo”. No Mac, clique duas vezes nele.

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

O Developer guide completo cobre a arquitetura, a API de envio, as chaves e as funções, o modelo de segurança e a solução de problemas. Ele é o arquivo docs/Developer guide.html do download.

Edição PHP: envio e conclusão da configuração

  1. Envie a pasta snaps para a raiz do site, incluindo os arquivos .htaccess ocultos dela, de modo que o resultado seja public_html/snaps/index.php. Um snaps.zip personalizado da página Start Here funciona do mesmo jeito: extraia-o no próprio local e não deixe snaps/snaps aninhado.
  2. Abra https://yourcompany.com/snaps/ uma vez. A página de configuração verifica o PHP e as permissões da pasta e sugere uma chave de administrador de 40 caracteres; a chave deve ter pelo menos 16. Copie-a e clique em “Create my dashboard”.
  3. No nginx, reproduza as regras de roteamento e de bloqueio de snaps/.htaccess. Mantenha uploads, data e branding privados.

A página de configuração grava o your-settings.php, que é mantido nas atualizações:

'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

Edição Cloudflare: implantação a partir de um terminal

A CLI incluída lê primeiro a conta, mostra um plano do que vai criar e do que não vai tocar e recusa nomes que já estão em uso. Se uma implantação parar no meio do caminho, executar o mesmo comando de novo continua de onde parou, sem criar nada em duplicidade.

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

A implantação mostra o endereço do Studio e a chave de administrador uma única vez e grava o deployment.json na pasta de onde é executada. Guarde esse arquivo: update e remove o usam.

Confira se funciona

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"

Depois, abra o endereço do Studio em um navegador e entre com a chave de administrador. 401 significa chave errada; 404 significa endereço ou pasta errados.

Conecte o Maxisnap

  • Maxisnap para Windows: abra Configurações → Conta → Assistente de configuração, clique em “Comece agora” e depois em “Avançar” até chegar à etapa 4, “Conectar o Maxisnap”. Cole o endereço e a chave do seu Studio, clique em “Testar conexão”, depois em “Avançar” e, na última página, em “Concluir e salvar”. Você pode usar a chave de administrador que a configuração mostrou ou um código de envio de People & access, no seu painel.
  • Maxisnap para Mac: abra Settings → Welcome & Help → Studio Setup Guide e escolha “I already have a dashboard”. Cole o endereço e a chave do seu Studio, clique em “Test Connection”, depois em “Next” e, por fim, em “Finish & Save”.

Conheça a API de envio

  • Os apps do Maxisnap enviam os arquivos para api/upload.php com um cabeçalho X-Dashboard-Key. São aceitas imagens (PNG, JPG, GIF e WebP) e vídeos (MP4, WebM e MOV).
  • O Maxisnap para Windows e o Maxisnap para Mac enviam cada arquivo a um Studio na Cloudflare em uma única solicitação, e ele aceita até 25 MB por arquivo.
  • A edição Cloudflare também tem uma API de envio em partes para arquivos maiores, descrita no Developer guide: api/upload/start, part e complete.
  • As páginas de compartilhamento e os arquivos de mídia delas usam estes caminhos; todos os outros caminhos são internos: /<slug> /<slug>.<ext>

Atualize ou remova depois

PHP: substitua apenas os arquivos listados em snaps/How to update.txt e depois limpe os caches da hospedagem e da CDN. As capturas, as pessoas, a marca e as configurações permanecem.

Cloudflare: execute estes comandos a partir da pasta cloudflare do pacote mais novo, com o deployment.json antigo copiado para dentro dela.

# 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

Leia o resumo técnico da Cloudflare: todos os recursos, permissões e chamadas de API.

Se algo der errado

A verificação de integridade retorna 401

{"error":"unauthorized"}

A chave está errada, desativada ou é mais curta do que o Studio aceita, ou a configuração ainda não foi concluída em uma hospedagem PHP. Envie-a no cabeçalho X-Dashboard-Key, nunca no endereço.

A verificação de integridade retorna 404 ou HTML em vez de JSON

O endereço ou a pasta não estão corretos, a hospedagem ignora as regras .htaccess do Studio (nginx, ou Apache sem reescrita), ou uma CDN ou camada de segurança responde no lugar do Studio. No nginx, reproduza as regras de roteamento e de bloqueio de snaps/.htaccess; o Developer guide as lista.

A verificação de integridade retorna 429

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

Depois de várias tentativas com chaves erradas, o Studio recusa novas tentativas da sua rede por 15 minutos. Aguarde e tente de novo com a chave certa.

Os envios retornam 403 em um domínio personalizado

Cloudflare Access, uma regra de WAF ou o Bot Fight Mode nesse nome de host bloqueia os envios feitos pelos aplicativos. Faça uma exceção para o nome de host do Studio; o resumo técnico traz a lista de verificação. Um código Viewer também recebe 403 nos envios: use a chave de administrador ou um código de envio.

Os envios retornam 413

No PHP, upload_max_filesize, post_max_size ou um limite da hospedagem ou da CDN está abaixo do tamanho do arquivo; o limite do próprio Studio é max_upload_mb em your-settings.php.

Na Cloudflare, uma solicitação pode levar até 25 MB; arquivos maiores precisam da API de envio em partes.

Todas as páginas de um Studio na Cloudflare retornam 503

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

Defina um segredo ADMIN_KEY mais longo, por exemplo com o comando update e --new-admin-key, ou com npx wrangler secret put ADMIN_KEY.

O plano para com uma linha “x”

Cada linha “x” é um bloqueio e diz o que fazer: ative o R2, adicione --subdomain para uma conta sem nome workers.dev ou altere --name, --zone ou --hostname quando um nome for inválido, já estiver em uso ou ficar fora do domínio. Depois, execute o plano de novo. Nomes de bucket e de banco de dados que já estão em uso recebem o próximo nome livre, sem gerar bloqueio.

A CLI recusa o deployment.json

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

Cada Studio tem o próprio registro. Guarde esse arquivo e dê ao segundo Studio outro registro com --record. Sem um registro, update e remove não podem ser executados; informe o caminho do arquivo certo.

Um Studio em workers.dev mostra “Error 1027”

O limite diário de solicitações do plano gratuito foi atingido. Ele é zerado à meia-noite UTC.

Ainda precisa de ajuda?

Envie um e-mail e uma pessoa vai responder, geralmente em até um dia útil. Estes detalhes nos ajudam a responder de uma só vez:

  • A opção de configuração que você escolheu e a etapa em que você está.
  • Uma captura da tela, com qualquer mensagem de erro por inteiro.
  • Onde o seu Studio vai ficar: uma conta da Cloudflare nova ou já existente, ou o nome da sua empresa de hospedagem web.
  • A sua versão do Maxisnap: no Windows, em Configurações e depois em Sobre; no Mac, em Maxisnap e depois em About Maxisnap.

Por favor, não envie a sua chave de administrador, uma chave da Cloudflare nem uma senha. Não precisamos delas para ajudar você.

Outros guias de configuração