Feito com Chinaski

Publique seu site com o Cloudflare R2

O Chinaski pode publicar seu site no Cloudflare R2. O R2 é um serviço de armazenamento de arquivos do Cloudflare. Seus visitantes carregam o site a partir do Cloudflare, não a partir do computador onde o Chinaski roda. Isso significa que o computador onde o Chinaski roda não precisa estar online para o seu site funcionar.

Cada vez que você publica, o Chinaski constrói seu site e envia os arquivos para o R2.

Este guia leva de 20 a 30 minutos.

Antes de começar

Você precisa de:

  • Chinaski, instalado e em execução. Você deve conseguir abrir a área de admin.
  • Uma conta no Cloudflare. Uma conta gratuita é suficiente.
  • Um nome de domínio, adicionado à sua conta do Cloudflare. Por exemplo, example.com.
  • O endereço web que você quer usar para o seu site. Por exemplo, www.example.com ou blog.example.com. Neste guia usamos www.example.com.

Importante: Use um bucket do R2 separado para cada site. Quando o Chinaski publica, ele faz o bucket corresponder exatamente ao seu site. Ele apaga todos os outros arquivos do bucket. Não guarde outros arquivos neste bucket.

Passo 1: Criar um bucket

Um bucket é um espaço de armazenamento para os arquivos do seu site.

  1. Entre no painel do Cloudflare em https://dash.cloudflare.com.
  2. No menu à esquerda, selecione R2 Object Storage.
  3. Selecione Create bucket.
  4. Digite um nome para o bucket. Use apenas letras minúsculas, números e hífens. Por exemplo: www-example-com.
  5. Para a classe de armazenamento, selecione Standard.
  6. Selecione Create bucket.

Anote o nome do bucket. Você vai precisar dele no Passo 5.

Passo 2: Criar as chaves de acesso

O Chinaski precisa de chaves para enviar arquivos ao seu bucket.

  1. Vá à página de visão geral do R2 Object Storage.
  2. Selecione Manage API tokens.
  3. Selecione Create API token. Se o Cloudflare perguntar qual tipo de token você quer, selecione Account API token.
  4. Digite um nome para o token. Por exemplo: Chinaski.
  5. Em Permissions, selecione Object Read & Write.
  6. No escopo do bucket, selecione Apply to specific buckets only. Depois selecione o bucket que você criou no Passo 1.
  7. Selecione Create API token.

O Cloudflare agora mostra suas chaves. Copie esses dois valores e guarde-os em um lugar seguro:

  • Access Key ID
  • Secret Access Key

Importante: O Cloudflare mostra a Secret Access Key apenas uma vez. Se você a perder, apague o token e crie um novo.

Você também precisa do seu Account ID. Você o encontra na página de visão geral do R2. É um código longo de letras e números.

Passo 3: Conectar seu domínio ao bucket

Este passo torna seu site público no seu próprio endereço web.

  1. Vá ao R2 Object Storage e abra seu bucket.
  2. Selecione a aba Settings.
  3. Encontre Custom Domains e selecione Add (ou Connect Domain).
  4. Digite o endereço do seu site. Por exemplo: www.example.com.
  5. Siga os passos na tela para confirmar.

O Cloudflare cria o registro DNS para você. Você não precisa mudar seus registros DNS.

Depois de alguns minutos, o status muda para Active. O bucket agora está público nesse endereço. Você não precisa mudar nenhuma outra configuração de acesso público.

Nota: Você também pode ver uma configuração chamada Public Development URL (r2.dev). Esse endereço é só para testes. Não o use para o seu site real. Deixe-o desligado.

Passo 4: Adicionar uma URL Rewrite Rule

As páginas do seu site são salvas como arquivos chamados index.html. Por exemplo, a página www.example.com/about/ é salva como about/index.html.

O R2 não encontra esses arquivos automaticamente. Sem essa regra, os visitantes veem um erro em todas as páginas. A regra acrescenta index.html a todo endereço que termina em /.

  1. No painel do Cloudflare, abra seu domínio (por exemplo, example.com). Não abra o R2.

  2. No menu à esquerda, selecione Rules.

  3. Crie uma nova URL Rewrite Rule. Dependendo do seu painel, selecione uma destas opções:

    • Rules > Overview > Create rule > URL Rewrite Rule
    • Rules > Transform Rules > Rewrite URL > Create rule
  4. Digite um nome para a regra. Por exemplo: Site index pages.

  5. Em If incoming requests match, selecione Custom filter expression.

  6. Selecione Edit expression. Cole este texto. Substitua www.example.com pelo endereço do seu site:

    (http.host eq "www.example.com" and ends_with(http.request.uri.path, "/"))
  7. Em Then, encontre Path. Selecione Rewrite to e depois Dynamic. Cole este texto:

    concat(http.request.uri.path, "index.html")
  8. Para Query, mantenha Preserve.

  9. Selecione Deploy.

