Publica tu sitio con Cloudflare R2
Chinaski puede publicar tu sitio web en Cloudflare R2. R2 es un servicio de almacenamiento de archivos de Cloudflare. Tus visitantes cargan el sitio desde Cloudflare, no desde la computadora donde corre Chinaski. Esto significa que la computadora donde corre Chinaski no necesita estar en línea para que tu sitio funcione.
Cada vez que publicas, Chinaski construye tu sitio y sube los archivos a R2.
Esta guía toma entre 20 y 30 minutos.
Antes de empezar
Necesitas:
- Chinaski, instalado y en ejecución. Debes poder abrir el área de admin.
- Una cuenta de Cloudflare. Una cuenta gratuita es suficiente.
- Un nombre de dominio, agregado a tu cuenta de Cloudflare. Por ejemplo,
example.com. - La dirección web que quieres usar para tu sitio. Por ejemplo,
www.example.comoblog.example.com. En esta guía usamoswww.example.com.
Importante: Usa un bucket de R2 separado para cada sitio web. Cuando Chinaski publica, hace que el bucket coincida exactamente con tu sitio. Borra todos los demás archivos del bucket. No guardes otros archivos en este bucket.
Paso 1: Crear un bucket
Un bucket es un espacio de almacenamiento para los archivos de tu sitio.
- Inicia sesión en el panel de Cloudflare en https://dash.cloudflare.com.
- En el menú de la izquierda, selecciona R2 Object Storage.
- Selecciona Create bucket.
- Escribe un nombre para el bucket. Usa solo letras minúsculas, números y guiones. Por ejemplo:
www-example-com. - Para la clase de almacenamiento, selecciona Standard.
- Selecciona Create bucket.
Anota el nombre del bucket. Lo necesitas en el Paso 5.
Paso 2: Crear las llaves de acceso
Chinaski necesita llaves para subir archivos a tu bucket.
- Ve a la página de resumen de R2 Object Storage.
- Selecciona Manage API tokens.
- Selecciona Create API token. Si Cloudflare pregunta qué tipo de token quieres, selecciona Account API token.
- Escribe un nombre para el token. Por ejemplo:
Chinaski. - Bajo Permissions, selecciona Object Read & Write.
- Bajo el alcance del bucket, selecciona Apply to specific buckets only. Luego selecciona el bucket que creaste en el Paso 1.
- Selecciona Create API token.
Cloudflare ahora muestra tus llaves. Copia estos dos valores y guárdalos en un lugar seguro:
- Access Key ID
- Secret Access Key
Importante: Cloudflare muestra la Secret Access Key una sola vez. Si la pierdes, borra el token y crea uno nuevo.
También necesitas tu Account ID. Lo encuentras en la página de resumen de R2. Es un código largo de letras y números.
Paso 3: Conectar tu dominio al bucket
Este paso hace que tu sitio sea público en tu propia dirección web.
- Ve a R2 Object Storage y abre tu bucket.
- Selecciona la pestaña Settings.
- Busca Custom Domains y selecciona Add (o Connect Domain).
- Escribe la dirección de tu sitio. Por ejemplo:
www.example.com. - Sigue los pasos en pantalla para confirmar.
Cloudflare crea el registro DNS por ti. No necesitas cambiar tus registros DNS tú mismo.
Después de unos minutos, el estado cambia a Active. El bucket ahora es público en esa dirección. No necesitas cambiar ningún otro ajuste de acceso público.
Nota: También puede que veas un ajuste llamado Public Development URL (
r2.dev). Esa dirección es solo para pruebas. No la uses para tu sitio real. Déjala apagada.
Paso 4: Agregar una regla de reescritura de URL
Las páginas de tu sitio se guardan como archivos llamados index.html. Por ejemplo, la página www.example.com/about/ se guarda como about/index.html.
R2 no encuentra estos archivos automáticamente. Sin esta regla, los visitantes ven un error en cada página. La regla agrega index.html a cada dirección que termina en /.
En el panel de Cloudflare, abre tu dominio (por ejemplo,
example.com). No abras R2.En el menú de la izquierda, selecciona Rules.
Crea una nueva URL Rewrite Rule. Según tu panel, selecciona una de estas opciones:
- Rules > Overview > Create rule > URL Rewrite Rule
- Rules > Transform Rules > Rewrite URL > Create rule
Escribe un nombre para la regla. Por ejemplo:
Site index pages.Bajo If incoming requests match, selecciona Custom filter expression.
Selecciona Edit expression. Pega este texto. Reemplaza
www.example.compor la dirección de tu sitio:(http.host eq "www.example.com" and ends_with(http.request.uri.path, "/"))Bajo Then, busca Path. Selecciona Rewrite to y luego Dynamic. Pega este texto:
concat(http.request.uri.path, "index.html")Para Query, deja Preserve.
Selecciona Deploy.
Paso 5: Configurar Chinaski
Abre el área de admin de Chinaski.
Ve a Settings > General.
En Site URL, escribe la dirección completa de tu sitio. Incluye
https://. No agregues/al final. Por ejemplo:https://www.example.comGuarda.
Ve a Settings > Deploy.
Llena estos campos:
Field What to enter Enable S3 deploy On Bucket El nombre de tu bucket del Paso 1. Por ejemplo: www-example-comEndpoint https://<ACCOUNT_ID>.r2.cloudflarestorage.com, reemplaza<ACCOUNT_ID>por tu Account ID del Paso 2Region autoAccess Key Tu Access Key ID del Paso 2 Secret Key Tu Secret Access Key del Paso 2 Deploy automatically after a successful build On Selecciona Save Deploy Settings.
Importante: El Endpoint debe terminar en
.r2.cloudflarestorage.com. No agregues el nombre de tu bucket al final.Cloudflare a veces muestra la dirección con el nombre del bucket al final, así:
https://<ACCOUNT_ID>.r2.cloudflarestorage.com/<BUCKET_NAME>Si copias esa dirección, quita la última
/y el nombre del bucket. Si no lo haces, Chinaski pone tu sitio en una carpeta dentro del bucket y los visitantes ven un error en cada página.
Paso 6: Probar y publicar
- En la página Settings > Deploy, selecciona Test S3 Connection. Deberías ver un mensaje de éxito. Si ves un error, revisa otra vez el Bucket, el Endpoint y las llaves.
- Publica una página, o edita una página y guárdala.
- Espera a que terminen el build y la subida. El mensaje de estado en la parte superior del área de admin muestra el progreso.
- Abre tu sitio en un navegador. Por ejemplo:
https://www.example.com/
Revisa estas direcciones:
- Tu página de inicio:
https://www.example.com/ - Una página dentro del sitio. Por ejemplo:
https://www.example.com/about/ - El sitemap:
https://www.example.com/sitemap.xml
Si todas cargan, tu sitio está publicado.
De ahora en adelante, Chinaski sube tus cambios cada vez que publicas. Si una subida falla, la versión anterior de tu sitio sigue en línea. Corrige el problema y publica de nuevo.
Solución de problemas
Todas las páginas muestran "Error 404" y "Is this your bucket?"
Este mensaje viene de R2. Significa que tu dominio funciona, pero R2 no encuentra el archivo.
Revisa esto:
- Tus archivos están en una carpeta. En Cloudflare, abre tu bucket y selecciona la pestaña Objects. El archivo
index.htmldebe estar en el nivel superior, no dentro de una carpeta. Si tus archivos están dentro de una carpeta con el nombre de tu bucket, tu Endpoint tiene el nombre del bucket al final. Corrígelo (ver el Paso 5) y publica de nuevo. Chinaski elimina la carpeta vieja automáticamente. - El dominio está conectado a un bucket diferente. Abre el bucket que contiene tus archivos. Selecciona Settings y verifica que la dirección de tu sitio aparezca bajo Custom Domains.
- El bucket está vacío. Verifica que Enable S3 deploy y Deploy automatically after a successful build estén activados. Luego publica de nuevo.
La página de inicio funciona, pero las demás páginas muestran un error
Falta la regla de reescritura de URL o está mal escrita. Revisa el Paso 4. Asegúrate de que la regla esté activada y de que la dirección en la regla sea exactamente la misma que la dirección de tu sitio.
Las páginas que terminan en index.html muestran un error, pero solo después de agregar la regla
El filtro de la regla es demasiado amplio. Debe aplicar solo a las direcciones que terminan en /. Revisa la expresión del Paso 4, instrucción 6.
"Test S3 Connection" falla
- Verifica que el Endpoint sea exactamente
https://<ACCOUNT_ID>.r2.cloudflarestorage.com, con tu propio Account ID. - Verifica que el nombre del Bucket sea correcto. No debe contener
/. - Verifica que copiaste ambas llaves completas.
- Verifica que el token de API tenga permiso Object Read & Write para este bucket.
Los enlaces del sitio apuntan a una dirección equivocada
Revisa Site URL en Settings > General. Debe ser tu dirección pública, por ejemplo https://www.example.com. Luego publica de nuevo.
Límites
- Formularios y descargas de documentos: tu sitio se sirve solo desde R2, así que R2 no puede enviar los envíos de formularios a Chinaski. Si la computadora donde corre Chinaski no es alcanzable desde internet, los formularios de contacto y las descargas de documentos protegidos no funcionan.
- Costos: Cloudflare R2 tiene un nivel gratuito. Al momento de escribir esto, incluye 10 GB de almacenamiento por mes, 1 millón de operaciones de subida y 10 millones de operaciones de lectura por mes. Cloudflare no cobra por los datos enviados a tus visitantes. Si usas más que esto, Cloudflare te cobra. Revisa los precios actuales en la página de precios de Cloudflare R2. El nivel gratuito aplica solo al almacenamiento Standard.