Before you can start installing any of the service we're introducing here, there are two things you're going to need:
Note: While we do recommend reading ahead to understand the specific requirements of the service you want to use for your community, it's usually best to make sure you have both your server and your domain name registered and under your command before you start any actual installation. In the case of most services, the domain name is fixed on installation and can't be changed after the fact.
For those new to Linux or server management, finding a hosting company and domain registrar can seem overwhelming at first. For others, a desire for privacy and/or anonymity might make finding a suitable company difficult. While it is important for 10friends participants to put the time into doing their own research, there are a few companies we can recommend for those who want to get started right away.
Njalla is privacy-focused company offering both domain name registration and VPS hosting plans, making it a good one-stop shop for anybody installing Fediverse software. While more expensive than other domain name or hosting companies, they offer significant added value in respecting customer privacy. They also accept payment in a variety of cryptocurrencies.
OrangeWebsite is a privacy-friendly free speech web hosting company based in Iceland. They offer domain registration and VPS hosting plans, and accept Bitcoin as well as fiat currency. As with Njalla, their prices are higher than other companies, but this is in exchange for significantly better privacy protection.
(Disclaimer: Neither Njalla nor OrangeWebsite have paid us to endorse them. We just genuinely like them).
Once you start setting up a server, you'll be presented with the option of which Operating System to install on it. If you're new to Linux and servers in general, this might be a little intimidating. Which Operating System is best for me? What's the difference between them? Unfortunately, the answers to those questions could take up a whole webpage on their own (which DistroWatch.com has thankfully created).
The services we're introducing you to are designed to work with multiple versions of Linux, but not all of them are compatible with every version. So for the sake of simplicity, our guides will focus on instructions for Debian/Ubuntu, which are arguably the most popular and widely used Linux Operating Systems. Where possible we'll include instructions for other OSes, or link to them elsewhere, but if you're not sure where to start, then choosing a Debian-based OS is probably the best choice. However, it's a good idea to read ahead and see which OSes are supported by the Fediverse software you want before you make any final decisions.
In terms of which version, we'll be assuming more recent releases. For Debian we're assuming Version 10 (Buster) or higher. For Ubuntu, we assume Version 20.04 (focal) or higher. Some individual software has different version-based requirements, so keep your version in mind and check for special instructions based on version number.
If you decide to use a VPS, in most cases you'll need to use SSH to connect to it before you can do anything with it. SSH stands for Secure Shell, and is a program for securely logging into a remote server from your home PC and running commands on it. SSH clients exist for Linux, Windows, and Mac, and finding guides on how to use them should be fairly easy.
SSH isn't the only way to access your VPS, of course (and you should feel free to use whatever method you're familiar with). But it is the most basic and straightforward way, which is helpful for beginners. All of the instructions below for installing and setting up Fediverse services assume that you're using SSH and are already logged into your VPS. Your hosting provider should provide you with instructions on how to do this, so check with them first before looking for help elsewhere.
At several points in the following tutorials, we make reference to a program called "nano". Nano is file editor used to access, read, and modify files. There are other file editors in Linux (most notably vim and emacs), but in our experience nano is the most user-friendly to absolute beginners, and so our guides default to using it.
The official docs for each Fediverse project often instruct the use of a different editor, but in the end it doesn't matter which one you use. If you're more comfortable using emacs or vim, feel free to do so. On the other hand, if you're not sure what editor to use, sticking to nano as per our guides is probably the best way to start.
Docker is a program that can package other software into virtual containers. These containers can easily plug into an existing Linux server, and because they bundle their own libraries and configuration files inside the container, they can run in isolation from the rest of the system. Docker containers are relatively lightweight, and multiple containers can run on the same server without too much difficulty. Many of the Fediverse projects we're promoting here support Docker, and installable Docker containers exist for them.
So why aren't we just providing Docker instructions and calling it a day? Wouldn't that be easier, especially for beginners?
While Docker's "plug and play" nature does make things easier in some ways, ease-of-use itself isn't our only priority here at 10friends (if it were, then we'd be supporting Facebook, Twitter, and YouTube... all of which are easier to use than even Docker, after all). The desire to run our own platforms comes from a desire for freedom and independence, and none of that is possible without knowledge or understanding of the systems we use. And the reality is, plugging in somebody else's Docker container doesn't do much to encourage knowing or understanding how the software inside works. All the lofty rhetoric about freeing ourselves from dependence on Silicon Valley corporations would ring hollow if we just replaced it with dependence on Docker Inc.
Does this mean Docker is bad? Certainly not! If you decide it's for you, we'll provide links to Docker instructions where they exist. But the 10friends guides are going to focus on installing and configuring the components of each project manually, to strike a balance between being beginner-friendly and encouraging a better understanding of how the software works.