How I Ran My Own Mastodon Server in 10 Minutes

Jan 19, 2023

There’s much talk at the moment about alternatives to Twitter, mostly because people hate the abusement and hate that Twitter is now not actively suppressing anymore under its new ownership. Some just think, that Elon is a bad and narcistic person and don’t want to do anything with the platform anymore. For me, it’s mostly because a lot of people I follow just moved away from Twitter and there is not a lot to read on the feed anymore and yes also because of the new leadership direction. It seems that everybody moved on to Mastodon, which is basically the same concept, but implemented in a distributed manner. There is no one single company controlling the service, but rather a huge number of individual Mastondon instances running, of which all are controlled and administered by unrelated people or companies. The concept is very intriguing, but comes with some downside. If you want to connect on Mastodon, you first have to find a service instance that is willing to give you an account and finding those is not easy. If you google for it, you might find a list of servers, that is fairly up-to-date. You then click through every link and see if the server does have a sign up page. But before that you also might want to check the local timeline to see if the right kind of people are on that instance.

But there’s an alternative, one that also has the advantage of owning your own data. Run an instance for yourself or for you and your closest friends. I advice against of running a Mastodon server for just anybody, because that would come with a lot of time commitment to police the content. You don’t want to do that. Here is what I did for me and my friends of Made@Gloria.

It was easier than I thought. The TLDR is:

  1. Register a glorious domain with Hover

  2. Go to Digitalocean Marketplace and start a Mastodon droplet

  3. Follow the droplets installation readme

  4. Point the domain’s DNS to the droplet’s IP address

1. Register a glorious domain with Hover

If you run a web service on the internet, you may want people to find it. Which means, you need your own domain. I have an account at Hover, but you can use any other domain registrar. Choose one that also runs a DNS service. That makes it easier for you to point the domain to something.

2. Go to Digitalocean Marketplace and start a Mastodon droplet

Well, you can install a mastodon server on any virtual machine you can get, but that means following the lengthy install instructions and having a bit knowledge of the linux command line. The easier thing is to let other people do it for you. You can find preinstalled server images on a lot of hosting platforms. On Amazon AWS, you would browse for a Mastodon AMI. I happened to run this blog on Digitalocean and that’s where I checked. Digitalocean’s registry of system images is called Marketplace. There you can search for Mastodon and click on Create Droplet. Change the instance type to the cheapest one that is offered and make sure you have an SSH public key uploaded that you then choose for that instance or just let Digitalocean create a new one.

3. Follow the droplets installation readme

You will need to run a couple of commands in the command line to set up your service. Digitalocean makes that pretty easy. In your list of Droplets you get a link that opens up a drawer to detailed instructions on how to setup your Mastdon instance. For image upload you can use Digitalocean Spaces, which basically is an S3 clone. For email, I am using Sendgrid. You will also need to setup your own account as the instance’s admin.

RAILS_ENV=production bin/tootctl accounts modify alice --role Owner

That was somehow missing from the Getting Started instructions.

4. Point the domain’s DNS to the droplet’s IP address

Back on Hover click on DNS setup and create an A record to your Digitalocean droplet.

Sign in to your Mastdon instance and head to Preferences/Administration/Server Settings/Registrations. There you disable all registrations by not allowing anybody to sign up. Instead you are going to send out invites to individual people. And that’s it. It did not take me longer that 10 minutes to set this up. Well, I already had set up user accounts on Hover and Digitalocean. If you don’t I guess this comes on top of that.

Disclosure: The Digitalocean link above includes a referral which subsidizes this blog.


Apr 01, 2019 - MacBook Pro (eGPU) vs Hackintosh GPU

Jan 12, 2019 - My New Silent, Small Hackintosh for 600 EUR

Nov 22, 2018 - Instacast is Now Free and Open Source

Sep 12, 2018 - What makes a Mac Pro a Mac Pro

Jul 14, 2018 - Why you Should Build a Hackintosh

Apr 16, 2018 - Why the Blackmagic Pocket Cinema Camera Is Not a Good Vlogging Cam

Apr 09, 2018 - ProRes RAW is Here

Apr 03, 2018 - Is the Nokia Steel HR Smart Watch an Apple Watch Killer?

Mar 04, 2018 - Workaround for Buggy DNG Handling in macOS

Mar 03, 2018 - Colorcast 0.5 Adds Support for Cinema DNG, Anamorphic De-Squeeze and Slow Motion

Feb 06, 2018 - Open-Source Objective-C API for Magic Lantern

Feb 06, 2018 - Colorcast v0.4 Includes RAW Engine And Supports Magic Lantern

Jan 25, 2018 - Thoughts on the DJI Mavic Air

Jan 24, 2018 - Why I bought a Sony Alpha 7 Mark II in 2018

Jan 18, 2018 - Using Metal Performance Shaders with Core Image

Jan 15, 2018 - Night-Mode For Your iOS App

Jan 15, 2018 - What’s Color Grading and Why You Want That

Jan 09, 2018 - My Review of

Dec 27, 2017 - Everything That's Wrong with Hackintosh

Dec 21, 2017 - Colorcast Alpha v0.3 Available

Dec 19, 2017 - RX Vega 64 Hackintosh for High-End Video Work

Sep 07, 2017 - Colorcast Alpha v0.2 Available

Aug 31, 2017 - First Alpha Version of Colorcast Available

Jun 01, 2015 - Vemedio Product Development Has Been Discontinued

Apr 16, 2015 - Audio Books vs. Podcasts

Mar 21, 2015 - Rejected for Weak Linked Frameworks

Mar 19, 2015 - Ideas for A Better App Store

Mar 05, 2015 - Auto-Layout works


My name is Martin Hering.

I am a C, C++, Obj-C developer based in Ludwigsburg, Germany. Since 2001 I have been working with companies like equinux, Algoriddim, Flexibits, Dreipol, CtrlMovie, Auphonic and many more.

If you like to get in touch, feel free to send me an or follow me on Twitter.