Guides / LVL 4 Advanced

Self-Host Your Services

Run your own server. Own your data for real.

Why Self-Host?

De-Googling is great, but if you replace Google Drive with Proton Drive, you've just moved your data from one company to another. The real power move is running your own services on your own hardware. When you self-host, your passwords, your files, your photos, and your data live on a machine that sits in your house. No company can lock you out, raise prices, change terms of service, or mine your data for ads.

PewDiePie's self-hosting journey was, in his own words, painful. His Vaultwarden setup "took 2 days" and involved a lot of staring at a "spinny circle" that wouldn't load. But once it was running, he described it as one of the most satisfying things he's done with technology. His setup: a Raspberry Pi 5 as his main server, with a Steam Deck as a secondary server for experimentation.

You don't need to be a sysadmin. Docker has made self-hosting dramatically easier. If you can copy and paste commands into a terminal, you can self-host.

Hardware: What You Need

Step 1

Get a Raspberry Pi 5

The Raspberry Pi 5 is a tiny computer the size of a credit card that costs about $60-80. It's powerful enough to run a dozen self-hosted services simultaneously. PewDiePie uses one as his main server. You'll also need:

  • A microSD card (32 GB minimum, 64 GB recommended) — This is your "hard drive." Get a fast one (A2 speed class).
  • A USB-C power supply — The official Raspberry Pi 5 power supply is best (5V 5A). Using a random phone charger can cause instability.
  • An ethernet cable — WiFi works but ethernet is more reliable for a server.
  • Optional: An external SSD — If you're hosting files (Nextcloud, Immich), you'll want more storage than a microSD card provides. A 1 TB USB SSD is about $60.

Alternative: Old laptop or desktop. Any old computer with at least 4 GB of RAM can be a server. Install a lightweight Linux distro on it and follow the same Docker steps below. The downside is power consumption — a Pi uses about 5 watts, while an old laptop uses 30-60 watts.

Alternative: VPS (Virtual Private Server). PewDiePie mentioned Hostinger as a sponsor. A VPS is a virtual machine in a data center that you rent. Advantages: always on, has a public IP (easier for remote access), no hardware maintenance. Disadvantages: your data is on someone else's hardware, and there's a monthly cost ($5-15/month). Good for services you need to access from anywhere.

Setting Up Your Server

Step 2

Install the OS

Download the Raspberry Pi Imager from raspberrypi.com. Insert your microSD card, open the Imager, and select Raspberry Pi OS Lite (64-bit) — you don't need a desktop environment for a server. Before writing, click the gear icon to:

  • Set a hostname (e.g., "homeserver")
  • Enable SSH (so you can control it from your main computer)
  • Set a username and password
  • Configure WiFi (if not using ethernet)

Write the image, put the microSD in the Pi, plug in ethernet and power. After a minute, you should be able to SSH in from your main computer: ssh username@homeserver.local

Step 3

Install Docker

Docker lets you run applications in isolated containers. Instead of installing software directly on the OS (which can create conflicts and mess things up), each service runs in its own container with its own dependencies. Think of it like running each app in its own mini virtual machine.

Run these commands on your Pi:

  • curl -fsSL https://get.docker.com -o get-docker.sh
  • sudo sh get-docker.sh
  • sudo usermod -aG docker $USER
  • Log out and back in for the group change to take effect

Also install Docker Compose, which lets you define multiple containers in a single YAML file: sudo apt install docker-compose-plugin

Services to Self-Host

Step 4

Vaultwarden — Password Manager

This is the one PewDiePie said "took 2 days" and had the dreaded "spinny circle." Vaultwarden is a lightweight, self-hosted implementation of the Bitwarden password manager. It's compatible with all Bitwarden apps (browser extensions, mobile apps, desktop apps) but runs on your own hardware.

The "2 days" part was mostly about getting HTTPS working (Vaultwarden requires it for security). Here's the trick that saves you time: use Caddy as a reverse proxy — it handles HTTPS certificates automatically.

