¡Vaya, vale! Esto probablemente sea la prueba definitiva y apunta a un problema diferente.
avatar_proxy en los registros suele significar que Discourse se niega a servir la imagen directamente desde el CDN R2 de Cloudflare. En su lugar, Discourse intercepta agresivamente la solicitud, descarga la imagen desde R2 a la carpeta /tmp del servidor local y luego usa Ruby para servirla al navegador. Así que creo que esto está evitando por completo el CDN y explica el retraso de 3 segundos: sospecho que el servidor está obteniendo y cargando el archivo manualmente en cada solicitud ![]()
Discourse utiliza avatar_proxy en algunos escenarios muy específicos y, por lo general, es una configuración de privacidad o seguridad que obliga al servidor a enmascarar la URL externa.
Verifica estas configuraciones en Administración > Configuración del sitio:
Busca external system avatars url (URL de avatares de sistemas externos). Si hay algo en ese cuadro (como /letter_avatar_proxy/v4/...), bórralo para que quede vacío. Eso debería evitar que Discourse proxye los avatares predeterminados de letras. También vale la pena verificar uploaded avatars allowed groups (grupos permitidos para avatares cargados) y asegurarse de que diga TL_0.
Tal vez verifiquen también DISCOURSE_S3_CDN_URL para asegurarse de que sea correcta, sin una barra al final ni errores tipográficos.
Reasignar avatares personalizados:
Parece probable que tu base de datos aún contenga las URL crudas del bucket R2 en lugar de tu nueva URL de CDN; como no coinciden, tu foro probablemente las está proxyando por razones de seguridad.
Verifica en la consola de Rails para ver exactamente con qué está luchando Discourse:
./launcher enter app
rails c
Elige un nombre de usuario con un avatar de carga lenta.
u = User.find_by_username("el_nombre_de_usuario_seleccionado")
u.user_avatar.custom_upload.url
Si la salida devuelve una URL cruda del bucket, tus reasignaciones anteriores no capturaron todo (quizás se haya pasado por alto un subdominio o un esquema).
Para solucionarlo, inicia sesión por SSH en tu servidor, vuelve a tu contenedor nuevamente (no a rails) (./launcher enter app) y ejecuta la herramienta de reasignación (de nuevo, jaja) para cambiar la URL cruda por tu URL de CDN:
discourse remap "https://<tu-url-cruda-de-cloudflare>.r2.cloudflarestorage.com" "https://cdn.tu-dominio.com"
Luego ejecútala una segunda vez usando // en lugar de https:// por si acaso.
Por cierto, solo por curiosidad, ¿qué servicio de hosting estás utilizando? Tengo una configuración general similar a la tuya y aún no he experimentado este problema. Así que también estoy interesado en tu configuración y quiero intentar reproducirlo de alguna manera.