I’ve been playing around with Twitter for years and have long felt that I would have been deeply into the site if I wasn’t a public school teacher for most of the site’s existence. With the unmitigated disaster of Elon Musk buying Twitter and pouring radioactive gasoline into the Dumpster fire, I decided to join many other people and take a deep look at Mastodon and the Fediverse.
And I’m really enjoying it.
After exploring Mastodon.Social for a couple weeks, I decided that not only do I like this network, but I really want to run my own instance. I want to control my own data and lock down my identity on the internet.
And so, over the course of two weekends and some late night poking about during Thanksgiving Break, I managed to get Mastodon running on an old Intel MacMini in the basement.
My Identity: @email@example.com
I’m Not Completely Done Yet
I still need to do a few things to make my Mastodon instance more stable, but it’s completely functional for me as a personal server.
- Copy backup files OFF the system every day.
- The server DOES NOT send emails.
- Hashtag search is buggy, but I’m starting to think this is more a misunderstanding of how search works on the Fediverse than a problem with my install.
- Have not installed Elastic Search yet. Not sure if I will.
- Want to make my website pull posts in and create a single weekly summary blog.
- Need to make the server automatically relaunch on reboot. See General Notes for the commands.
After a lot of false starts and poking around, I managed to get my server online by following a combination of guides.
The most important one was How To Forge’s Guide to Install Mastodon. The core of that guide seems to be solid and I had very few problems that couldn’t be traced back to my own inexperience with Linux version control and managing databases via terminal commands. It is impossible to install Mastodon going purely by the guide, due to version numbers and dependancies changing since publication, but the basic progression is solid.
The instructions for making Nginx properly connect to the Let’s Encrypt Certificate seem to be out of order, probably because the Certbot Nginx plugin repository is deprecated, so I had to install Certbox as a full app rather than an Nginx plugin. I got the workaround by using bits of code from David Field’s Tech Blog guide to installing Pleroma. I couldn’t get Pleroma working, but the Let’s Encrypt portions of the guide are apparently more stable.
After installing everything, I realized that not having an SMTP server running would make it impossible to receive authorization emails from my own instance. Rather than spending hours futzing around with email servers, I just dug into the tootctl CLI to authorize my admin account and a personal account directly, skipping the e-mail confirmation loop.
Very Important Note
File permissions for the Mastodon Public Folder were wrong after following these guides. I ended up having to
chmod 0755 the
mastodon/live/public folder to make it readable.
Domain and Port Forwarding
The biggest problem I see is that I’m running this as a home server, so if my IP address changes I’ll have to update the A-Records of my domain to the new IP.
And obviously I had to lock the computer running the instance to an internal IP address and forward SSL and HTTP ports on my home router to it.
Is it Worthwhile?
Personally, I have a lot of fun digging around in the Linux terminal and figuring out how to make arcane software run, so that alone was worthwhile for me. As a piece of technology and social media network, we’ll have to see what becomes of the ActivityPub Fediverse over the next couple years, but I do think there will be a future in decentralized social networking. Will they rival Facebook or a (somehow not afire) Twitter? Probably not… but I love the concept of owning my own identity online so even if I someday return to Twitter or a newly crowned successor, I’ll probably continue to play with Mastodon for a long while.