February 28Feb 28 Dropbox DockerA Docker container that runs the official Dropbox headless daemon on Linux. Built for homelabs that need reliable, hands-off Dropbox sync — especially large accounts with hundreds of thousands of files.Docker Hub: https://hub.docker.com/r/islamdiaa/dropbox-docker GitHub: https://github.com/islamdiaa/dropbox-dockerWhy I built thisEvery Dropbox Docker image I found was either abandoned, crashing on large accounts, or missing basic things like health checks and graceful shutdown. I run a 1M+ file Dropbox account on my Unraid server and needed something that wouldn't fall over. The existing images (otherguy/docker-dropbox, janeczku/dropbox) are unmaintained and crash on large accounts due to a Rust panic in Dropbox's telemetry code. This container fixes that.FeaturesTelemetry crash fix — blocks the analytics endpoint that causes a known Rust panic during indexing of large accounts. No patches, just isolation.File ownership auto-fix — files created by root/SSH inside the Dropbox folder are automatically chowned every ~6 minutes so they actually sync.Stale file cleanup — removes leftover .dropbox directories from previous installations that cause PermissionDenied errors on startup.Process supervision — bounded restarts, signal forwarding, graceful shutdown on docker stop.Docker HEALTHCHECK — runs dropbox status every 60s with a 2-minute startup grace period.Auto-update — pulls the latest official Dropbox binary on every startup.Optional monitoring — Prometheus metrics (port 8000) and JSON status API (port 8001).Security hardened — input validation, PII redacted from API, capability dropping, no docker.sock required.CI/CD — automated builds, ShellCheck, hadolint, Trivy vulnerability scanning, unit + E2E tests.Quick Start on UnraidInstall from Community Apps (search "Dropbox") or add the template manuallyConfig path: /mnt/user/appdata/dropboxSync folder: Use a direct disk path like /mnt/disk1/Dropbox — do not use /mnt/user/DropboxImportant: Go to Settings → Shares → Dropbox → set Use cache: NoSet DROPBOX_UID=99 and DROPBOX_GID=100 (Unraid's nobody:users)Start the container and check logs for the account linking URLOpen the URL in a browser to connect your Dropbox accountWhy "Use cache: No" mattersIf caching is enabled, files written via /mnt/user/Dropbox/ land on the cache drive first, but the container mounts the disk path directly and won't see those files until the mover runs. Setting cache to No ensures all writes go directly to the disk where the container can detect and sync them immediately.For large accounts (500K+ files)Set --memory 4g or higherSet DROPBOX_STARTUP_TIMEOUT=600 (initial indexing takes time)Set POLLING_INTERVAL=30 (reduce CPU)Keep SKIP_SET_PERMISSIONS=true (the default)Bump inotify watchers on the host: echo "fs.inotify.max_user_watches=1048576" >> /etc/sysctl.conf && sysctl -pConfigurationVariableDefaultDescriptionDROPBOX_UID1000User ID (use 99 for Unraid)DROPBOX_GID1000Group ID (use 100 for Unraid)TZUTCTimezonePOLLING_INTERVAL5Status check frequency (seconds)DROPBOX_STARTUP_TIMEOUT300Startup wait time (seconds)DROPBOX_MAX_RESTARTS5Max crash restarts before giving upENABLE_MONITORINGfalseEnable Prometheus + status APISKIP_SET_PERMISSIONStrueSkip slow recursive chownFull docs: https://github.com/islamdiaa/dropbox-docker#configurationTemplate Repositoryhttps://github.com/islamdiaa/dropbox-docker/blob/main/unraid-template.xmlStabilityCurrently running on my own Unraid 7.2.3 server — multi-day uptime, 0 restarts, syncing "Up to date" with a large Dropbox account.
June 8Jun 8 Hey there, thank you for putting this out there.I have a persistent issue, where my account won't sync, and then after a restart it won't be logged in. Funny enough, checking /root/appdata/dropbox/.dropbox, I can see that it creates new instances after a restart. I have instance1 and instance2 - this will continue after each restart.Is there something I should try out here? I had the exact same issue with the older image from other-guy.Thank you.docker inspect dropbox.txt
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.