At this tier you want an OS that's boring and well-documented, not interesting. Save the interesting choices for services running on top of it.

For a general-purpose Docker host, pick Debian or Ubuntu Server. Both are free, rock-solid, and have the largest amount of homelab documentation and troubleshooting content available anywhere - when something breaks at 11pm, someone else has already hit the same error on one of these two distros.

  • Debian - slower-moving, extremely stable, no telemetry, no vendor involvement. The safer long-term default.
  • Ubuntu Server - based on Debian, slightly more current package versions, marginally more "opinionated" defaults. Also completely fine.

Either is a correct choice; don't spend more than five minutes deciding between them. This guide's setup steps (Initial Server Setup onward) work on both without modification.

Fedora Server / other general distros

Fine if you already know and prefer them, but there's no specific homelab advantage over Debian/Ubuntu, and you'll find less homelab-specific documentation for edge cases. Not recommended as a first choice if you don't already have a preference.

Purpose-built storage OSes: TrueNAS and Unraid

These aren't general-purpose Linux distributions you install Docker on top of - they're appliance-style OSes built around storage first, with Docker/app support layered in. They matter more once storage is a dedicated concern (see Centralized Storage in Intermediate), but it's worth knowing the difference now:

  • TrueNAS (Scale) - built on Debian, ZFS-native, free and open-source. Excellent if storage integrity (checksums, snapshots, redundancy) is the primary goal of the machine.
  • Unraid - paid license, more flexible mixed-disk-size storage array, a polished app ecosystem. Popular for combined storage+services boxes.

For this tier, skip both. They add complexity you don't need yet for "one machine, Docker, a few services." Revisit this decision in Intermediate once you're deciding how to handle storage as a dedicated concern.

What to actually do

Install Debian or Ubuntu Server (the non-desktop, no-GUI server image) directly on your chosen hardware, or in a VM if you're testing this on existing hardware you don't want to repartition yet. During install:

  • Enable OpenSSH server if the installer offers it, so you can manage the machine headless from here on.
  • Use a non-root user with sudo, not a "root" login - see Initial Server Setup for why.
  • Skip the desktop environment entirely. You won't need it, and it's one more thing to update and secure.

Next: Initial Server Setup.