Ainda estou com este problema. Analisei um pouco o código e, como eu esperava, https://avatars.discourse-cdn.com/#{params[:version]}/letter/#{params[:letter]}/#{params[:color]}/#{params[:size]}.png é o que o código está realmente solicitando. Dentro do contêiner do Discourse, consigo baixar o arquivo diretamente com wget e obter um PNG válido. Por exemplo: https://avatars.discourse-cdn.com/v4/letter/b/bcef8e/48.png → https://forum.pkp.sfu.ca/48.png
No production.log, ele mostra que a imagem foi baixada com sucesso, supostamente:
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)
Portanto, por algum motivo, ainda estou recebendo uma imagem em branco. Talvez não esteja usando HTTP_PROXY ou HTTPS_PROXY ou algo assim.
Em site_settings.yml, diz que a URL padrão do letter_avatar_proxy é: " /letter_avatar_proxy/v4/letter/{first_letter}/{color}/{size}.png" e quando clico com o botão direito em uma das imagens para obter a URL, ela é (corretamente?) https://forum.pkp.sfu.ca/letter_avatar_proxy/v4/letter/b/bcef8e/48.png