Self-Hosting Guide — Run Your Own Services
A complete beginner-to-advanced guide for self-hosting file storage, media servers, email, DNS, and more on your own hardware.
Why Self-Host?
Self-hosting means running software on hardware you control — whether that's a Raspberry Pi under your desk, a NAS in the cupboard, or a dedicated server in a rack. Instead of relying on Google Drive, Dropbox, or iCloud, you run equivalent (often better) open-source alternatives on your own terms.
The barriers to entry have never been lower. A £35 Raspberry Pi can run a surprising number of services. A £300 NAS can replace most cloud subscriptions. And with Docker, deploying new software takes minutes, not days.
Getting Started: Your First Self-Hosted Service
The easiest first step is file synchronisation. Nextcloud and Syncthing both replace cloud storage with something you own.
Nextcloud — Your Private Cloud
Nextcloud is a full-featured cloud platform: file sync, calendar, contacts, notes, tasks, video calls, and more.
Minimum requirements:
- Any Linux machine with 2GB+ RAM
- 10GB+ storage (expandable)
- Docker or bare-metal install
Quick Docker setup:
docker run -d \
--name nextcloud \
-p 8080:80 \
-v nextcloud_data:/var/www/html \
nextcloud:latestVisit http://your-server:8080 and follow the setup wizard. For production use, add a reverse proxy with TLS (covered in our Networking guide).
Syncthing — Peer-to-Peer File Sync
Syncthing is lighter than Nextcloud — it synchronises folders between devices without a central server. No accounts, no cloud, no single point of failure.
Best for: Keeping folders in sync across multiple machines without a web interface.
Essential Self-Hosted Services
| Service | What It Replaces | Software | Difficulty |
|---|---|---|---|
| File sync | Google Drive, Dropbox | Nextcloud, Syncthing | Easy |
| Media server | Netflix (for owned media) | Jellyfin, Plex | Easy |
| Password manager | LastPass, 1Password | Vaultwarden (Bitwarden) | Easy |
| Photo backup | Google Photos, iCloud | Immich, PhotoPrism | Medium |
| Gmail, Outlook | Mail-in-a-Box, Mailu | Hard | |
| DNS | ISP default | Pi-hole, AdGuard Home | Easy |
| VPN | NordVPN, ExpressVPN | WireGuard, Tailscale | Medium |
| Wiki/Notes | Notion, Evernote | BookStack, Outline | Easy |
| Bookmarks | Browser sync | Linkding, Shiori | Easy |
| RSS reader | Feedly | Miniflux, FreshRSS | Easy |
| Code hosting | GitHub (private repos) | Gitea, Forgejo | Medium |
| Monitoring | UptimeRobot | Uptime Kuma | Easy |
Docker: The Self-Hoster's Best Friend
Almost every service listed above can be deployed with Docker. Docker packages an application and its dependencies into a container, so you don't need to worry about conflicting libraries or complex installations.
Docker Compose
For multi-service stacks, Docker Compose lets you define everything in a single YAML file:
version: "3"
services:
nextcloud:
image: nextcloud:latest
ports:
- "8080:80"
volumes:
- nc_data:/var/www/html
restart: unless-stopped
vaultwarden:
image: vaultwarden/server:latest
ports:
- "8081:80"
volumes:
- vw_data:/data
restart: unless-stopped
volumes:
nc_data:
vw_data:Run docker compose up -d and both services start. Run docker compose down to stop them. It's that straightforward.
Choosing Your Platform
| Platform | Cost | Power | Best For |
|---|---|---|---|
| Raspberry Pi 5 | £55–80 | Low (4 cores, 8GB) | DNS, VPN, light services |
| Mini PC (N100) | £120–200 | Medium (4 cores, 16GB) | Docker host, moderate loads |
| Synology NAS | £250–600 | Medium | File storage + Docker |
| Custom server | £300+ | High | Heavy workloads, VMs |
| Refurb enterprise | £100–300 | High | Budget powerhouse (noisy) |
Security Basics for Self-Hosters
Self-hosting comes with responsibility. You're the sysadmin now.
- Never expose services directly — Use a reverse proxy (Caddy, Traefik, or nginx)
- Always use HTTPS — Let's Encrypt certificates are free and automated
- SSH keys only — Disable password authentication for SSH
- Run fail2ban — Automatic IP banning after failed login attempts
- Keep containers updated — Use Watchtower or manual
docker compose pull - Firewall everything — Only open ports you actually need (see Networking guide)
- Backup, backup, backup — See our Backup Strategies guide
Beyond the Basics
Once you're comfortable with Docker and a few services, consider:
- Reverse proxy with automatic TLS — Caddy or Traefik for hassle-free HTTPS
- Single sign-on (SSO) — Authelia or Authentik for one login across all services
- Monitoring and alerting — Uptime Kuma, Grafana + Prometheus
- Automated backups — Restic or BorgBackup on a cron schedule
- Container orchestration — Docker Swarm or Kubernetes for multi-node setups
The beauty of self-hosting is that you can start small and grow. Every service you add teaches you something new about networking, Linux, and how the internet actually works.
Product links may include affiliate partnerships — see our affiliate disclosure for details.