Skip to main content
How-To

Want to Run Your Own Home Server? Here Is Everything You Actually Need to Get Started

I spent three weekends setting up a home server before I finally got it right. If you want to stop paying for cloud storage and streaming subscriptions, here is the no-fluff guide I wish I had from day one.

AI-Assisted Β· Editorially ReviewedEdmund A.June 19, 202611 min read
Want to Run Your Own Home Server? Here Is Everything You Actually Need to Get Started

Last year I was paying for Plex Pass, Google One, iCloud, and a Backblaze subscription all at the same time. That is over $25 a month just to access my own files and watch my own movies. It hit me one afternoon that I was basically renting access to my own data.

So I built a home server. And honestly, it changed how I think about digital ownership.

This is not a theoretical guide. I am going to walk you through exactly what I used, what I installed, and the specific steps that made it work. You can follow this even if you have never touched a command line before.


What Can a Home Server Actually Do?

A lot more than most people think. Here is what mine handles on a daily basis in 2026:

  • Streaming movies and TV shows to every device in my house via Jellyfin
  • Automatic backups from three laptops and two phones
  • A personal cloud (like Dropbox but on my own hardware)
  • A Pi-hole network-wide ad blocker
  • A local password manager via Vaultwarden
  • Home automation through Home Assistant

All of this runs on one small machine sitting on a shelf in my closet. It draws about 15 watts of power. My electricity cost for running it 24/7 is roughly $1.50 to $2.00 per month depending on local rates.

Key Stat: According to Backblaze's 2024 Drive Stats report, the average annual failure rate for consumer hard drives is around 1.54%. Running your own server does not eliminate risk β€” it means you control how you manage it.

Picking Your Hardware

This is where most guides lose people by suggesting you need a $500 machine. You do not.

Option 1: A Used Mini PC (My Recommendation)

I use a Beelink SER5 Max, which I picked up for around $170 on Amazon. It runs an AMD Ryzen 5 5560U, comes with 16GB of RAM, and has a 500GB NVMe SSD built in. That is more than enough to run everything I listed above simultaneously.

If you are outside the US, look for the Beelink Mini S12 Pro (around $130) or the CWWK N100 series. These ship globally and have become really popular in the homelab community through 2024 and 2025.

Option 2: A Raspberry Pi 5

The Raspberry Pi 5 (8GB RAM) costs about $80 from the official store or resellers. It is slower at transcoding video, but it handles backups, Pi-hole, and Vaultwarden without breaking a sweat. I would not use it as a primary Jellyfin server if you have more than two people streaming at once.

Option 3: Repurpose an Old Laptop

Seriously. If you have a laptop from 2017 or later collecting dust, that works. Just leave it plugged in, close the lid, and change the power settings so it does not sleep. I tested this on an old Lenovo ThinkPad T470 and it ran everything just fine.

Storage Drives

For media storage, I use a 4TB Seagate IronWolf NAS drive (around $90) connected via USB 3.0 in an enclosure. You can also buy a Western Digital Elements 4TB external drive for about $80 and it works fine. Fancy NAS enclosures are not required to start.


The Operating System: Ubuntu Server vs. Unraid vs. TrueNAS

Here is my honest take. If you are just starting out, use Ubuntu Server 24.04 LTS. It is free, has the best documentation, and works with basically everything.

Unraid (starts at $49 one-time license) is fantastic if you want a GUI and do not want to touch the command line much. I know people who swear by it. I personally prefer Ubuntu because I like knowing exactly what is running on my machine.

TrueNAS SCALE is excellent for pure storage and backup use cases. If media streaming is your main goal, I would skip it and stick with Ubuntu.

Installing Ubuntu Server 24.04

  1. Download the ISO from ubuntu.com/download/server
  2. Flash it to a USB drive using Balena Etcher (free, works on Windows/Mac/Linux)
  3. Boot your server machine from the USB (usually F12 or Delete at startup to access BIOS)
  4. Follow the installer β€” accept defaults except for storage: choose "Use entire disk" and enable LVM
  5. When it asks about OpenSSH, enable it. You will need this.
  6. Let it install and reboot

After reboot, log in with the username and password you set. You are now looking at a terminal. That is your server.


Setting Up Docker β€” This Is the Important Part

Almost everything you will install runs as a Docker container. Think of containers as self-contained apps that do not mess with each other or break your system. I spent way too long figuring this out before someone told me to just use Docker Compose from the start. Do not make my mistake.

Install Docker on Ubuntu

SSH into your server from your main computer. On Mac or Linux, open Terminal and type:

ssh yourusername@yourserverip

On Windows, use PuTTY or the built-in Windows Terminal. Then run these commands one at a time:

sudo apt update && sudo apt upgrade -y
curl -fsSL https://get.docker.com -o get-docker.sh
sudo sh get-docker.sh
sudo usermod -aG docker $USER
newgrp docker

Then install Docker Compose:

sudo apt install docker-compose-plugin -y

Test it works:

docker run hello-world

If you see a message saying "Hello from Docker!" you are good to go.


Installing Jellyfin for Media Streaming

