Todavía tengo este problema. Investigué un poco el código y, como esperaba, https://avatars.discourse-cdn.com/#{params[:version]}/letter/#{params[:letter]}/#{params[:color]}/#{params[:size]}.png es lo que el código está solicitando en realidad. Dentro del contenedor de Discourse, puedo descargar el archivo directamente con wget y obtener un PNG válido. Por ejemplo: https://avatars.discourse-cdn.com/v4/letter/b/bcef8e/48.png → https://forum.pkp.sfu.ca/48.png
En production.log, se muestra que la imagen se descargó correctamente, supuestamente:
Started GET "/presence/get?channels%5B%5D=%2Fdiscourse-presence%2Freply%2F88689&channels%5B%5D=%2Fdiscourse-presence%2Fwhisper%2F88689" for 172.17.1.79 at 2024-07-09 19:59:01 +0000
Processing by PresenceController#get as JSON
Parameters: {"channels"=>["/discourse-presence/reply/88689", "/discourse-presence/whisper/88689"]}
Processing by UserAvatarsController#show_proxy_letter as PNG
Parameters: {"version"=>"v4", "letter"=>"b", "color"=>"bcef8e", "size"=>"48"}
Completed 200 OK in 14ms (Views: 0.5ms | ActiveRecord: 0.0ms | Allocations: 3095)
Completed 418 in 9ms (Views: 0.4ms | ActiveRecord: 0.0ms | Allocations: 1680)
Así que, por alguna razón, sigo obteniendo una imagen en blanco. Quizás no esté usando HTTP_PROXY o HTTPS_PROXY o algo así.
En site_settings.yml, dice que la URL predeterminada de letter_avatar_proxy es: " /letter_avatar_proxy/v4/letter/{first_letter}/{color}/{size}.png" y cuando hago clic derecho en una de las imágenes para obtener la URL, es (correctamente?) https://forum.pkp.sfu.ca/letter_avatar_proxy/v4/letter/b/bcef8e/48.png