How to host your own Fediverse instance?

From Join the Fediverse
Revision as of 10:24, 5 December 2022 by Paula (talk | contribs)
Other languages:
  • English

Using managed hosting

You can create your own Fediverse instances without technical knowledge by using a managed hosting service.
Managed hosting services do all the technical stuff (installation, upgrades, server maintenance etc) while you own and run the instance itself.

Funkwhale GoToSocial HomeTown Mastodon Misskey PeerTube Pixelfed Pleroma WriteFreely
cloud68 29€ 39€ 49€
fedi.monster 5€ 9€ 5€
fediverse.express 10$ 10$
gridscale.io 23€ 10$
Hostman 19€ 19€ 19€
Mastohost 6€
Spacebear Federation 16€ 16€ 20€ 12€ 16€
Toot.io 29$
WriteFreely Host 10$

Using managed and unmanaged hosting for Friendica and Hubzilla

There are some Hosters which offer an managed installation for Hubzilla. Hubzilla can be also installed and updated easy by the Softaculous install script. Besides that Friendica and Hubzilla can be easy installed and administrated on many Shared Hosts - If you like that look for an unmanaged hosting plan.

Friendica Hubzilla
a2hosting Yes
Glowhost Yes
Many SharedHosters - find one here Yes Yes
Interserver Yes
Knthost Yes
Kualo Yes
Hosters which offer the "Softaculous" install-script - find one here Yes

Self-Hosting with YunoHost

Self-Hosting with YunoHost is a bit harder to do, but it's also cheaper.
You can get cheap domains at about 6€/year and a Hetzner server at 4,19€/month + 0,84€/month for backups. So in total 5,53€/month.

This guide will teach you how to host your own Fediverse instance using a Hetzner Cloud, a Domain from Contabo and YunoHost.
You don't need to know anything before using this guide. If you still need further assistance feel free to contact Paula.

1. Get a Server at Hetzner

Hetzner is a green host for servers, so it runs on 100% renewable energy.
Visit hetzner.com (here is a referral link) and register for an account. Hetzner will ask you for some information including a billing method.
When you're finished setting up your account go to cloud. There click on "+ New Project".
Give the Project a name, like "my first Fediverse instance".
Now click on "Add Server". For your server location choose Helsinki and for OS image choose Debian 11. For Type you can start with the cheapest server CX11. You can skip all the other steps (maybe give the server a name) and click "Create and Buy Now".
Boom, you have a server. That's the first step completed. Congrats!

2. Get a Domain

Next you'll need a domain. The domain is the url where your website, in this case your Fediverse instance, can be found. So something like https://mydomain.org/

For this guide I'll use contabo.com to get a domain, but you can use other sites as well. Maybe some things will be a little different than explained in this guide then, but some domains may be cheaper on other sites.

Visit the contabo website and register for an account. Here you'll be asked for a billing method too.

Once you have an account login to my.contabo.com. There go to "domains" in the control panel. Enter your desired domain name and click "Order domain".
Now contabo will check if the domain is available. If not choose another domain and click Next to check if that one is available. In step 2 you'll be asked for contact details. This should be pre-filled with the info you gave when signing up.

Now open up your Hetzner cloud in a different tab. Click on your project and then on your server. There you should find the IPv4 address. Click on it to copy it.
Go back to the contabo tab and choose "Own IP address" and in the next line paste your copied IP address.
Click Next and then Place Bidding Order.
It may take a while until your domain is registered, but you can go on with Step 3 already.

3. Install YunoHost

You should have gotten an eMail from Hetzner containing login credentials. Namely username "root" + a password.
Go to your Hetzner server under Cloud > your project > your server and click the ">_" button.

You're now in the console of the server. This may look scary, but we'll guide you through it.
First you'll be asked for your login credentials. Enter root and hit enter.
Now you'll be asked for the password. Unfortunately you can't just copy-paste it, so you'll have to enter it manually. Nothing will appear when you enter the password, but once you hit enter you should be logged in.
Next you'll be asked to change the password. Unfortunately you'll have to enter the old password once more but then you can enter the new password - also twice. Choose a password that you don't use all the time but that you can remember. It's best to generate and store your password in a password safe like KeePass.

Enter curl https://install.yunohost.org | bash in the console. Now YunoHost will be installed you'll be asked once to confirm. Just select Yes with your arrow keys and hit enter.
You'll know when YunoHost is finished installing when you can write again.
Now close the console.

4. Configure YunoHost.

Once again copy your IP address (Open up your Hetzner Cloud. Click on your project and then on your server. There you should find the IPv4 address. Click on it to copy it.).
Now paste it in the url bar of your browser and hit enter.
You'll see a warning that the site is unsafe. Click "advanced" and ignore the warning.
Now you'll see the YunoHost portal. Enter the password you chose in step 3.
YunoHost will perform some post-installation processes. Just wait until they are done.
Now set up a user. Click on "Users", "+ New user" and fill in the details. Once created click on the user, click "Edit User's Account" and add a forward email address, so you don't miss any important emails. Now go back home, click on Diagnosis and start the initial diagnosis.

5. Set Up DNS and Let's Encrypt

When the diagnosis is done check out the errors displayed in the category DNS records. You'll need to fix the errors for the categories basic and mail.
To do that go to your Contabo control panel (in another tab), "your services" and click on "manage" besides your domain. Now click on "edit DNS zones".
The YunoHost diagnosis results tell you exactly which entries to delete (you can't edit entries) and what to add. When the Type is txt just copy the text between the quotation marks, not the quotations marks themselves.
Once you added all necessary DNS records run the YunoHost diagnosis again.
You may have to wait a while until the diagnosis tool will run the diagnosis again and not just display the prior results.
When you ran diagnosis again and the DNS errors are fixed you can go to home, domains, click on your domain then on "SSL certificate" and then "Install Let's Encrypt Certificate".
If you're still waiting for the diagnosis tool you can continue with step 6. and finish step 5. later.

6. Install the desired Fediverse Software.

In your YunoHost portal go to "Applications", "+ Install", choose the category "Social Media" and click "+ Install" besides the App you want to install.
On the next page, depending on the app you chose, you'll be asked a few things about the app. If there is a language option make sure you choose the right one or you'll e.g. install Mastodon in French when you can't speak French and neither can the people you want to use Mastodon.
After that just click on "Install" and wait.
Once that is finished go back to step 5 if you still have to install the Let's Encrypt certificate, otherwise you're done!
Congratulations, you are now the proud host of a Fediverse instance.
You can find your instance under the domain you chose in step 2.
Log in with your YunoHost user data and start configuring the Admin settings.

Bonus: Installing more than one App

You can repeat the whole guide to install another app under another domain or you can use the following steps to install another app under a sub domain of your current domain.
In your YunoHost site go to "Domains", "+ Add domain", select "I already have a domain name… " and enter a sub domain of your domain. E.g. if you want to install mastodon you could name the sub-domain "mastodon", so you would enter mastodon.mydomain.org. Then click "Add".
Now run diagnosis again and enter the needed DNS zones in your Contabo control panel.
Now go to "Applications" and install another app. Make sure you choose the newly created sub-domain to install the app to.