Jellyfin is completely free and open source. No subscription, no account required. It streams to smart TVs, phones, tablets, and browsers. I have been using it since 2023 and I genuinely prefer it to Plex at this point.

Create a folder for your Docker configs:

mkdir -p ~/docker/jellyfin
cd ~/docker/jellyfin
nano docker-compose.yml

Paste this into the file:

version: "3"
services:
 jellyfin:
 image: jellyfin/jellyfin:latest
 container_name: jellyfin
 network_mode: host
 volumes:
 - /home/yourusername/jellyfin/config:/config
 - /home/yourusername/jellyfin/cache:/cache
 - /mnt/media:/media
 restart: unless-stopped

Replace /mnt/media with the actual path to your media drive. To save in nano: press Ctrl+X, then Y, then Enter.

Start Jellyfin:

docker compose up -d

Now open a browser on any device on your network and go to http://yourserverip:8096. The Jellyfin setup wizard will walk you through the rest.

Setting Up Automatic Backups

For backing up other computers to your server, I use Syncthing. It is free, peer-to-peer, and runs on Windows, Mac, Linux, Android, and iOS.

Install it on your server via Docker:

docker run -d \
 --name=syncthing \
 -e PUID=1000 \
 -e PGID=1000 \
 -p 8384:8384 \
 -p 22000:22000/tcp \
 -p 22000:22000/udp \
 -v /home/yourusername/syncthing/config:/config \
 -v /mnt/backups:/data \
 --restart unless-stopped \
 lscr.io/linuxserver/syncthing:latest

Access the Syncthing web interface at http://yourserverip:8384. Then install the Syncthing app on each device you want to back up, and pair them using the device ID shown in the interface.

I have three laptops and my phone all syncing to my server automatically. It happens in the background. I do not think about it.


Bonus: Add a Personal Cloud With Nextcloud

If you want a Dropbox replacement, Nextcloud is the answer. It has apps for every platform, supports file versioning, calendars, contacts, and even video calls.

"Nextcloud is what I show people when they ask me if you can really replace Google Drive with something self-hosted. The answer is yes, and it is not even close anymore."

The easiest way to get it running is with the official AIO (All-In-One) Docker image. One command:

docker run \
--sig-proxy=false \
--name nextcloud-aio-mastercontainer \
--restart always \
--publish 80:80 \
--publish 8080:8080 \
--publish 8443:8443 \
--volume nextcloud_aio_mastercontainer:/mnt/docker-aio-config \
--volume /var/run/docker.sock:/var/run/docker.sock:ro \
nextcloud/all-in-one:latest

Then go to https://yourserverip:8080 and follow the setup steps. The AIO interface handles everything including the database and Redis cache.

Making Your Server Accessible From Outside Your Home

This is optional but useful. The easiest method in 2026 is Cloudflare Tunnel β€” it is free and does not require you to open any ports on your router or have a static IP address.

  1. Create a free Cloudflare account and add a domain you own (a cheap .com domain from Porkbun costs about $9/year)
  2. In the Cloudflare dashboard, go to Zero Trust β†’ Access β†’ Tunnels
  3. Create a tunnel and copy the token it gives you
  4. On your server, run the cloudflared Docker container with that token
  5. Map your services (like Jellyfin on port 8096) to subdomains like jellyfin.yourdomain.com

After that, you can access your server from anywhere in the world with no VPN required. I stream movies to my phone when I travel using this exact setup.

Managing Everything With Portainer

Once you have a few containers running, keeping track of them gets messy. Portainer is a free web UI that lets you start, stop, and monitor all your Docker containers from a browser without touching the command line again.

Install it:

docker run -d \
 -p 9000:9000 \
 --name portainer \
 --restart always \
 -v /var/run/docker.sock:/var/run/docker.sock \
 -v portainer_data:/data \
 portainer/portainer-ce:latest

Access it at http://yourserverip:9000. Create your admin account on first launch.


What Does This Actually Cost?

Here is a real breakdown of what I spent to get my current setup running:

  • Beelink SER5 Max mini PC: $170
  • 4TB WD Elements external drive: $80
  • USB 3.0 hub (for extra drives): $15
  • Domain name (Porkbun): $9/year
  • Software: $0 (everything mentioned here is free and open source)

Total upfront: around $265. Monthly ongoing: about $2 in electricity plus $0.75/month for the domain.

Compare that to paying $10/month for Plex Pass, $10/month for Google One 2TB, and $9/month for iCloud 200GB. That is $29/month or $348/year just to access your own stuff.

My setup paid for itself in under a year. And now I actually own my data.

Look, this takes a weekend to set up properly. You will hit a weird error at some point β€” I always do. The r/homelab and r/selfhosted communities on Reddit are genuinely helpful when you get stuck. Post your error message and someone will usually respond within an hour.

Once it is running though? You barely think about it. It just works, quietly, in the background. And that is the whole point.

how-to
server
media
streaming,
backups,

Comments

0/1000

Get Weekly Tech Tips

Join 10,000+ readers getting expert tech insights delivered to their inbox.

No spam. Unsubscribe anytime.

Privacy Policy|Cookie Policy|Β© 2026 TechTrendi. All rights reserved.
Designed byNovaStream