How-to Federated social media at home

BUT MOMMMMM


So there are a million ways to do this. Probably infinite. I will describe the one that I found.

It is made of:

You likely have all of those things laying around in your human nest if you look hard enough.

So as a “developer” I am going to have a hard time assembling a “guide” as one would expect. Whenever I try to I immediately realize the amount of information I would need to include would make it 10000 pages.

What I am going to do is talk about the pieces and share any gotchas I had.

WordPress:

This is the CMS for the Activity Pub universe you are building. It handles all media, users, posts, any and all objects you need WP has been known for 15 plus years to handle “well enough”.

It gives you native facilities, you can store your media, write your posts, manage your users. We bolt on to these to make this a “Fediverse Instance”

The reason I used WP is because if you look at the fediverse requirements, they demand a “dynamic stack” you simply cannot get away with something hard coded. You MUST use a DB for certain storages and things. Even if you had some wicked Agentic AI sitting on the server you are never going to get away from the DB requirement.

So whenever you need a dynamic web app, WP is a good place to start. Unless you went to Bootcamp and learned Node. I never did, so I stick to HTML/PHP/CSS/JS/BASH and things like that.

Is WP not in the spirit of something like the Fediverse? Its openness and contributors spirts.

INSTALLING WP

Installing WP can be done many ways. You must in this case install it in a way where you have ROOT ACCESS to config files. Now I say this and realize it is not really a “this will not work without it” but because you are on the edge of WP, essentially using it for its web stack capabilities, it makes sense to be able to change things about it at the server level.

I prefer to use WP-CLI to do the install, then I proceeded to make the DB user/table manually as I have done for years.

Installing WordPress is covered MANY times on the internet. It is really about finding a way that works for your personal situation/goals

ActivityPub Plugin for WP

Ok now we are “getting somewhere” honestly just installing WP with root access gets you pretty close to “federated social media” for what is “social media” except a way to share content?

ActivityPub I have mentally referred to as a “content machine gun” It is a set of rules, that if you have your server and its content follow, will allow you to be accepted into the Fediverse where content does what it does on social media, end up everywhere its supposed to and not supposed to at the same time.

The Plugin for WP appears to be solid. You install it, fill out the options and away you go.

GOTCHAs

The Author/blog/both toggle. Yeah just leave it on the default. I toggled it a bunch of times and it made another user but that user dose not display any posts? The default top option accomplishes the goals for me.

You MUST use “relays” for your content to get pushed out to the Fediverse. They are set in plugin options for ActivityPub but out of the box there are none.

PROFILE PICTURES, it seems silly but this is social media… a profile picture is kind of a big deal. So by default WP forces you to use Gravatar. I advise simply nuking this and building your own profile picture PHP snippet. You can use an LLM to generate one or you can get your hands dirty but that is just kind of a crap thing about WP the gravatars. You can use it if you want but I can never get it to work ever, across instances. it takes too long, it requires external api shenanigans, I just ripped it out and put my own. Was not difficult.

Installing ActivityPub WP

There it is. Click and go!

Friends Plugin

This lets you see posts, follow people, and do those kind of activites from your WP site. This is critical to using this system as someone who just wants to use it as social media and not a posting platform.

It creates a /friends page where the posts go from accounts/ hashtags you set.

The relationship between the ActiviyPub plugin and the Friends plugin is a little convoluted at first. As is this entire thing, sorry for being honest guys.

This plugin is the best way I have found to view your actual followers feed. Using the clients they have problems and the links often do not work.

GNU/Linux, PHP/SQL, & Bare Metal

You better have gotten a comp sci degree because here we go:

You grab an old laptop, you grab an old USB stick, you burn Ubuntu onto the USB using Rufus burner. You burn the laptop with the image. You now have the dev server everyone starts with.

Or you scoff as you look at you ESXI cluster. I am not writing this for you!

That Linux laptop can run a WP site that get you started. Alternatively you can rent a VPS from a cloud provider for dollars. Use digitalocean.com or dynu.com

Again, this is not a step by step guide. If you search for “how to create a Linux server” there are literally a million ways to do that.

CONCLUSION:

I probably just confused you more than anything. But I swear if you fumble around with the pieces you see above long enough there is hope. I mean I did it, you are reading it right now!

What you will have at the end is a way to share rich content with the world in a place where it cannot be arbitrarily sorted or filtered or anything! unless you tell it to.

It takes a lot of work. But I have found it very fun.