Disclosure: we may earn a commission or referral reward from CloudCone, Contabo, DigitalOcean (account credit, not cash), Hostwinds, InterServer, RackNerd, VPSDime and Vultr if you sign up through our links. It does not change the price you pay. Every other provider pays us nothing. Prices in this guide are as of the date shown and may have changed; see the comparison pages for the latest checked prices.
Guides · FOR
Best hosting for a Docker / self-hosted stack in 2026
Some prices quoted in this guide are out of date. It is being rebuilt on our price index; for current prices use the comparison pages, which show when each price was checked.
The self-hosted revival is real: Nextcloud instead of Dropbox, Vaultwarden instead of 1Password, Immich instead of Google Photos, Home Assistant, Ghost, Umami, PhotoPrism, Overseerr, all of it. Almost every one runs as a docker-compose.yml on a plain Linux VPS. The right host for this kind of stack is dictated by three things: RAM, storage per dollar, and bandwidth allowance.
Prices as of 2026-09-22.
What a self-hosted Docker stack actually needs
- RAM: 4-8 GB comfortable. Each container idle: 50-200 MB. A typical self-hosted stack (Nextcloud + Vaultwarden + Immich + Postgres + Redis + Caddy + Umami) sits at ~2-3 GB. 8 GB gives headroom for photo processing and future additions.
- Storage: 100 GB minimum, 300+ GB comfortable. Photos, files and backups add up. Immich alone can eat 100 GB in a year.
- vCPU: 4 comfortable. Individual containers are light; photo/video processing is CPU-bursty.
- Bandwidth: 10-20 TB. Backups and photo/video access consume real bandwidth.
- Static IP. All included at every provider we track.
Recommended picks
Small self-hosted homelab-in-the-cloud ($5-10/mo)
Hetzner CX32 at $7.60/mo — 4 vCPU, 8 GB RAM, 80 GB NVMe, 20 TB transfer.
Everything a modest self-hosted stack needs. Install Docker + docker-compose, wire up your compose.yml, done. 80 GB storage constrains photo hoarders; add block storage at €0.052/GB/mo if needed.
Storage-heavy self-hosted ($8-12/mo)
Contabo Cloud VPS 4 at $7.79/mo — 4 vCPU, 8 GB RAM, 100 GB NVMe.
Contabo Cloud VPS 6 at $10.62/mo — 6 vCPU, 12 GB RAM, 200 GB NVMe. Ideal for Immich, Nextcloud, and PhotoPrism at real photo library scale.
Bandwidth-heavy self-hosted ($5-10/mo)
Hetzner CX22 at $4.60/mo — 20 TB transfer at every plan. Best-in-class if you sync large files or share photo albums.
Massive self-hosted ($20-40/mo)
Contabo Cloud VPS 8 at $19.82/mo — 8 vCPU, 24 GB RAM, 300 GB NVMe.
Or Hetzner CCX / Auction dedicated for real ops consistency.
The base docker-compose pattern
Every self-hosted stack starts with a reverse proxy (Caddy or Traefik) handling SSL and routing:
```yaml
services:
caddy:
image: caddy:latest
restart: unless-stopped
ports:
- "80:80"
- "443:443"
volumes:
- ./Caddyfile:/etc/caddy/Caddyfile
- caddy_data:/data
- caddy_config:/config
nextcloud:
image: nextcloud:latest
restart: unless-stopped
volumes:
- nextcloud_data:/var/www/html
environment:
- MYSQL_HOST=db
depends_on:
- db
db:
image: mariadb:latest
restart: unless-stopped
volumes:
- db_data:/var/lib/mysql
volumes:
caddy_data:
caddy_config:
nextcloud_data:
db_data:
```
Caddy handles Let's Encrypt automatically. docker-compose up -d. Done.
Backups for self-hosted
Non-negotiable:
- restic or Borg encrypted backups to Backblaze B2 ($6/TB-month).
- Nightly.
- Includes the Docker volumes and any bind mounts with real data.
Restic to B2 setup:
```bash
apt install restic
restic -r b2:my-selfhost-bucket:/ init
Nightly backup
0 3 * restic -r b2:my-selfhost-bucket:/ backup /var/lib/docker/volumes /home/user/data
```
Common self-hosted apps and their resource needs
| App | RAM | Notes |
|---|---|---|
| Nextcloud | 500 MB | Reasonable at 500 MB, better at 1 GB |
| Vaultwarden | 50 MB | Extremely light |
| Immich | 500 MB - 1.5 GB | Machine learning for face recognition uses CPU heavily |
| Home Assistant | 200 MB | Depends on integrations |
| GitLab | 4+ GB | Heavy. Small teams should use Forgejo/Gitea (~200 MB) |
| Ghost | 200 MB | |
| Umami | 100 MB | |
| PhotoPrism | 500 MB | ML processing is CPU-bursty |
| Overseerr | 100 MB | |
| Uptime Kuma | 150 MB |
Stack all of these on Hetzner CX32 (8 GB) and you're at ~4 GB steady state. Comfortable.
Which one you should actually pick
- Standard self-hosted stack, moderate storage → Hetzner CX32 at $7.60/mo.
- Photo / file-hoarding scale → Contabo Cloud VPS 6 at $10.62/mo (200 GB) or CVS 8 at $19.82 (300 GB).
- Bandwidth-heavy (external file sharing, video) → Hetzner CX32 for the 20 TB.
- Compute-heavy (ML processing, GitLab, media transcoding) → Hetzner CPX31 at $15.60/mo (AMD, more consistent CPU) or Vultr HF.
Related guides
- Cheapest VPS with 100 GB storage
- Cheapest 4 vCPU / 8 GB VPS
- Best hosting for a Postgres database server — if your self-hosted stack includes serious data.
- Hetzner vs Contabo 2026 — the two providers in the running.
Prices as of 2026-09-22.