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.comoublog.example.com. Neste guia usamoswww.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.
- Entre no painel do Cloudflare em https://dash.cloudflare.com.
- No menu à esquerda, selecione R2 Object Storage.
- Selecione Create bucket.
- Digite um nome para o bucket. Use apenas letras minúsculas, números e hífens. Por exemplo:
www-example-com. - Para a classe de armazenamento, selecione Standard.
- 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.
- Vá à página de visão geral do R2 Object Storage.
- Selecione Manage API tokens.
- Selecione Create API token. Se o Cloudflare perguntar qual tipo de token você quer, selecione Account API token.
- Digite um nome para o token. Por exemplo:
Chinaski. - Em Permissions, selecione Object Read & Write.
- No escopo do bucket, selecione Apply to specific buckets only. Depois selecione o bucket que você criou no Passo 1.
- 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.
- Vá ao R2 Object Storage e abra seu bucket.
- Selecione a aba Settings.
- Encontre Custom Domains e selecione Add (ou Connect Domain).
- Digite o endereço do seu site. Por exemplo:
www.example.com. - 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 /.
No painel do Cloudflare, abra seu domínio (por exemplo,
example.com). Não abra o R2.No menu à esquerda, selecione Rules.
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
Digite um nome para a regra. Por exemplo:
Site index pages.Em If incoming requests match, selecione Custom filter expression.
Selecione Edit expression. Cole este texto. Substitua
www.example.compelo endereço do seu site:(http.host eq "www.example.com" and ends_with(http.request.uri.path, "/"))Em Then, encontre Path. Selecione Rewrite to e depois Dynamic. Cole este texto:
concat(http.request.uri.path, "index.html")Para Query, mantenha Preserve.
Selecione Deploy.
Passo 5: Configurar o Chinaski
Abra a área de admin do Chinaski.
Vá a Settings > General.
Em Site URL, digite o endereço completo do seu site. Inclua
https://. Não acrescente/no final. Por exemplo:https://www.example.comSalve.
Vá a Settings > Deploy.
Preencha estes campos:
Field What to enter Enable S3 deploy On Bucket O nome do seu bucket do Passo 1. Por exemplo: www-example-comEndpoint https://<ACCOUNT_ID>.r2.cloudflarestorage.com, substitua<ACCOUNT_ID>pelo seu Account ID do Passo 2Region autoAccess Key Seu Access Key ID do Passo 2 Secret Key Sua Secret Access Key do Passo 2 Deploy automatically after a successful build On 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
- 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.
- Publique uma página, ou edite uma página e salve.
- Espere o build e o upload terminarem. A mensagem de status no topo da área de admin mostra o progresso.
- 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:
- Seus arquivos estão em uma pasta. No Cloudflare, abra seu bucket e selecione a aba Objects. O arquivo
index.htmldeve 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. - 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.
- 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.
Os links do site apontam para o endereço errado
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.