Skip to content

Storage Overview

Storage is the general-purpose filesystem in HomeDock OS. It provides a familiar file management experience for documents, media, downloads, and any other files that don’t require encryption. Unlike Drop Zone, files in Storage are stored as-is, no encryption layer is applied.

Storage comes with a set of default folders to help organize your files from the start:

  • Notes: Text files, markdown, and quick notes
  • Documents: General documents and office files
  • Photos: Image files and photographs
  • Videos: Video files and recordings
  • Music: Audio files and music
  • Downloads: Downloaded files from the web or other apps

You can create additional folders at any level to organize your files however you prefer.

Default folders provide a starting point for organization, but you're free to create your own folder structure at any depth.

Storage uses the same unified file browser interface as the rest of File Explorer:

  • Grid View: Desktop-like layout with positioned file and folder icons
  • List View: Compact rows with detailed information (name, size, date)
  • Sorting: Sort by name, size, or date with ascending/descending toggle
  • Breadcrumb Navigation: Clickable path segments for quick navigation
  • View Sync: View mode preferences sync in real-time with Drop Zone

All standard file operations are available:

OperationEndpoint
List filesGET /api/storage/files
SearchGET /api/storage/search
UploadPOST /api/storage/upload
DownloadGET /api/storage/download
Download multiplePOST /api/storage/download-multiple
DeletePOST /api/storage/delete
Create folderPOST /api/storage/create-folder
RenamePOST /api/storage/rename

Every endpoint returns the same shape as the other File Explorer backends: { files: [], current_path: "" }, where each file follows the common FileEntry interface.

  • Drag and Drop: Drop files or entire folders onto the window
  • Folder Structure: Uploaded folders maintain their directory hierarchy
  • Hidden File Filtering: Files starting with ”.” are automatically filtered out
  • Progress Tracking: Unified upload progress indicator in the system tray

Storage provides a global search that scans files and folders recursively within the current path. Results are grouped by parent directories with full path context displayed.

  • Ctrl+Click: Add or remove individual files from selection
  • Drag-to-Select: Click and drag to create a selection rectangle
  • Batch Download: Download multiple selected files as a ZIP archive
  • Batch Delete: Delete all selected items at once

Right-click any file or folder for quick actions:

  • Open, download, rename, delete
  • Add to Favorites
  • File properties (size, date, path)
  • Touch-friendly long-press support on mobile

Each file shows rich metadata:

  • Size Badges: Compact human-readable sizes (KB, MB, GB)
  • Relative Timestamps: “5m ago”, “1h ago”, “Now”
  • NEW Indicators: Recent uploads within the last hour are highlighted
  • File Type Icons: Automatic detection with appropriate icons for documents, images, videos, audio, archives, code files, and more

Double-clicking a file in Storage routes it to the appropriate built-in utility based on its extension (Notepad for text, Image Viewer for images, Media Player for audio/video, PDF Viewer for PDFs). Unrecognized extensions trigger a direct download. See File Explorer for the full extension routing table.

StorageDrop Zone
EncryptionNone, files stored as-isAES-256-GCM at rest
Use caseGeneral files, media, documentsSensitive or private files
PerformanceDirect read/writeEncrypt on upload, decrypt on download
Default foldersNotes, Documents, Photos, Videos, Music, DownloadsUser-created only
InterfaceShared File Explorer UIShared File Explorer UI
Use Storage for everyday files and Drop Zone when you need encryption. Both backends share the same interface within File Explorer.

Even without encryption, Storage is protected by the same security measures as the rest of File Explorer:

  • CSRF tokens: Every request requires an X-HomeDock-CSRF-Token header
  • Login authentication: All routes require an active session
  • Path traversal protection: validate_safe_path() blocks ../ and similar attacks
  • Symlink prevention: validate_no_symlinks() blocks symlink escape attacks
  • Filename sanitization: validate_filename() validates safe characters
  • User isolation: All paths scoped to the authenticated user’s home directory
LimitValue
Directory size calculation10,000 files / 2 seconds
ZIP downloads50,000 files / 30 seconds
Search100,000 files / 5 seconds

Storage is fully optimized for touch devices:

  • Long Press: Opens context menu
  • Double Tap: Opens folders or downloads files
  • Touch Selection: Tap to select, tap again to deselect
  • Mobile Upload: Dedicated floating upload button on small screens