Welcome to The Self-host Wiki
This is a collection of guides for hosting services such as file servers, NAS, backup servers, seedboxes etc. on your own hardware and local network.
Why self host?
While such services are available easily and for free (or for a small monthly subscription) by companies such as Google, Apple and Dropbox, there are issues such as privacy, non-availability due to loss of internet connection and government censorship.
Companies can terminate accounts for undisclosed / vague reasons (happens), accounts can get hacked (happens), trade wars can prohibit companies from providing their services to sanctioned countries (happens), and internet lines can go out due to accidents or natural disasters (happens).
Even if you aren't concerned about these issues, self hosting can be a fun exercise in DIY, an extra backup plan in addition to cloud services, or salvaging older, unused hardware such as obsolete smartphones, abandoned Raspberry Pis and laptops. Such devices can make perfectly usable, low-powered servers instead of rotting away in a basement (or worse, in a landfill).
Who is this for? What are the prerequisites?
Ideally, you:
- Aren't afraid of the command line, but also don't have the time or mental space to look up guides that might be obsolete, needlessly complex, or in wikis scattered across the web.
- Prefer a "copy and paste commands as-is" approach, but also want to know what every command you're running does.
- Have a spare "always-on" server — anything from the latest, beefiest desktop to a Raspberry Pi or an old laptop with a busted battery will do.
- Run (or are willing to install) the latest Ubuntu Linux LTS. Most recent Debian-based distributions such as Raspberry Pi OS work, too.
Some of these guides also work on Windows 10, either natively, or through Windows Subsystem for Linux (WSL) — useful if you don't have a spare machine and don't want to switch over completely to Linux.
What if I don't know how to use the command line?
You are in luck because there is a comprehensive Command Line Course that gives you enough familiarity with the command line to easily and confidently follow the instructions and understand what each command does.
With that out of the way, let's move on to the Guides.