A VPS for Self-Hosted Apps: n8n, Uptime Kuma, Nextcloud and Friends
The self-hosting movement has a simple economic argument: n8n replaces Zapier, Uptime Kuma replaces a monitoring service, Nextcloud replaces Dropbox, Plausible replaces paid analytics. Together they fit on one $6-12 VPS. The subscriptions they replace can run to $50-100/mo. The catch is that you become the operations team.
Sizing is forgiving. Most self-hosted tools idle at a few hundred MB of RAM, so a 2GB instance runs three or four of them comfortably, and 4GB runs a small fleet. RAM is the binding constraint (CPU barely matters for personal-scale use), and the classic mistake is Nextcloud plus its database plus n8n's workflows on a 1GB box, which works right up until an update triggers the OOM killer. Hetzner's RAM-heavy instances shine here. DigitalOcean and Vultr work fine too.
Run everything in Docker Compose from day one, one directory per app with its compose file and volumes. It keeps ports and dependencies from tangling, makes updates a pull-and-restart, and, above all, makes the whole server reproducible: with your compose files in git and your volumes backed up, rebuilding on a fresh box is an afternoon, not an archaeology dig. Put Caddy in front as the reverse proxy. Its automatic HTTPS removes the single most fiddly part of multi-app hosting.
Security is not optional, because these apps hold real data and the internet scans constantly. The baseline: SSH keys only, a firewall exposing only 80/443, unattended security updates, and anything admin-flavored (databases, dashboards you don't need public) bound to localhost or behind a VPN like Tailscale rather than open to the world.
Backups are the whole game. Every app on the box shares one disk, one host, one failure domain, so the whole setup is only as durable as your worst backup. Nightly volume snapshots pushed off-server (restic to any S3-compatible storage costs pennies) plus the provider's snapshot feature covers it. Then actually test a restore once. An untested backup is a hope, not a plan.
The Provider Finder at /finder matches RAM-per-dollar to your app list. Weight the cost slider up and check the self-host constraint in the advanced version.