What is selfhosting? 

Self-hosting is installing and managing varying services yourself on a server that you have control over. Think of a few of these popular services that you might be using right now: iCloud, Google Drive, Google Photos, Pinterest, Spotify… those things can all be ran by you. And so much more!

Why selfhost?

Control: You have the freedom to customize and configure your services according to your own specific needs, and you don't need to worry about services shutting down or changing their policies or pricing.

Privacy: You decide who has access to your data and can ensure that your data is stored and transmitted securely.

Fun: There are so many cool services that you can run!

Media: Have a central store for all your movies and shows and music that you can stream to all your TVs, phones, tablets, and other devices.

Automation: Have a sophisticated home automation system that doesn't rely on other 3rd party services, and is all controlled locally.

Take a look at: My favorite selfhosting services and Awesome-Selfhosted to see what selfhosting can do for you!

What are the considerations?

Technical Expertise: Self-hosting can require knowledge of server administration, networking, security, and software configuration. It may be frustrating if you lack the necessary technical skills, or are unwilling to invest the time into learning them. But there are also viable, beginner-friendly selfhosting platforms that minimize many of those barriers. 

Maintenance/Support: You are responsible for maintenance, updates, and troubleshooting. And most importantly, backups. This time commitment is dependent on technical expertise and how well the environment is setup. For myself, the amount of actual maintenance is negligible… I might spend 30 minutes a month updating the host systems and containers. 

Costs: There are some costs to consider: the hardware of the actual server, network equipment, and ongoing electricity costs. In most selfhosting environments, these costs are minimal.

What do I need to get started?

  • Hardware platform
    • SBC 
      • ++Extremely low power consumption, ~2.5W @ idle, good for power constrained environments like RVs, vanlifers, and other off-grid living
      • ++Extremely quiet, many have passive cooling
      • --Usually not as performant as other options
      • --ARM CPU architecture can limit software availability
      • --Poor hard drive interfacing, although some do have SATA and M.2 connections and can provide decent interfacing that way
    • Legitimate Servers
      • ++Highest performance, highest amount of available system resources
      • ++Excellent hard drive interfacing
      • --Use a lot of electricity
      • --Extremely noisy
      • --Highest cost to purchase
    • SFF PC or older PC/Laptop
      • ++SFFs and laptops are power efficient, can use as little as ~7W @ idle
      • ++Many SFF PCs have Intel QuickSync CPUs which are great for transcoding
      • --Poor hard drive interfacing, may only have space for 1-2 internal drives, and other drives may need to connect via USB or eSATA or through some other means
    • Storage
      • You will want to have planned for a minimum of three drives: the OS drive, a living data drive, and a backup drive
      • You can always expand storage later
    • ECC RAM
      • Ensures data integrity in the RAM
  • Operating System
    • Tipi, Umbrel, CasaOS
      • ++Excellent choice for beginners that don't want to deal with too much configuration
      • --Limited tooling if you have or will have more advanced needs later
    • UnRAID
      • ++Easy to use UI
      • --Licensing requiring booting from DRM'd USB drive
      • --Costs money initially and more money to scale it
    • TrueNAS Scale
      • ++Excellent choice when primary focus is on data storage
      • ++Excellent ZFS support for better data integrity
        • --ZFS uses more RAM than other filesystems, and is not as easy to expand storage without additional consideration
      • --Forced to use GUI for docker that runs behind K8s
    • Proxmox
      • ++Excellent choice for server-grade hardware with a lot of system resources
      • ++Manage multiple machines, VMs, LXCs
        • --Need to configure resources of individual VMs and LXCs
      • --Requires more manual configuration in general
        • +-User scripts available to help, but it's hard to recommend them
    • OpenMediaVault
      • ++Built for small offices and small business environments 
        • ++Translates into a great fit for most selfhosting environments
      • --UI is a bit clunky and not as intuitive as UnRaid or TrueNAS 
    • Ubuntu Server, openSUSE, NixOS
      • ++Freedom to completely setup your own environment
      • --Requires the most configuration
  • Network
    • You likely will not need to buy any additionally networking gear, your home router will be sufficient. You will want to make sure it has gigabit ports on it, as you'll want to connect your server to it with a wired connection. A wireless connection is not ideal for a server.

Conclusion 

There are many options to consider regarding your hardware and OS, and there is not one right answer. It depends on your preferences, but hopefully I have covered enough for you to make an informed decision. If you are just starting out, then I would recommend using whatever spare computer you have, or getting a used SFF PC like a Thinkcentre M93P on eBay for ~$100 and installing OpenMediaVault on it.