HomeDock OS Documentation

repository·main·Indexed 21 days ago

https://github.com/bansheetech/homedockos

A cloud-based operating system providing a browser-based desktop experience via the Prism Window Manager. It features a Docker-based app ecosystem with an official App Store and HDS Package System, a Unified File Explorer with AES-256-GCM encrypted DropZone storage, and built-in productivity utilities. Supports deployment on Linux, macOS, Windows, and Raspberry Pi via bare metal, Docker Compose, or Docker-in-Docker (DinD).

Tokens
2.3K
Snippets
3
Records
16
Agent score
24%

What's inside HomeDock OS

  1. Overview of HomeDock OS Core Experience

    main

    HomeDock OS provides a desktop-like experience in a cloud environment through several key features:

    • Prism Window Manager: A full desktop environment supporting resizable, draggable, maximizable, and minimizable windows with window state persistence and z-index management.
    • Mobile-First Desktop: Optimized for touch with horizontal page navigation, fullscreen windows on mobile, and long-press context menus.
    • Themes: Includes Default (Light), Noir (Dark), and Aero+ (translucent/glassmorphism) themes.
    • Desktop Management: Supports drag-and-drop icons with snap-to-grid, desktop folders, and persistent layouts.
    • System Interface: Includes a Start Menu for application search and a Taskbar with real-time system stats (CPU, RAM, disk, network), notifications, and audio indicators.
  2. Use built-in utilities in HomeDock OS

    main

    HomeDock OS includes several pre-installed productivity tools:

    • Notepad: Text editor with Markdown preview (Edit, Live Preview, or Full Preview modes) and auto-save.
    • Code Editor: Multi-tab editor with syntax highlighting for languages like .js, .ts, .py, .vue, .json, etc.
    • Calendar & World Clock: Supports ICS import/export and color-coded events. The system tray clock provides proximity-aware pulsing indicators for upcoming events.
    • Image Viewer & Brusher: View common image formats and use 'Brusher' for quick annotations.
    • Media Player: Plays various audio/video formats with a real-time spectrum analyzer.
    • PDF Viewer: Powered by PDF.js.
    • Calculator: Standard arithmetic with full keyboard support.
  3. Manage applications with the App Store and HDS Package System

    main

    HomeDock OS features a robust application ecosystem:

    • Official App Store: Browse and install over 200 applications (e.g., Nextcloud, Plex) with advanced configuration options for ports, volumes, environment variables, and network modes (Host/Bridge/HomeDock Network).
    • HDS Package System: Use the Packager tool to create, import, and share custom .hds packages. These bundle Docker Compose files with icons and metadata. You can also export/import .hdstore bundles for multiple apps.
    • Third-Party Store Integration: One-click imports are available for community stores like BigBearTechWorld, TMC Store, and Zima App Store. You can also migrate individual Compose files.
    • Automatic Updates: The system scans for updates every 6 hours for apps using the :latest tag and notifies you via the taskbar.
  4. Security features in HomeDock OS

    main

    HomeDock OS implements several security layers:

    • Two-Factor Authentication (2FA): TOTP-compatible (Google Authenticator, Authy, etc.) with 10 backup recovery codes.
    • Hybrid Encryption: Uses 4096-bit RSA-OAEP for key exchange and AES-256-GCM for bulk data, ensuring end-to-end encryption even without HTTPS.
    • Hardened Infrastructure: Includes path traversal protection, symlink validation, null byte injection prevention, CSRF validation, and rate limiting.
  5. Manage files using Unified File Explorer and DropZone

    main

    HomeDock OS provides several ways to manage data and files:

    • Unified File Explorer: Access four distinct storage backends:
      • Storage: Unencrypted local files.
      • DropZone: AES-256-GCM encrypted storage using HKDF key derivation.
      • App Drive: Direct management of Docker container volumes.
      • Disks+: Access to physical disks (internal SSDs, USBs, optical drives).
    • DropZone Encryption: Uses AES-256-GCM with 4096-bit RSA-OAEP for key exchange. It supports per-user keys and atomic file writes.
    • Disks+ Features: Includes password protection with a sliding session timer, Protected Zones for system paths, and hot-plug detection.
    • Upload System: Supports unified upload progress tracking in the system tray and full folder uploads with nested subdirectories.
  6. Deploy HomeDock OS via Docker

    main

    You can run HomeDock OS inside a Docker container using Docker-in-Docker (DinD) support. The system uses an Alpine-based image (~441MB) and includes features for:

    • Automatic host detection.
    • Path translation.
    • DinD label filtering.

    Deployment is also supported via Docker Compose, bare metal, or on cloud platforms like the Oracle Cloud Free Tier.

  7. Set up SSL/HTTPS

    main

    HomeDock OS provides native SSL/HTTPS support with automatic cross-platform certificate detection for Linux, macOS, and Windows.

    Key features include:

    • Automatic HTTP to HTTPS redirection.
    • HSTS headers implementation.
    • SSL certificate inheritance for all installed applications.

    For detailed instructions on using self-signed certificates, refer to the HTTPS documentation.

  8. Deploy HomeDock OS using Docker Compose

    main

    You can deploy HomeDock OS using Docker Compose by using the configuration file provided in the repository. This is useful for containerized environments and cloud hosting.

    https://github.com/BansheeTech/HomeDockOS/blob/main/docker-compose.yml
  9. Configure Networking and Reverse Proxy

    main

    HomeDock OS supports reverse proxy setups via a toggle in Settings. When enabled, the system uses Werkzeug ProxyFix middleware to handle X-Forwarded-* headers, ensures secure session cookies, and manages proper 421 Misdirected Request handling.

    For local network access, HomeDock OS supports mDNS (Local DNS), allowing you to access your instance at homedock.local via Zeroconf.