Back to blog
By Hidde Kehrer9 min read

Where to actually run your self-hosted apps

Search for self-hosted apps and you get excellent answers to a question you did not ask. awesome-selfhosted is a superb catalogue. selfh.st tracks the ecosystem carefully. r/selfhosted will happily tell you which of the four photo managers is best this month.

All of it assumes you already have somewhere to put the software. That assumption is where most self-hosting attempts die: the docker-compose file is fine, and six months later nobody can remember which machine it is on, the TLS certificate expired, and the disk filled with logs.

So this is the other half. Four places to run self-hosted software, what each is genuinely good at, and how to pick.

First, sort your apps by what they need

The right home depends almost entirely on two things, and neither of them is the app's popularity.

How much disk does it need? Jellyfin, Immich, Nextcloud and the *arr stack are storage problems wearing an application costume. Vaultwarden, Uptime Kuma, Miniflux, n8n, a Discord bot and most dashboards fit comfortably in a few gigabytes and will never grow.

Does anything outside your house need to reach it? A media server you watch from the sofa has different requirements from a webhook receiver, a status page, or anything a friend is supposed to log into. Reachability is where home setups get expensive in time.

Sort your list on those two axes before reading further, because the answer genuinely differs per app and there is no rule that says everything has to live in the same place.

Option 1: a box at home

An old desktop, a mini PC, a Synology, a Pi. Buy once, run forever, and the electricity is the only recurring cost.

What it is good at. Storage, decisively. Terabytes cost nothing per month once the drives are bought, and no cloud provider will match a pile of local disks on price. It is also the only option where your data never leaves the building, which for a photo library or a password manager is a real argument rather than a rhetorical one.

What goes wrong. Reachability. Most home connections are behind CGNAT or a dynamic address, so you end up with dynamic DNS, a port forward and a certificate to maintain, or you install Tailscale and accept that only your own devices can reach the service. Tailscale is genuinely good and solves this for personal use. It does not help when a Stripe webhook needs to hit your endpoint.

The second problem is that the machine is now yours to keep alive. Power cuts, failed drives, an upgrade that does not come back up, and a house move.

Pick it for: media libraries, photo backup, anything where the storage bill is the whole cost and the audience is you.

Option 2: a rented VPS

A Linux box in a datacentre. As of 30 July 2026, Hetzner is €5.49/month for a CX23 with 2 vCPU, 4 GB RAM and 40 GB disk following the 15 June 2026 price adjustment, and €5.99 for the ARM CAX11 at the same spec. A DigitalOcean Basic droplet is $6/month for 1 vCPU, 1 GB and 25 GB.

What it is good at. It has a public IP, so reachability is solved on day one. It stays up without you. You get root, so any app that runs on Linux runs here, which is essentially all of them.

What goes wrong. You are the sysadmin now, and the job never ends: unattended upgrades, a firewall, nginx or Caddy in front, certificate renewal, systemd units, log rotation, and a backup you have not tested.

Cost also compounds in a way people underestimate. One VPS is cheap. The instinct that follows is to put everything on it, and then the scraper that leaks memory takes the password manager down with it. Splitting them means paying for two.

Pick it for: anything the outside world must reach, when you are comfortable operating a Linux box and the app is small enough to share.

Option 3: a VPS plus a platform layer

Coolify is the most popular version of this, and Dokploy is in the same category. You still rent the server; the platform layer gives you a dashboard, git-driven deploys, automatic TLS and one-click installs on top of it. Coolify is free to self-host with, in their words, "no limitation or restrictions." As of 30 July 2026, Coolify Cloud is $5/month for up to 2 servers and $3/month per additional server, and you still supply the servers.

What it is good at. It removes most of what makes option 2 tiring. Certificates, reverse proxying and deploys stop being your problem, and you keep root and the ability to run anything.

What goes wrong. You have added a system. When the platform layer breaks, you debug the platform layer as well as your app, and the abstraction is thinnest exactly when something has gone wrong. The underlying economics do not change either: the server bills around the clock whatever the apps are doing.

Pick it for: several small web apps on one box, where you want deploys to be boring and you are happy running one more piece of infrastructure.

Option 4: managed persistent machines

The newest shape. You get a real Linux machine with root and SSH, but the provider handles the network identity, the TLS and the lifecycle, and machines suspend when nothing is using them.

This is what boxd is. Ten machines for €20/month, each a KVM virtual machine with its own kernel, 2 vCPU, 8 GB RAM, 100 GB of persistent disk, and an automatic HTTPS domain at <name>.boxd.sh.

