Jacob Kaplan-Moss

Today I Learned…

Setting up a personal Fediverse ID / Mastodon instance

Elon buying Twitter kicked me towards finally setting up a Fediverse presence, something I’ve been meaning on doing for a while.

It was important for me to do this in a way that maintains control over my own identity. The easy way would have been to create an account on mastodon.social, or one of the private Mastodon instances that friends of mine host. But if I did that, it wouldn’t be fixing the main problem with Twitter: that I don’t own my own identity. In other words, it was important to me that I be @[email protected], not @[email protected].

I also very much didn’t want to operate a server. I experimented with a few of them – even got about 80% of the way toward a working Django implementation – but ultimately my desire to fuck with computers on the weekend is almost nil. I wanted to pay someone else to do the hosting.

This turned out to be significantly easier than I had thought. I signed up for masto.host, a paid Mastodon service (on the cheapest plan, $6/mo). I set up my instance as social.jacobian.org, which involved setting up a CNAME to, easy. There was some simple initial configuration of the Mastodon server – I did things like turn off public signup, tweak some of the privacy settings, and (of course) enable 2FA on my admin account. Pretty simple, took about 15 minutes from putting in my credit card to having a functioning server.

That page only describes host-meta, but elsewhere I saw references to a couple of other routes: /.well-known/webfinger and /.well-known/nodeinfo. Initially I only redirected host-meta, and it seemed to work fine, but eventually I added the other two routes as well. I’m not sure if this was necessary, but it seemed like a good idea.

I’m on Cloudflare Pages, so involved adding three lines to my redirect rules file (_redirects):

/.well-known/host-meta* https://social.jacobian.org/.well-known/host-meta:splat 301
/.well-known/webfinger* https://social.jacobian.org/.well-known/webfinger:splat 301
/.well-known/nodeinfo* https://social.jacobian.org/.well-known/nodeinfo:splat 301

Finally, masto.host needs to do some config on the backend. I sent them an email, and they’d made the changes within an hour.

So yeah, I’m on the Fediverse now. Follow me: @[email protected] / https://social.jacobian.org/@jacob.

Other implementations

Andrew did the same thing on a Django site.

Next steps: syncing Twitter and Mastodon

The next step for me was setting up bidirectional sync to publish content in both places. Here’s how I did that.