Should I self-host Dropbox?
Nextcloud replaces Dropbox and half your Google account — and it's a platform that wants attention. Worth it if you're storing terabytes or serving a family; at 2TB-lite prices with honest maintenance minutes, the math says keep paying.
Dropbox's sync engine reliability — Nextcloud sync is good, not legendary
Zero-thought durability: your files are now on disks you own and must back up
Some maintenance months are 5 minutes; upgrade months are not
file sync across devices · sharing links · mobile photo backup · version history · collaborative docs (with apps)
* Percent of the subscription price. Your time is priced at the slider's rate — $0/h ("my homelab time is free and I love it") is a legitimate position. Every number is derived from the record, never hand-written. Price source, checked 2026-08-05.
Runs comfortably on a real VPS (2 GB+).


First boot takes a minute+ to install before status.php goes green — healthcheck needs the long start_period
Trusted-domain config bites the moment you access it from a non-localhost hostname
# Nextcloud — files + sync + sharing (replaces Dropbox). Apache image + postgres; add a
# reverse proxy with TLS in production. The verdict math is honest about maintenance:
# Nextcloud is a platform, and platforms want attention.
services:
nextcloud:
image: nextcloud:stable-apache
container_name: nextcloud
restart: unless-stopped
depends_on:
nextcloud-db:
condition: service_healthy
environment:
POSTGRES_HOST: nextcloud-db
POSTGRES_USER: nextcloud
POSTGRES_PASSWORD: nextcloud
POSTGRES_DB: nextcloud
NEXTCLOUD_ADMIN_USER: admin
NEXTCLOUD_ADMIN_PASSWORD: changeme-now # throwaway test value
NEXTCLOUD_TRUSTED_DOMAINS: localhost
ports:
- "8085:80"
volumes:
- nextcloud-data:/var/www/html
healthcheck:
test: ["CMD-SHELL", "curl -sf http://localhost/status.php | grep -q '\"installed\":true' || exit 1"]
interval: 10s
timeout: 10s
retries: 36
start_period: 60s
nextcloud-db:
image: postgres:16-alpine
restart: unless-stopped
environment:
POSTGRES_USER: nextcloud
POSTGRES_PASSWORD: nextcloud
POSTGRES_DB: nextcloud
volumes:
- nextcloud-pg:/var/lib/postgresql/data
healthcheck:
test: ["CMD-SHELL", "pg_isready -U nextcloud"]
interval: 5s
timeout: 5s
retries: 12
volumes:
nextcloud-data:
nextcloud-pg:
Want a guided install instead? caniselfhostit.com/dropbox has AI-agent prompts that assume a bare machine — that's their half of the stool, and it's good.
FULL TIMED LOG
# Timed setup log: Dropbox → nextcloud **Protocol:** v1 · **Verified by:** zernonia · **Date:** 2026-08-10 **Assistant:** claude-code · **Environment:** containerized runner, 2 vCPU class, Docker 29.3 / Compose v5.1 ## Timeline | Step | Time | |---|---| | Read upstream docs, draft compose with healthcheck | ~30 min | | **Boot: all services healthy in 122 s (measured, `compose up --wait`)** | — | | Endpoint-level workflow check (login/health/API serve) + re-run from clean volumes | ~30 min | | **Total: ~90 min** | | Boot and endpoint checks are machine-verified; `setup_min` is the wall-clock total for this session including authoring, diagnosis and re-runs. Endpoint-level ≠ full human UI workflow — dispute anything that doesn't reproduce (CONTRIBUTING.md). ## What broke - First boot takes a minute+ to install before status.php goes green — healthcheck needs the long start_period - Trusted-domain config bites the moment you access it from a non-localhost hostname ## Verdict-relevant notes - The per-TB math flips fast: at 2TB+ of family photos the storage line dominates and self-host wins big. The KINDA is doing a lot of honest work here.