boxd machine new miniflux
ssh -t boxd.sh connect miniflux
docker compose up -d           # ordinary machine, ordinary answers
# reachable at https://miniflux.boxd.sh, TLS included

What it is good at. Reachability and certificates are handled, so option 1's hardest problem disappears. Idle machines suspend and resume in under a millisecond, so the pricing does not punish you for apps that are asleep 23 hours a day, which most self-hosted apps are. And because you get ten of them, one app per machine stops being a luxury. The scraper that leaks memory cannot take down the password manager, because they are separate virtual machines with separate kernels.

What goes wrong. The disk is 100 GB per machine and the size is fixed, so a media library is out. There is one region (EU) and custom domains are not available yet, so if you need photos.yourname.com rather than photos-yourname.boxd.sh, this is not it today. And the €2-per-machine arithmetic only works if you run ten; one machine costs the same €20 as ten.

Pick it for: a collection of small always-on services that need to be reachable, where you want isolation between them and no interest in operating a server.

The four side by side

Pricing as of 30 July 2026, taken from each provider's own pricing page and linked at the point of the claim. No benchmarks here, only what each provider publishes plus the operational work that never appears on a pricing page.

Box at homeRented VPSVPS + CoolifyManaged persistent machines
Typical costHardware once, then electricity€5.49/mo Hetzner CX23, $6/mo DO BasicSame server cost; Coolify free self-hosted€20/mo for 10 machines on boxd
Storage ceilingTerabytes, cheaply25–40 GB at entry tierSame as the VPS100 GB per machine, fixed
Reachable from outsideHard (CGNAT, dynamic DNS, or Tailscale for your own devices only)Yes, public IPYes, with TLS handledYes, HTTPS URL per machine
Who does TLS and upgradesYouYouCoolify does TLS; you do the OSIncluded
Cost while an app is idleElectricityFull rate, around the clockFull rate, around the clockMachines suspend
Isolation between appsWhatever you set upShared box unless you pay twiceContainers on one boxSeparate VM per app

A rule of thumb

Nobody has to pick one. The setup most self-hosters end up happy with runs on two:

  • Storage-heavy and private at home. Jellyfin, Immich, Nextcloud, the backups.
  • Reachable and small somewhere with a public address and a certificate. Vaultwarden if you want it available away from home, Uptime Kuma so it can actually see when the house is down, webhook receivers, bots, status pages, anything a friend logs into.

The mistake is putting the second category at home and then spending a year fighting CGNAT, or putting the first category in the cloud and paying rent on terabytes.

If your list is mostly small services and mostly always-on, the per-app economics are what decide it, and that is where a machine that sleeps when nothing is using it pulls ahead of a VPS that bills at full rate through the night.

Related reading

You can have a machine running in about a minute. SSH in, docker compose up, and it is reachable on a real URL with a real certificate.


Last verified: 2026-07-30. Pricing and platform details change; send corrections to hello@boxd.sh.

Frequently asked

Where should I run my self-hosted apps?
It depends on storage and reachability, not on which app it is. Storage-heavy and private (Jellyfin, Immich, Nextcloud, backups) belongs on a box at home where terabytes are free after the drives. Small and reachable (Vaultwarden, Uptime Kuma, bots, webhook receivers, status pages) belongs somewhere with a public address and a certificate. Most happy setups use both.
Is a home server or a VPS better for self-hosting?
A home server wins on storage cost and privacy and loses on reachability — most home connections are behind CGNAT or a dynamic address, so you end up maintaining dynamic DNS and port forwards, or using Tailscale and accepting that only your own devices can reach the service. A VPS solves reachability on day one and costs you the sysadmin work plus a bill that runs around the clock.
Do I need Coolify to self-host apps?
No, but it removes most of what makes running a VPS tiring: certificates, reverse proxying and deploys stop being your problem. Coolify is free to self-host; Coolify Cloud is $5/month for up to two servers plus $3/month per additional server, and you still supply the servers. The trade is one more system to debug when something breaks.
Can I self-host apps on boxd?
Yes, for the small always-on category. Each machine is a full Ubuntu VM with root, Docker preinstalled, 100 GB of disk and an automatic HTTPS URL, so `docker compose up -d` is the whole procedure. It is not the answer for a media library — the disk is a fixed 100 GB per machine, there is one region (EU), and custom domains are not available yet.
Should I run all my self-hosted apps on one server?
It is the cheapest option and the reason people end up rebuilding. One badly behaved app takes the others down with it, and upgrades become an all-or-nothing event. If separating them costs you another full VPS bill, the pressure to colocate is real; if you have ten machines under one subscription, one app per machine stops being a luxury.

Read next