Passo 5: Configurar o Chinaski

  1. Abra a área de admin do Chinaski.

  2. Vá a Settings > General.

  3. Em Site URL, digite o endereço completo do seu site. Inclua https://. Não acrescente / no final. Por exemplo: https://www.example.com

  4. Salve.

  5. Vá a Settings > Deploy.

  6. Preencha estes campos:

    Field What to enter
    Enable S3 deploy On
    Bucket O nome do seu bucket do Passo 1. Por exemplo: www-example-com
    Endpoint https://<ACCOUNT_ID>.r2.cloudflarestorage.com, substitua <ACCOUNT_ID> pelo seu Account ID do Passo 2
    Region auto
    Access Key Seu Access Key ID do Passo 2
    Secret Key Sua Secret Access Key do Passo 2
    Deploy automatically after a successful build On
  7. Selecione Save Deploy Settings.

Importante: O Endpoint deve terminar em .r2.cloudflarestorage.com. Não acrescente o nome do seu bucket no final.

O Cloudflare às vezes mostra o endereço com o nome do bucket no final, assim: https://<ACCOUNT_ID>.r2.cloudflarestorage.com/<BUCKET_NAME>

Se você copiar esse endereço, remova a última / e o nome do bucket. Se não fizer isso, o Chinaski coloca seu site em uma pasta dentro do bucket e os visitantes veem um erro em todas as páginas.

Passo 6: Testar e publicar

  1. Na página Settings > Deploy, selecione Test S3 Connection. Você deve ver uma mensagem de sucesso. Se vir um erro, confira de novo o Bucket, o Endpoint e as chaves.
  2. Publique uma página, ou edite uma página e salve.
  3. Espere o build e o upload terminarem. A mensagem de status no topo da área de admin mostra o progresso.
  4. Abra seu site em um navegador. Por exemplo: https://www.example.com/

Confira estes endereços:

  • Sua página inicial: https://www.example.com/
  • Uma página dentro do site. Por exemplo: https://www.example.com/about/
  • O sitemap: https://www.example.com/sitemap.xml

Se todos abrirem, seu site está publicado.

De agora em diante, o Chinaski envia suas mudanças toda vez que você publica. Se um upload falha, a versão anterior do seu site continua online. Resolva o problema e publique de novo.

Solução de problemas

Todas as páginas mostram "Error 404" e "Is this your bucket?"

Essa mensagem vem do R2. Significa que seu domínio funciona, mas o R2 não encontra o arquivo.

Confira o seguinte:

  1. Seus arquivos estão em uma pasta. No Cloudflare, abra seu bucket e selecione a aba Objects. O arquivo index.html deve estar no nível de cima, não dentro de uma pasta. Se seus arquivos estão dentro de uma pasta com o nome do seu bucket, o seu Endpoint tem o nome do bucket no final. Corrija (veja o Passo 5) e publique de novo. O Chinaski remove a pasta antiga automaticamente.
  2. O domínio está conectado a um bucket diferente. Abra o bucket que contém seus arquivos. Selecione Settings e confira se o endereço do seu site está listado em Custom Domains.
  3. O bucket está vazio. Confira se Enable S3 deploy e Deploy automatically after a successful build estão ambos ligados. Depois publique de novo.

A página inicial funciona, mas as outras páginas mostram um erro

Falta a URL rewrite rule ou ela está incorreta. Confira o Passo 4. Certifique-se de que a regra está ligada e de que o endereço na regra é exatamente o mesmo do seu site.

Páginas que terminam em index.html mostram um erro, mas só depois de adicionar a regra

O filtro da regra é largo demais. Ele deve valer apenas para endereços que terminam em /. Confira a expressão do Passo 4, instrução 6.

"Test S3 Connection" falha

  • Confira se o Endpoint é exatamente https://<ACCOUNT_ID>.r2.cloudflarestorage.com, com o seu próprio Account ID.
  • Confira se o nome do Bucket está correto. Ele não pode conter /.
  • Confira se você copiou as duas chaves por completo.
  • Confira se o token de API tem permissão Object Read & Write para este bucket.

Confira o Site URL em Settings > General. Ele deve ser o seu endereço público, por exemplo https://www.example.com. Depois publique de novo.

Limites

  • Formulários e downloads de documentos: seu site é servido apenas pelo R2, então o R2 não consegue enviar as respostas dos formulários ao Chinaski. Se o computador onde o Chinaski roda não puder ser alcançado pela internet, os formulários de contato e os downloads de documentos protegidos não funcionam.
  • Custos: o Cloudflare R2 tem um nível gratuito. Até o momento em que isto foi escrito, ele inclui 10 GB de armazenamento por mês, 1 milhão de operações de upload e 10 milhões de operações de leitura por mês. O Cloudflare não cobra pelos dados enviados aos seus visitantes. Se você usar mais que isso, o Cloudflare cobra. Confira os preços atuais na página de preços do Cloudflare R2. O nível gratuito vale apenas para o armazenamento Standard.
Leia este site em