Hola a todos,
Quería compartir mi experiencia y los pasos sobre cómo configuré con éxito Cloudflare R2 tanto para cargas como para copias de seguridad en mi foro de Discourse. Espero que esto ayude a otros que buscan usar Cloudflare R2 con Discourse.
Resumen de la configuración:
- Plataforma: Discourse (instalación de Bitnami)
- Bucket: Cloudflare R2
- Dominio personalizado: Configurado para servir archivos públicamente
- Configuración: Realizada completamente a través de la configuración del sitio de Discourse (no se tocaron variables de entorno)
Guía paso a paso:
- Crear un bucket de Cloudflare R2:
- Inicia sesión en tu cuenta de Cloudflare y navega a Almacenamiento R2.
- Crea un nuevo bucket para las cargas de tu Discourse (por ejemplo,
forum-uploads). - Anota la URL de la API S3 del bucket, el ID de clave de acceso y la Clave de acceso secreta.
- Configurar dominio personalizado para CDN:
- Para servir el contenido de tu bucket R2 públicamente, crea un dominio personalizado en Cloudflare.
- Por ejemplo, usé
forumfiles.example.in. - Asegúrate de configurar los ajustes de DNS para que apunten al CNAME proporcionado por Cloudflare. Como tengo un dominio en Cloudflare, lo hizo por mí.
- Configurar los ajustes del sitio de Discourse:
- s3_bucket: El nombre de tu bucket R2 (por ejemplo,
forum-uploads). - s3_region: Establecer como Este de EE. UU. (N. Virginia). No había opción de automático.
- s3_endpoint: Usa la URL de la API S3 del bucket proporcionada por Cloudflare (por ejemplo,
https://<tu-id-único-de-bucket>.r2.cloudflarestorage.com). - s3_access_key_id: Tu ID de clave de acceso de R2.
- s3_secret_access_key: Tu Clave de acceso secreta de R2.
- s3_cdn_url: Tu dominio personalizado para CDN (por ejemplo,
https://forumfiles.example.in). - Asegúrate de que las casillas habilitar copias de seguridad s3 y habilitar cargas s3 estén marcadas.
- s3_bucket: El nombre de tu bucket R2 (por ejemplo,
- Ajustar permisos y CORS:
- Establece tu bucket R2 como privado y configura una política CORS:
[
{
"AllowedHeaders": ["*"],
"AllowedMethods": ["GET", "POST", "PUT", "HEAD"],
"AllowedOrigins": ["*"],
"ExposeHeaders": ["ETag"],
"MaxAgeSeconds": 3000
}
]
* Esto asegura que las cargas funcionen correctamente sin problemas de CORS.
- Probar la configuración:
- Sube un archivo o imagen de prueba a través de tu foro de Discourse para verificar que las cargas funcionen correctamente.
- Comprueba si los archivos son accesibles a través de tu dominio personalizado (por ejemplo,
https://forumfiles.example.in/original/1X/...). - Verifica las copias de seguridad, pude ejecutar copias de seguridad con éxito. Verifiqué en el bucket R2 y también aparece en la configuración del sitio.
Conclusión:
Siguiendo estos pasos, pude integrar Cloudflare R2 con Discourse sin problemas, gestionando tanto las cargas como las copias de seguridad de manera eficiente. Si tienes alguna pregunta o encuentras algún problema, ¡no dudes en preguntar!