As part of creating the Grow Your Own Services site, I set up my own Mastodon server through a managed hosting service, and have written an article about the experience in order to help others do the same thing.
There are some Mastodon-specific details, but most of it applies to any kind of homegrown social media server, especially those that are part of the Fediverse. If you haven’t already, please take a look at Grow your own social network and What is the Fediverse? so you can find out what the Fediverse is, and how homegrown social media can work.
If you’re wondering why someone would want their own server at all, have a look at the Why page.
My overall experience of using managed hosting has been extremely good, they do a brilliant job of handling all the technical stuff. However, there are still some significant non-technical challenges, especially if you want to run a public server. It’s good to be aware of them before you start.
This is quite a long article, but I’m trying to cover all the basics so that you don’t get any nasty surprises later on.
I hope this guide is helpful, please let me know if you have questions, feedback or suggestions.
Step 1 – Decide what kind of server you want to have
There are three approaches you can take when making your own social media server:
- Running a private single user server just for yourself – Extremely simple. The monthly cost will be very low, there won’t be any moderation to worry about. You can take things entirely at your own pace.
- Running a server for a small number of friends or family – Still relatively simple, but you need to make them aware that you may be held responsible for what they post. The cost will depend on how many friends and family are on there, ask your server’s hosting company for prices.
- Running a public server where strangers can sign up – A much bigger challenge with much bigger practical and moral responsibilities. In some countries you may also have additional legal responsibilities.
If you run a public server, you need to make sure your hosting company is taking regular backups, so that no one’s data gets lost if there’s a technical problem. If you ever decide to close your public server, you will need to give your members plenty of warning (ideally several months) so they have time to move their accounts to other servers.
Public servers also need to be aware of spiralling costs. If a server has membership open to anyone, the costs may quickly grow unexpectedly large. You should ask your server hosting company what the costs are for different numbers of members, so that you know when to close your sign-ups page.
Perhaps the biggest responsibility on public servers though is content moderation. I’ve done a section about it below in Step 6, but in brief you will need to lay down clear public rules for how people should behave on your server, and also enforce these rules. If you don’t do this, people may start posting nasty anti-social stuff on your server and other servers may block you.
Also, this is worth emphasising again: in some parts of the world running a public server may bring legal responsibilities. I am not a lawyer, I cannot give legal advice, but you should be aware there may be a big difference between running a private server and a public server.
Because of the much greater responsibilities with public servers, it’s probably a good idea to just start out with a private server where you are the only user. If that goes ok, a next step could be inviting people you trust onto your server while still keeping it closed to strangers.
Step 2 – Choose a managed hosting provider
The first step to creating your own social media server is finding a managed hosting company to do the technical stuff. The way they work is this: you pay them a monthly fee, and in return they will set up your server on their computers, maintain it, fix it and continually upgrade it. Their websites will give more details on pricing etc.
Managed hosting is not compulsory. If you’re technically skilled enough you can install and maintain a server yourself, but managed hosting is a much easier option. (Very advanced users may want to browse the official Mastodon documentation ⧉, which details how the software works.)
Managed hosting has worked really well for me. I haven’t had to install anything, or update anything, or do any kind of technical maintenance. I’ve had good communication with the hosting company and the upgrades have simply happened without me even realising. It’s like having a car that gets silently fixed and tuned all the time without having to open it up or take it to a garage.
Having said that, you may need to do one technical thing yourself, which is getting a domain name or subdomain for your server.
Step 3 – Domain names and subdomains
If you’re creating a Mastodon server, you will (probably) want to buy a domain name from a domain name company. Domains are memorable custom website addresses, such as example.com. Every site has one, it gives the site a sense of identity, and it will permanently appear on that site’s addresses so choose it carefully. Domain names are usually bought for a specific time period such as 1 or 2 years, after which you can renew it or abandon it. Domain prices vary a lot, but they are typically about 10 to 50 euros per year.
You can use the same domain name for hosting many different sites through something called subdomains. Subdomains are extra words at the start of domains, such as social.example.com. You can add as many different subdomains as you want to the same domain name, such as video.example.com, photography.example.com etc. Once you own a domain name, its subdomains cost nothing.
When you’re choosing a domain or subdomain, it is really important not to use the word “Mastodon” or any other social media platform’s name. It’s slightly complicated to explain, but addresses such as mastodon.example.com can create future legal complications, while platform-neutral names such as social.example.com will avoid all of these difficulties. By staying platform-neutral on domain names and subdomains, you will be future-proofing your server.
In my case, I already owned the domain name growyourown.services as the address of my main website, so I chose to run my Mastodon server from the subdomain social.growyourown.services. The managed hosting company gave me help with setting it up. This setup process is technical, but the instructions they gave were very clear, and I was able to get support from the domain name provider as well. After this, I didn’t have to do anything else technical!
There are hundreds of domain name providers and domain types to choose from, so I don’t want to recommend any in particular. You don’t need to get domains from the server hosting company.
Alternatively, you don’t have to buy a domain name at all. Managed hosting companies will often let you use a free subdomain of their domain names. This means you don’t have to get involved in domain names at all, but also means you will not be able to change hosting companies if you ever want to move.
If domain names are confusing and you’re in any doubt about how to handle them, contact the managed hosting company and they will give you advice. Domains are the only really techy thing you will need to do yourself, and you only need to set them up once.
If you want more advice on this topic, see my Beginner’s Guide to domain names.
Step 4 – Use a computer if you can
It’s highly recommended that you administer your Mastodon server through the server’s website interface on a computer. It doesn’t have to be an expensive computer, the cheapest laptop is absolutely fine.
The web interface will give you access to all the controls and features that a server administrator needs, and it will be easiest to use this on a full size screen. (It is possible to maintain a server from your phone, but it’s fiddly.)
Step 5 – Decide on a public email address
If you’re running your own server, you will need an email address that is okay to show publicly. This is in case an outsider needs to get in touch with you about your server. On Mastodon, you will not be able to access your server’s settings until you provide a public email address.
I would strongly recommend creating a new email address just for this purpose, perhaps one which forwards mail to you. Don’t use your personal email address!
If you’ve bought your own domain name, they usually come with options for email forwarding, so if you bought example.com you could have forwarding addresses like email@example.com
If you don’t have a domain name, most email providers nowadays let you add additional addresses as aliases.
Once you’ve got your public address, add it in Mastodon at Preferences > Administration > Site Settings > Business E-Mail
Step 6 – Server moderation
When you own your own social media server, you are in control and that means you’re the one responsible for what goes on there. In some countries, you may be legally liable for what happens on your server. It is very important to take server moderation seriously.
Moderation means you keep an eye on what happens on your server, investigate reports of anti-social behaviour, and take action if needed. Action can range from giving someone a warning, to restricting or suspending their account for a while, to deleting an account permanently. (You will also need to manage your server’s “blocklist”, more info about this in step 7 below.)
On a federated network like the Fediverse, moderation isn’t just a matter of decent behaviour and legal liability, it’s also a practical thing. If you allow people to post all kinds of bad stuff, your server will be blocked by other servers. This would mean your users’ posts would no longer be visible to anyone on the servers blocking you. The more servers you upset, the less visible your server will become. The most offensive and anti-social servers end up talking to themselves, because so many other servers have blocked them.
Here’s how moderation works in practice:
- If you’re the only one using the server, then all you have to do is watch what you post. Don’t post anything illegal or anti-social.
- If you’re providing a server for family and friends, you will want to make sure they realise that you are the one who may get in trouble if they post illegal or anti-social content. Try to pick family/friends whom you trust.
- If you’re providing a public server for strangers to sign up on, you will be taking on by far the greatest responsibility of all. It is the online equivalent of being a cafe owner, or the landlord of a pub. You will have to act as moderator, and be ready to intervene if your users do anything bad.
On public servers, it’s very important to have clear published rules that everyone has to obey. This means everyone knows how they have to behave, and it also tells prospective new members what kind of community they can expect on your server. You can add published rules on your Mastodon server by going to Preferences > Administration > Server Rules. These rules will be visible to anyone looking at your server’s website.
To make your life easier, you can screen users before they join by going to Preferences > Administration > Site Settings > Registrations Mode > Approval Required. This approval mode means anyone who joins has to write a few phrases explaining why they want to join, and you have to manually accept each member.
There are lots of tools on Mastodon to help with moderation, you’ll find most of them in Preferences > Moderation. You can also optionally give moderation powers to users you trust by marking them as “staff”, so they can help you moderate the server. Having server staff is very common on the largest servers.
Moderating a public server can be time-consuming, but it can also be very rewarding to create the conditions where a friendly community can grow. Most people are nice and will not do anything illegal or anti-social, it’s only a minority that you will actually have to moderate or ban.
Step 7 – Blocking and blocklists
By default, any other server on the Fediverse can interact with your server. The vast majority are nice. However a small minority of servers are run by nasty people who are pretty anti-social. If they post nasty replies to messages on your server, their nasty replies will be visible on your server too, and will be your responsibility to moderate.
You can block individual posts or users from other servers by clicking the “…” link below their post and selecting “Open moderation interface”. You can also report them to their home server by selecting “Report” and selecting the option to forward the report anonymously. If this doesn’t work, you may want to email their home server’s public contact address.
In extreme cases, for example if servers refuse to moderate their own users, you can block entire servers. You can do this by adding that server’s domain name to your blocklist. You can access your blocklist through the administration tools in Mastodon, go to Preferences > Moderation > Federation and then add the domain name of the site to be blocked.
If you want to get a headstart on servers to block, there are ready-made blocklists available which have various criteria for inclusion, you can import these into your server so that you don’t have to block servers manually one at a time. The Oliphant.social lists are probably the most useful at the moment ⧉. You can find instructions for importing blocklists over on the fedi.tips website ⧉.
If you want a more manual approach, try looking at the public blocklists of established servers that are well run. These public blocklists are usually visible on their “About” pages and usually give reasons for blocking each site too.
There are also often discussions of blocks under the hashtag #FediBlock. Bear in mind different people will have different reasons for blocking, and sometimes moderation reports are incorrect, so it’s always important to check the reasoning for any block before implementing it.
Step 8 – Customising your server
A fun aspect of owning your own server is customising it. On Mastodon you can choose a default dark or light theme, and add your own artwork, texts and emoji too. If you’re running a public server, the artwork and text will appear in catalogues of servers to join, so it’s worth making this as friendly to newcomers as possible.
Emoji are so tiny that they can be tricky to get right, but there’s a useful article about custom emoji by Laura Kalbag ⧉ which goes through how to use and make them. If you’re looking at custom emoji in the administration interface, you may see custom emoji from other servers suddenly appearing there. This is normal! Any emoji from servers you connect with will be visible to you so you can block anything offensive (but it is thankfully quite rare to see offensive emoji). Custom emoji can have transparent backgrounds, and they can also be animated as long as they fit into the maximum file size.
If you’re a techy person you can add custom CSS to your server (at the bottom of the Site Settings page), and there are ways of editing the themes too, but this is totally optional. Click here for a nice tutorial on using CSS to customise your server’s colour scheme ⧉.
As well as the visual customisation, you’ll want to adjust the server settings at Preferences > Administration > Site Settings including the very important “Registrations mode” section. Set this to “Nobody” while you are learning the ropes, otherwise other people may sign up before you are ready.
Step 9 – The Local timeline
If you’re looking at Mastodon through a server’s website, there’s a prominent link called “Local” which shows all of that server’s public posts.
On the official Mastodon app, you can see the Local timeline by clicking the magnifying glass icon at the bottom and then the “Community” tab at the top.
On small servers, the Local timeline can be a good source of community interaction. It lets members catch up with each other, and if it’s a “friends and family” server then everyone who posts there will know each other already. If you run a small server, it is well worth telling your users to browse the Local timeline.
Step 10 – Start following people, and connect to relay servers if necessary
When you first log in, you’ll notice there’s nothing on your server! The timeline is blank and the “Explore” tab is empty.
When they’re first created, servers have not yet “noticed” the rest of the Fediverse ⧉. Some people leave their server isolated like this, and just talk to other members on the same server. However, most people (and especially those on single user servers!) will want to follow and interact with accounts on other servers too:
- If you’ve already got a Mastodon account elsewhere, you can move it to your server ⧉. This will link your server to all your existing followers and follows, and you will see their posts show up in your home timeline just like you did before.
- If you’re starting an account from scratch, there are lots of ways to find people to follow ⧉.
- If your server still feels a bit empty and quiet, you may want to connect it to relay servers ⧉.
Is it worth making your own server?
It depends on what you want, but I would say if you’re interested give it a try! The cost barrier for small servers is low, the difficulty barrier for managed hosting is also low, and you can take things at your own pace. If you start off with a private single user server, there’s no moderating to worry about either.
If you give it a try and it’s not your thing, you can always transfer your self-hosted Mastodon account to someone else’s server. 🌱