Why, and How?

The other week, I wondered to myself: “What if I made a Mastodon instance that only supports IPv6?”.

IPv6 has been out in the world now for over 25 years, and yet as of the time of writing Google reports IPv6 adoption at only 42%. It’s improved in recent years, by a long shot, but ISPs and corporations have still been struggling with deploying it. There’s just something about the numbers being bigger and having letters in them that scares people away.

Rather than just let this be an idle curiosity, I had to go for it. For a total investment of $4, I purchased the domain IPv6.camp.

It ended up being a mostly uneventful Mastodon setup. Due to GitHub’s continuing lack of IPv6 support, I had to set up my GitLab instance to mirror the official GitHub repository daily and use it as the source for Mastodon instead. The situation was the same with rbenv Ruby Build.

To effectively disable IPv4, I did not give it an A record or any routes out to internet for IPv4. It has LAN v4 connectivity locally, but can’t use this to reach out to any instances.

Want to post exclusively in IPv6?

If, for some reason, you’d like to post on an IPv6-only instance, feel free to register on https://ipv6.camp.

If you’re not able to load it, it’s likely you don’t have working IPv6. You can try Hurricane Electric’s Tunnelbroker (https://tunnelbroker.net) as a workaround.

I’ll approve registrations as they come in and I get a chance to.

If you’d like to support this nonsense, I’m on Ko-fi at https://ko-fi.com/alyxw

Resources

If you’d like to run your own IPv6-only Mastodon instance, I’m running mirrors of dependencies that are hosted on GitHub. You can swap these in during the installation process instead of using the GitHub links. These update hourly.

What Went Wrong?

This section is something of a “living document”, and things will be added as I encounter more broken things.

Mastodon 4.2.8

This one isn’t so much an issue with IPv6.

Starting with Mastodon 4.2.8, the default behavior changed to disable the prior default of open registration. I deployed IPv6.camp shortly after the release of 4.2.8, and ran into an issue where the account created by the interactive setup wizard is not automatically “approved”. This behavior leaves the user with no usable administrator account out of the box, and requires looking through the documentation for tootctl. This may be a roadblock to users who are new to hosting Mastodon instances.

I created this issue on GitHub to track it: https://github.com/mastodon/mastodon/issues/29394

Jortage

Jortage (https://jortage.com/) is a popular media-hosting solution for Mastodon. It centralizes the storage for Mastodon media, so multiple instances can share the costs of a storage pool.

Jortage, as of 2024/02/25, does not support IPv6. IPv6-only instances will be unable to fetch media for instances that use Jortage.

Federation

There’s a decent amount of instances out there that appear to support IPv6, but don’t. Some may be using Cloudflare to handle inbound traffic, and while Cloudflare provides IPv6 connectivity for inbound traffic, the instance will be unable to return anything to IPv6 instances. This can lead to broken federation.

Wasabi

added 2024/02/26

Wasabi (https://wasabi.com/) is an S3-compatible storage provider. As of 2024/02/26, their endpoint s3.wasabisys.com does not have an AAAA record pointing to it.

IPv6-only instances are unable to fetch media from Wasabi.

Large Instances

A number of large instances including Mastodon.social do not support IPv6.