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

Prices as of 2026-09-22.