# Dockerstack Storage Notes ## Local SSD Use `/docker/...` for: - Docker root (`/docker/docker-data`) - GPU/model storage - SQLite-backed apps - Apps that chown on startup - Write-heavy DB/search storage Examples: - `/mnt/docker-ssd/docker/docker-data` - `/mnt/docker-ssd/docker/appdata/ollama` - `/mnt/docker-ssd/docker/appdata/openwebui` - `/mnt/docker-ssd/docker/appdata/immich` - `/mnt/docker-ssd/docker/appdata/immich-ml` - `/mnt/docker-ssd/docker/appdata/plex` - `/mnt/docker-ssd/docker/appdata/tautulli` - `/mnt/docker-ssd/docker/appdata/audiobookshelf` - `/mnt/docker-ssd/docker/appdata/seerr` - `/mnt/docker-ssd/docker/appdata/dockhand` - `/mnt/docker-ssd/docker/appdata/rackpeek` - `/mnt/docker-ssd/docker/appdata/shlink` - `/mnt/docker-ssd/docker/appdata/gitea` - `/mnt/docker-ssd/docker/appdata/netdata` - `/mnt/docker-ssd/docker/appdata/tailscale` - `/mnt/docker-ssd/docker/appdata/uptime-kuma` - `/mnt/docker-ssd/docker/databases/postgres` - `/mnt/docker-ssd/docker/databases/mariadb` - `/mnt/docker-ssd/docker/databases/redis` ## TrueNAS NFS Use `/mnt/tank/docker/...` for: - Normal appdata - Uploads - Non-fussy config and data - Backups - Downloads Examples: - `/mnt/tank/docker/appdata/homepage` - `/mnt/tank/docker/appdata/newt` - `/mnt/tank/docker/appdata/kitchenowl` - `/mnt/tank/docker/appdata/donetick` - `/mnt/tank/docker/appdata/qui` - `/mnt/tank/docker/appdata/calibre-web-automated` - `/mnt/tank/docker/backups` - `/mnt/tank/docker/downloads` ## Unraid NFS Use `/mnt/unraid/...` for media and shared bulk content only: - `/mnt/unraid/data/media/` — Plex libraries, books, etc. - `/mnt/unraid/immich` — Immich photo/video storage ## Rules Learned - SQLite apps and apps that write logs aggressively should prefer local SSD. - Database/search/model-heavy workloads should prefer local SSD. - General config and less write-sensitive appdata can live on TrueNAS NFS. - Media should stay on Unraid mounts. - SQLite on ZFS with nfsv4 ACLs will always fail — move to SSD or use Postgres. - Apps with auto-upgrade features that use bind mounts: pre-create all source directories manually on TrueNAS to prevent Docker from trying to create them at the read-only root.