adze.uk — The Digital Toolshed

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:latest

Visit 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

ServiceWhat It ReplacesSoftwareDifficulty
File syncGoogle Drive, DropboxNextcloud, SyncthingEasy
Media serverNetflix (for owned media)Jellyfin, PlexEasy
Password managerLastPass, 1PasswordVaultwarden (Bitwarden)Easy
Photo backupGoogle Photos, iCloudImmich, PhotoPrismMedium
EmailGmail, OutlookMail-in-a-Box, MailuHard
DNSISP defaultPi-hole, AdGuard HomeEasy
VPNNordVPN, ExpressVPNWireGuard, TailscaleMedium
Wiki/NotesNotion, EvernoteBookStack, OutlineEasy
BookmarksBrowser syncLinkding, ShioriEasy
RSS readerFeedlyMiniflux, FreshRSSEasy
Code hostingGitHub (private repos)Gitea, ForgejoMedium
MonitoringUptimeRobotUptime KumaEasy

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

PlatformCostPowerBest For
Raspberry Pi 5£55–80Low (4 cores, 8GB)DNS, VPN, light services
Mini PC (N100)£120–200Medium (4 cores, 16GB)Docker host, moderate loads
Synology NAS£250–600MediumFile storage + Docker
Custom server£300+HighHeavy workloads, VMs
Refurb enterprise£100–300HighBudget 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.