Create a docker-compose.yml file that defines Vaultwarden and Caddy together. Vaultwarden runs on port 80 inside its container, Caddy sits in front and handles HTTPS. Point a domain or subdomain at your server's IP, and Caddy gets a free Let's Encrypt certificate for you.

Why this matters: Your passwords are the keys to your entire digital life. Having them on Google's servers or LastPass (which has been breached multiple times) is a real risk. Self-hosted Vaultwarden means your encrypted password vault lives on your hardware.

Step 5

Nextcloud — Cloud Storage

Nextcloud is your Google Drive replacement. Files, contacts, calendar, notes, and more — all self-hosted. It has desktop sync clients (like Dropbox) and mobile apps.

Deploy it with Docker using the official Nextcloud image and a MariaDB or PostgreSQL database. Connect an external SSD for file storage — the microSD card is not ideal for heavy file operations.

Nextcloud can be slow on a Raspberry Pi with many users, but for personal use (1-3 users), it works fine. If performance is an issue, consider running it on a more powerful machine or VPS.

Step 6

Pi-Hole — DNS-Level Ad Blocking

Pi-Hole blocks ads and trackers at the DNS level for your entire network. Every device connected to your home WiFi — phones, tablets, smart TVs, IoT devices — gets ad blocking without installing anything on the device itself.

Set up Pi-Hole in Docker, then change your router's DNS settings to point at your Pi's IP address. Pi-Hole comes with a web dashboard where you can see exactly what's being blocked (spoiler: your smart TV phones home to tracking servers hundreds of times per day).

Bonus: Pi-Hole can also block YouTube ads at the DNS level, though Google constantly changes their ad-serving domains to circumvent this. It works better as a complement to uBlock Origin than a replacement.

Step 7

File Browser — Simple File Access

If Nextcloud feels like overkill and you just want a simple web interface to browse and download files from your server, File Browser is a lightweight alternative. One Docker container, minimal configuration, and you've got a clean web-based file manager.

PewDiePie's Setup

For reference, here's what PewDiePie runs:

  • Raspberry Pi 5 — Main server running Vaultwarden, Pi-Hole, and other services
  • Steam Deck — Secondary server for experimentation (yes, a Steam Deck can run Docker)
  • Hostinger VPS — For services that need to be accessible from outside his home network

You don't need all of this. Start with a Pi, get Vaultwarden and Pi-Hole running, and expand from there. Each new service you add is another piece of your data you've taken back.

Remote Access

If you want to access your self-hosted services from outside your home, you have options:

  • Tailscale — Creates a private VPN between your devices. Free for personal use. By far the easiest option.
  • Cloudflare Tunnels — Exposes your services to the internet through Cloudflare's network without opening ports on your router.
  • WireGuard — A fast, modern VPN you run on your server. More setup than Tailscale but no third-party dependency.
  • Port forwarding + Dynamic DNS — The traditional approach. Works but exposes your server directly to the internet, which has security implications.

Honest Downsides

  • Maintenance is on you. When Google Drive goes down, Google fixes it. When your Nextcloud goes down at 2 AM, you fix it. You need to update containers, monitor disk space, and handle backups. It's not a lot of work once things are running, but it's not zero.
  • Uptime is your responsibility. If your power goes out, your Pi goes offline, and your password manager stops syncing. If your microSD card dies (and they do), you lose everything that isn't backed up. Set up automatic backups to an external drive or remote location.
  • Initial setup is genuinely hard. PewDiePie wasn't exaggerating about the "2 days" for Vaultwarden. Getting HTTPS, DNS, reverse proxies, and Docker networking to all work together is where most people get stuck. The good news: once it works, it just keeps working.
  • Security is your responsibility. A misconfigured self-hosted service exposed to the internet is worse than using Google. Keep software updated, use strong passwords, and don't expose services to the internet unless you know what you're doing. Tailscale is the safest option for remote access.
  • A Raspberry Pi has limits. It's fine for a handful of services and 1-3 users. If you want to run Immich (photo AI processing), a media server (Jellyfin), and Nextcloud all at once, you'll want something more powerful — an old PC, a mini server like an Intel NUC, or a VPS.