Making yourself discoverable in the Fediverse on your own domain
Inspired by this blog post by
Maarten Balliauw, I also wanted to make my Mastodon account discoverable as @3xm@detfalskested.dk
in the Fediverse, although my user is @decibyte@social.data.coop
.
Maarten's idea is neat and simple: Download the webfinger file for your user from your actual host, and serve the same webfinger content from your own website.
There's a couple of things I thought could be improved, though:
- It has a catch-all "feature", which means that
@<anything>@yourdomain
will resolve to your actual Fediverse user. You might like this feature. I don't. - Downloading the webfinger file and serving it as a static file requires you to remember to keep it up to date and re-download it, in case there are any changes to it (I don't know how often it changes, if at all). I'd like it to be served from my actual Mastodon host.
I decided to try and achieve the same, purely by adding a few lines to my nginx configuration. I first tried using location
and proxy_pass
, but wasn't able to get it to work with the query string part of the webfinger URL. So I tried with an if
and a redirect in the location
instead, and I'm happy to see that it actually works.
In only 5 lines of nginx configuration, I'm able to make myself discoverable in the Fediverse by searching for my e-mail address:
location /.well-known/webfinger {
if ($query_string = "resource=acct:3xm@detfalskested.dk") {
return 301 https://social.data.coop/.well-known/webfinger?resource=acct:decibyte@social.data.coop;
}
}
In my case, it's important that this is added to the configuration for the detfalskested.dk
domain, not the www.
detfalskested.dk
domain, which is where I'm serving this blog from. But apart from that, it seems to be just working. Yay!