Starting a homelab doesn’t require a rack of servers or a significant investment. One small box is enough to run everything in this guide, and the first section below covers which one to start on.
The biggest barrier to starting is knowing which services are worth the effort. Here are five that provide clear value, aren’t too painful to set up, and are genuinely useful once running.
Which Server to Start On
The default pick: an Intel N100 mini PC. A box in that class runs around $150-200 and is enough to run all five services here comfortably. Our best mini PC for a homelab picks cover the specific models worth buying.
Already own something? Start on it. A spare laptop, an old desktop or a Raspberry Pi 4 can all host a first homelab, and Pi-hole and Home Assistant both run fine on a Pi 4. The mini PC vs Raspberry Pi comparison lays out which fits your first server.
Storage and RAM. Add a 1TB NVMe drive if you plan to run Nextcloud with significant storage, or attach an external USB drive to the server. A family syncing a lot of video through Nextcloud needs faster storage (NVMe over SATA) and potentially more RAM. Before you buy, the budget estimator in the next section shows whether a given amount of RAM covers the whole stack.
What You Need Before Starting
These five services run comfortably on a modest box, but if you’re not sure yours has the headroom, drop them into our self-hosted app picker and resource budget estimator to see the combined RAM and CPU draw against your hardware first.
A few prerequisites that apply to all of these:
Docker and Docker Compose — All five services below run in containers. Install Docker on your server (the official docs for your OS are straightforward). You don’t need to understand Docker deeply to use it; you just need it installed. If you have never written a Compose file, the Nginx Proxy Manager guide walks through a complete one, and how to decide what goes in your Docker Compose stack covers what belongs in it.
A static local IP — Assign your server a static IP address on your router so it doesn’t change. Most home routers support DHCP reservations by MAC address, which is the easiest way.
Basic command line comfort — You’ll need to edit a text file and run a few commands. If you’ve done that before, you’re set.
1. Nextcloud — Your Own Cloud Storage
Nextcloud is a self-hosted alternative to Google Drive, iCloud, and Dropbox. It syncs files across your devices, has a web interface, and has mobile apps for iOS and Android.
Why it’s worth running: your files live on your hardware, not someone else’s. No storage limits except your own disk. No subscription fees.
The basic setup with Docker Compose takes 20-30 minutes. You’ll configure a container for Nextcloud itself and one for a database (MariaDB or PostgreSQL). After that, you access it from any browser on your network, and you can optionally expose it to the internet via a reverse proxy. Our step-by-step Nextcloud on Raspberry Pi guide has a working Compose file, storage layout, and remote access without a static IP.
Hardware note: Nextcloud runs fine on an N100 mini PC for personal use. If you want to run it for a family with heavy video syncing, you’ll want faster storage (NVMe over SATA) and potentially more RAM.
2. Pi-hole — Network-Wide Ad Blocking
Pi-hole is a DNS sinkhole that blocks ads and trackers at the network level. When a device on your network makes a DNS request for a known ad domain, Pi-hole returns nothing. The request never completes.
Why it’s worth running: it blocks ads on every device on your network, including devices that don’t support browser extensions (smart TVs, game consoles, phones, IoT devices). It also gives you visibility into what your devices are actually communicating with.
Pi-hole has low resource requirements. It runs on a Raspberry Pi 1 adequately. Setup involves running the Docker container, then pointing your router’s DNS to the Pi-hole’s IP address. After that, it works transparently.
The default blocklists catch most ads. You can add additional community blocklists for more coverage.
3. Vaultwarden — Self-Hosted Password Manager
Vaultwarden is a self-hosted, community-maintained server compatible with Bitwarden clients. You get all the Bitwarden apps (browser extension, desktop, mobile) pointing at your own server instead of Bitwarden’s.
Why it’s worth running: full control over your password vault. No subscription required for premium features (TOTP in the browser extension, file attachments). If Bitwarden’s service goes down or changes their pricing, your setup is unaffected. Our self-hosted password manager comparison covers its audit and backup caveats.
The tradeoff: you’re responsible for keeping it running and backed up. If your server dies and you haven’t backed up the vault database, you lose your passwords. Set up a 3-2-1 backup strategy to an external drive or cloud storage before relying on this for everything.
Security note: Vaultwarden requires HTTPS. Don’t expose it to the internet over plain HTTP. A reverse proxy with a Let’s Encrypt certificate handles this.
4. Home Assistant — Home Automation Hub
Home Assistant is an open-source platform for home automation. It integrates with hundreds of smart home devices and provides a local dashboard for controlling them.
Why it’s worth running: local control without depending on cloud services that get discontinued. Many smart home devices work locally when paired with Home Assistant even if the manufacturer’s cloud goes away.
Home Assistant is the most complex item on this list but also has the most active community. If you have any smart home devices, you’ll likely find integration guides already written.
The hardware requirement is modest: a Raspberry Pi 4 or a mini PC works fine. There’s also a dedicated Home Assistant OS you can install on its own machine if you want to keep things separate.
5. Jellyfin — Media Server
Jellyfin is a self-hosted media server for your video and music library. It streams your files to web browsers, mobile apps, smart TVs, and Chromecast.
Why it’s worth running: if you have a large local media library, Jellyfin makes it accessible on any device in your home (and optionally outside your home) with a clean interface. If you are weighing it against the popular paid option, see our Jellyfin vs Plex comparison.
The main requirement is hardware transcoding support if you want to stream to devices that can’t play your source formats directly. An N100 mini PC handles transcoding reasonably well. If you have a lot of 4K content, a machine with a dedicated GPU or Intel Quick Sync support will perform better.
Getting Started
The recommended order: Pi-hole first (low effort, immediate network-wide benefit), then Vaultwarden (high value, moderate setup), then Nextcloud.
Home Assistant and Jellyfin are more dependent on your specific situation. If you have smart home devices or a large media library, they’re worth it. Otherwise, get comfortable with the first three before adding more.
The investment in the first weekend of setup pays off over years of not paying subscription fees for services you control.
For the hardware guides, Docker walkthroughs, and backup references that pair with these five services, browse the full topic index.