File Explorer Overview
The File Explorer is HomeDock OS’s unified file management application. Instead of switching between separate apps for each storage type, File Explorer consolidates Storage, Drop Zone, and App Drive into a single interface where you can browse, search, upload, download, and manage all your files from one place.
Three Backends, One Interface
Section titled “Three Backends, One Interface”File Explorer brings together three independent storage systems:
- Storage: Your general-purpose filesystem for documents, media, downloads, and any other unencrypted files.
- Drop Zone: AES-256-GCM encrypted storage. Every file is encrypted at rest with per-user keys. Uploads encrypt and downloads decrypt transparently.
- App Drive: Docker container volumes. Browse and manage files inside the mounted volumes of your running Docker containers without needing terminal access.
All three backends expose the same set of operations (list, search, upload, download, delete, create folder, rename) with a consistent response format. The frontend component swaps the endpoint prefix automatically when you switch locations, so the experience is seamless regardless of which backend you’re working with.
Sidebar Navigation
Section titled “Sidebar Navigation”The left sidebar (collapsible on mobile via a hamburger popover) organizes everything into sections:
Locations
Section titled “Locations”- Storage: Shows “All Files” at root plus default folders (
Notes,Documents,Photos,Videos,Music,Downloads) and any additional user-created folders. Each section is collapsible. - Drop Zone: Shows “All Files” at root plus user-created encrypted folders. Marked with a lock icon to indicate encryption.
- App Drive: Lists running Docker containers with status indicators (green = running, gray = stopped). Each container shows its app icon. Only containers with valid mounted volumes under the HomeDock root appear here.
System Apps
Section titled “System Apps”- Applications: All installed non-utility apps, with a badge showing count.
- Utilities: Built-in utility apps (Notepad, Media Player, Image Viewer, PDF Viewer, Brusher), with a badge showing count.
Quick Access
Section titled “Quick Access”- Favorites: User-bookmarked files and folders from any backend (max 50).
- Recents: Automatically tracked recently accessed items across all backends (max 100, FIFO).
Favorites & Recents
Section titled “Favorites & Recents”Favorites and Recents provide cross-backend quick access to your most important and recently used files.
Unified View
Section titled “Unified View”When viewing Favorites or Recents, files from all three backends appear together in a single grid or list. Each entry carries source metadata so the UI can:
- Show which backend the file lives in (Storage, Drop Zone, or App Drive)
- Offer a “Locate in…” context menu action to navigate back to the file’s original location
- Automatically remove stale entries if the underlying file no longer exists
Metadata Storage
Section titled “Metadata Storage”Favorite and recent entries are persisted as JSON in {user_storage_folder}/_meta/{username}/. Each entry stores the location (storage, dropzone, or appdrive), path, name, whether it’s a directory, a timestamp, and optionally the container and mount index for App Drive items.
Built-in Utilities
Section titled “Built-in Utilities”File Explorer comes with a full suite of native utility applications. Double-click any supported file and it opens instantly, no external apps, no plugins, no downloads. Everything runs right inside HomeDock OS.
Notepad
Section titled “Notepad”A full-featured text and code editor with syntax support for dozens of formats: TXT, MD, JSON, YAML, XML, Python, JavaScript, TypeScript, Go, Rust, PHP, SQL, Dockerfiles, and many more. Notepad also doubles as a personal notes manager with per-user AES-256-GCM encryption, auto-save, and complete note organization. Your notes are encrypted at rest with the same security standards as Drop Zone.
Image Viewer
Section titled “Image Viewer”Native image viewing for JPG, PNG, GIF, WebP, SVG, BMP, ICO, and TIFF formats. Includes zoom, pan, and rotation controls for inspecting images in detail without leaving the browser.
Media Player
Section titled “Media Player”Native audio and video playback for MP4, WebM, OGV, OGG, MP3, WAV, AAC, FLAC, and M4A. Features volume controls, fullscreen support, and a real-time spectrum analyzer for audio visualization powered by the Web Audio API. When media is playing, an audio indicator appears in the taskbar with quick volume controls.
PDF Viewer
Section titled “PDF Viewer”Powered by PDF.js, the PDF Viewer provides native PDF rendering with page navigation, zoom controls, and search functionality. Open any PDF directly from Storage, Drop Zone, or App Drive without downloading it to your device first.
Brusher
Section titled “Brusher”A lightweight image annotation and markup tool. Right-click any image in File Explorer and open it in Brusher for quick edits, annotations, and markups.
Calculator
Section titled “Calculator”A standard calculator with full arithmetic operations and keyboard support, always available from the utilities section.
Opening Files in Utility Apps
Section titled “Opening Files in Utility Apps”When you double-click a file, File Explorer detects the file extension and routes it to the appropriate built-in utility:
| Utility | Extensions |
|---|---|
| Notepad | txt, md, json, yml, yaml, xml, conf, ini, env, log, js, ts, jsx, tsx, py, java, cpp, c, go, rs, rb, php, sh, bash, html, css, sql, dockerfile, makefile, and more |
| Image Viewer | jpg, jpeg, png, gif, webp, bmp, ico, tif, tiff |
| Media Player | mp4, webm, ogv, ogg, mp3, wav, aac, flac, m4a |
| PDF Viewer | |
| Brusher | Manually triggered from right-click context menu on images |
| Direct download | Any unrecognized extension |
How It Works
Section titled “How It Works”- The user double-clicks a file.
- File Explorer detects the extension and chooses the appropriate utility.
- The file is downloaded from the correct backend (Storage, Drop Zone, or App Drive). Drop Zone files are automatically decrypted during download.
- The file data is passed in-memory to the utility window via
windowStore.openFileInApp(). Text files as string content, binary files as ArrayBuffer. - The file is automatically added to Recents.
Upload System
Section titled “Upload System”File Explorer supports drag-and-drop uploads that preserve recursive folder structures. Drop files or entire folders onto the window and the directory hierarchy is maintained in the target backend.
A unified upload progress indicator in the system tray consolidates upload tracking for all three backends into a single component, showing current progress, queue status, and concurrent upload activity.
View Modes
Section titled “View Modes”File Explorer supports two view modes:
- Grid View: Desktop-like layout with positioned file and folder icons.
- List View: Compact rows with detailed information (name, size, date).
Sorting is available by name, size, or date with ascending/descending toggle. View preferences sync instantly across Storage and Drop Zone. Change to list view in one, and the other updates in real-time.
System Apps View
Section titled “System Apps View”The System Apps section in the sidebar provides an alternative way to browse and launch all installed applications and utilities directly from File Explorer, displayed as icons with descriptions. Double-clicking opens the app via the Prism Window Manager.
Security
Section titled “Security”All File Explorer endpoints are protected with multiple layers of security:
| Protection | Description |
|---|---|
| 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 |
| AES-256-GCM encryption | All Drop Zone files encrypted at rest with per-user keys |
| Read-only mount respect | App Drive honors Docker container read-only mount flags |
| User isolation | All paths scoped to the authenticated user’s home directory |
| Container filtering | App Drive only shows volumes mounted within HomeDock’s secure paths |