How to self-host a server: a beginner's guide
Self-hosting means running the services you'd otherwise rent — file sync, photo backup, media streaming, notes, ad blocking — on hardware you control. People come to it for different reasons: privacy, cost, tinkering, or plain dissatisfaction with subscription creep. Whatever the motive, the learning curve is the same, and it's gentler than it looks if you climb it in the right order.
Pick your hardware: three good answers
- An old PC or laptop — the best £0 you'll ever spend. Any machine from the last decade with 4GB+ RAM runs a dozen typical services. Laptops even come with a built-in UPS (the battery).
- A Raspberry Pi or mini PC — silent, sips power (a Pi costs pennies a week to run; a used mini PC not much more and it's considerably faster). The classic dedicated-home-server choice.
- A cheap VPS — not at home at all. Right answer when you want services reachable from anywhere without touching your home network, or your ISP gives you CGNAT (no public IP — common on UK ISPs now). A few pounds a month; see how to choose one.
Plenty of self-hosters end up with both: a home box for bulky private things (media, backups) and a small VPS for anything public-facing.
Put Linux on it and lock the door
Install a boring server OS — Debian or Ubuntu Server are the community defaults, which matters because every tutorial assumes them. Then spend ten minutes on our server hardening checklist (SSH keys, firewall, automatic updates). Do this before installing anything fun. It's the difference between a hobby and an incident.
Start with one service that pays rent immediately
Resist the urge to deploy fifteen things in a weekend. One service, working reliably, that your household actually uses — then the next. Good first picks:
- Pi-hole or AdGuard Home — network-wide ad and tracker blocking. Visible benefit to everyone in the house within the hour.
- Jellyfin — your films and music, streamed to every device, no subscription. (Test streams with VLC — our guide.)
- Nextcloud — file sync, calendar, contacts; the get-off-Google workhorse.
- Immich — genuinely excellent Google Photos replacement, the standout self-hosting project of recent years.
- Vaultwarden — Bitwarden-compatible password manager server. (This one especially: read the backups section first.)
Learn Docker early — it's how the ecosystem ships
Nearly every self-hosted project publishes a container image and a
docker compose file. Compose is the part worth learning first: one
YAML file describes the service, its storage and its ports, and
docker compose up -d brings it to life — reproducibly, without
dependency fights, and easy to remove cleanly when you change your mind:
services:
jellyfin:
image: jellyfin/jellyfin
ports:
- "8096:8096"
volumes:
- ./config:/config
- /srv/media:/media:ro
restart: unless-stopped
That file is the documentation of how your server is set up — keep your compose files in one directory (many people version them with git) and rebuilding a dead server becomes an afternoon, not an archaeology dig.
The three lessons everyone learns the hard way
- Backups before public exposure, before everything. A self-hosted service without backups is data you've volunteered to lose. Rule of thumb: config + data to a second disk nightly, and a copy off the machine (restic or Borg to another box, or object storage). Then test a restore.
- Don't open ports to the internet on day one. Everything above works fine on your LAN. When you do want remote access, start with Tailscale or WireGuard (private, no exposed ports, CGNAT-proof) rather than port forwarding. Public exposure with a reverse proxy and HTTPS is a later chapter.
- Updates are part of the hobby. A service you're not willing
to occasionally update is a service you shouldn't expose. Monthly
docker compose pulland OS patches — put it in the calendar.
Where this road leads
After a few months you'll have opinions about reverse proxies, a favourite dashboard, and a folder of compose files that would rebuild your digital life on any machine in an afternoon. That knowledge transfers directly to paid infrastructure too — which is exactly where our VPS guide and hosting explainers pick up.