The case for self-hosting
Every time a SaaS product changes its pricing, kills a feature, or gets acquired and shut down, the same conversation happens: "I should just host this myself." Most people never follow through. I did, and it has been worth it.
What self-hosting means
Self-hosting means running software on hardware you control instead of using someone else's service. Instead of Google Drive, you run Nextcloud. Instead of paying for a password manager subscription, you run Vaultwarden. Instead of Notion, you run something like Outline or BookStack.
The software runs on your server (at home or on a rented VPS), you control the data, and you decide when and how things get updated.
Why I do it
Privacy. My files, notes, passwords, and photos are on my hardware. No company is scanning them for ad targeting or training AI models on my data. This matters more to me than it used to.
Control. When Google killed Google Domains, I was unaffected because I manage my own DNS. When Heroku killed their free tier, my self-hosted apps kept running. Depending on services you do not control is a risk, and that risk increases every year.
Cost. This one surprised me. I run over a dozen services that would cost $50-100/month in SaaS subscriptions. My homelab electricity cost is around $10/month, and the hardware paid for itself within the first year.
Learning. Running production-grade services teaches you things that no tutorial can. Networking, security, backup strategies, monitoring, disaster recovery. These skills transfer directly to professional work.
What I self-host
Here is what I currently run:
- Nextcloud for file storage and sync (replaces Google Drive/Dropbox)
- Vaultwarden for password management (replaces 1Password/Bitwarden cloud)
- Immich for photo management (replaces Google Photos)
- Uptime Kuma for monitoring my services
- Pi-hole for network-wide ad blocking
- Caddy as a reverse proxy with automatic HTTPS
- WireGuard for remote access to everything
Each of these runs in Docker on a Proxmox VM, backed by TrueNAS for storage. The whole setup is managed through Portainer or Docker Compose files depending on the service.
The honest tradeoffs
Self-hosting is not free in terms of effort. Here is what it actually costs:
Initial setup time. Expect to spend a weekend getting the basics working. Networking, reverse proxy, VPN access. It gets easier after the first few services, but the learning curve is real.
Maintenance. Things break. Docker images need updating. Drives fail. Security patches need applying. I spend maybe 1-2 hours per month on maintenance, but some months it is zero and others it is more.
Reliability. Your internet goes down, your services go down. Your power goes out, your services go out. For critical things like password management, I keep offline backups and the mobile app caches data locally. But your self-hosted setup will never match the uptime of a major SaaS provider.
Backups are your responsibility. No one is backing up your data for you. If you do not set up proper backups (and test them), you will lose data eventually. This is the part most people underestimate.
How to start
Do not try to replace everything at once. Pick one service that would be useful and set it up. Pi-hole is a great first project because it is simple, immediately useful, and teaches you Docker basics.
Once you are comfortable with Docker and basic networking, add more services one at a time. Each new service is easier than the last because you have the infrastructure in place.
When SaaS is better
For anything where uptime is critical and you cannot tolerate downtime, think carefully about whether self-hosting is worth it. I self-host my email with Mailcow and it works well, but it took real effort to get deliverability right with SPF, DKIM, and DMARC. If you do not want to deal with that, a managed provider is a reasonable choice.
For collaboration tools used by a team, SaaS is usually better because everyone needs reliable access and you do not want to be the on-call sysadmin for your coworkers.
Self-hosting works best for personal services, development tools, and anything where a few hours of downtime is acceptable.
Sources
Related posts
Self-hosting with Coolify: a PaaS on your own server
How Coolify turns your VPS into a Heroku-like platform for deploying apps, databases, and services with a clean web UI.
Backup strategies for self-hosted data
The 3-2-1 backup rule applied to self-hosted services, with practical tools and patterns I use to protect my data.
Self-hosting a media server with Jellyfin
Setting up Jellyfin to stream movies, music, and photos across all my devices without a Plex subscription.
Enjoying the blog? Subscribe via RSS to get new posts in your reader.
Subscribe via RSS