Adding Support for Different Federation Domain from Web Content Domain

Hello write.as Developers!

I am evaluating the WriteFreely software platform for my organisation’s microblogging needs. One of the things I noticed was that when running a WriteFreely instance under blog.example.com, all user federation identities take the form of @user@blog.example.com. This is not ideal, as we would much prefer the more traditional, email-like @user@example.com naming scheme for federation identities.

Hence, is it possible to have a different domain/subdomain for federation identities, and for the web content server? We run a separate Mastodon instance at social.example.com, and Mastodon does support having such separate domains/subdomains. Mastodon distinguishes the differences via the LOCAL_DOMAIN (federation) versus WEB_DOMAIN (content service) configuration options.

Hence, at least when we are talking about Mastodon, one may configure their reverse-proxy at example.com to return an appropriate HTTP 301 redirect to the .well-known directory at social.example.com, which Mastodon would resolve seemlessly. This way with Mastodon a user may have a @user@example.com federation identity, even when the instance proper is hosted on social.example.com.

Further information about the above setup for Mastodon may be found in this link.

My question is, does WriteFreely currently support such a setup? Furthermore, would there be any conflict in running both a Mastodon and a WriteFreely instance with a federation domain at example.com? Thank you very much for your answers in advance.

Sincerely,

Nova

Hi Nova, thanks for bringing this up. WriteFreely doesn’t currently support this, but we’d be interested in supporting it in the future – if anyone wants to work on this, please feel free!

Even with the feature, I imagine there will be conflicts when running this next to Mastodon with the same feature. The problem is that all ActivityPub interactions will look to that primary example.com domain, and the reverse proxy won’t know whether an actor belongs to Mastodon or WriteFreely, so it won’t know which one to send requests to.

The best workaround in that case might be to keep Mastodon on the example.com domain and WF on its own subdomain, or an entirely different domain.

Not sure about whole fediverse approach, but it would be elegant to implement domain/subdomain scheme using DNS record SRV like Jabber/XMPP protocol does: username can be under @domain.tld even though actual server is running on subdomain like subdomain.domain.tld - when user tries to resolve username@domain.tld, DNS query is made to domain.tld SRV record:

_xmpp-server._tcp.domain.tld. 18000 IN SRV 0 5 5269 subdomain.domain.tld.

Syntax here is following:

_xmpp-server._tcp.domain.tld. TTL IN SRV priority weight port target

Not only XMPP uses this approach - CALDAV/CardDAV also use very similar records just they provide full path to corresponding URL in target.

Hello there, everyone. Thank you very much for the prompt response, and the discussion on possible implementation. I have decided to not pursue this matter any further, and simply remain content with having federation IDs of the form @user@blog.example.com. Thank you all very much for replying to me!

I’m still very new to the WriteFreely software platform, and I am learning new things about it every day. Cheers!