How to Host Your Own Fediverse Instance for Beginners

Using a Hetzner Cloud, a Domain from Contabo and YunoHost

This is a guide for total beginners (like me). You don't need to know anything before using this guide. If you still need further assistance feel free to contact me. If you want I can also set up the whole thing for you for a one time pay-what-you-like payment.

1. Get a Server at Hetzner

Hetzner is a green host for servers, so it runs on 100% renewable energy. Visit https://www.hetzner.com/ 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 10. 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 https://my.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 https://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 we get to step 3. 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. Now you're done with step 2 of this guide. Yay! 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 I'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.

For the next steps check the YunoHost guide to make sure the info I'm sharing here is still correct. 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. Next step completed. ✔️🎉

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. If you finished step 5. congrats! You're almost done.

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.

Further Guides?

Do you need me to guide you through setting up the admin settings of your Fediverse instance? If enough people need it I'll write another guide and link it here. Feel free to contact me with any questions.