I’m self-hosting a Discourse instance and just switched to an internationalized domain name (non-Latin characters). Wanted to share a couple items that made this bumpier than needed:
First: ask.discourse.com incorrectly told me to use the Unicode version of the name in app.yml, but this caused Let’s Encrypt to need the idn package installed in the container, and then resulted in a redirect loop since my browser requested the Punycode version of the name and Discourse kept redirecting to the Unicode.
Then, more minor, but more visible after things are working: Discourse ID prints out the Punycode version of the name on screen in its announcement that it’s going to redirect. It would be more reassuring to users not to have that happen.