OpenMediaVault
OpenMediaVault (OMV) is a free and open-source network-attached storage (NAS) solution based on Debian Linux, primarily designed for small offices and home offices to provide easy file sharing and data management without requiring deep technical knowledge.[1] It features a modular architecture with out-of-the-box support for services including SSH/SFTP, SMB/CIFS, NFS, and Rsync, all administered through a simple web-based interface.[1][2] The system supports x86-64 and ARM architectures, enabling deployment on a wide range of hardware from standard PCs to single-board computers.[3] Development of OpenMediaVault began in 2009 under the lead of Volker Theile, who aimed to create an accessible NAS platform building on his prior experience with embedded systems and storage software.[4] The project was first publicly released on October 17, 2011, as version 0.2 based on Debian 6, marking its transition to a stable, community-driven initiative hosted on SourceForge.[3] Subsequent versions have closely followed Debian's release cycle for stability and security, with major updates introducing enhanced features like Btrfs support, RAID configurations (including JBOD, 0, 1, 5, and 6), snapshot management, and plugin extensibility for additional services such as antivirus scanning, UPS integration, and containerized applications via Docker or Kubernetes.[2][3] The current stable release as of November 2025, version 7.7.21 (7 series, codenamed "Sandworm"), was initially launched in March 2024 on Debian 12, emphasizing improved monitoring tools like S.M.A.R.T. for disk health, email notifications, and IPv6 compatibility, while maintaining a lightweight footprint suitable for resource-constrained environments.[3][5] OpenMediaVault's design prioritizes data sovereignty and ease of use, allowing users to manage volumes, quotas, access control lists (ACLs), and scheduled tasks through its intuitive dashboard, with ongoing development ensuring compatibility with modern networking standards like link aggregation and Wake-on-LAN.[2]Overview
Development and Background
OpenMediaVault originated in 2009, initiated by developer Volker Theile, who sought to create a more modular and user-friendly network-attached storage (NAS) solution after serving as the primary developer on the FreeNAS project since 2006.[6] Theile departed FreeNAS due to fundamental disagreements over its development direction and the limitations of its codebase, which relied on FreeBSD and required extensive manual compilation efforts.[6] Drawing inspiration from FreeNAS's core concepts, Theile shifted the foundation to Debian Linux to leverage its robust package management system, enhancing modularity, ease of maintenance, and extensibility through a plugin architecture that became a key design principle from the outset.[6][7] The project's initial release, version 0.2 codenamed "Ix," arrived in October 2011, emphasizing a simplified setup process tailored for non-expert users in home and small office settings, with an out-of-the-box web-based interface for NAS configuration.[3][8] Early development focused on stability and accessibility, building directly on Debian 6 (Squeeze) to integrate seamlessly with its ecosystem.[3] By 2012, subsequent releases like version 0.3 "Omnious" and 0.4 "Fedaykin" refined this approach, solidifying full Debian integration and introducing a Dune-inspired naming convention for versions—drawing from Frank Herbert's sci-fi series—to reflect the project's thematic emphasis on expansive, navigable systems.[3] Key milestones included the transition to version 1.0 "Kralizec" in September 2014, which upgraded to Debian 7 (Wheezy) and marked the project's maturation as a stable, community-driven distribution.[3] Community growth accelerated alongside these releases, with contributors providing bug fixes, feature enhancements, and support via forums, while translations into various languages through collaborative efforts on Transifex, broadening accessibility worldwide.[6] OpenMediaVault's deep integration with Debian's APT package manager further empowered users and developers to extend functionality effortlessly, fostering ongoing evolution without deviating from its Debian roots.[9]Licensing and Community
OpenMediaVault is released under the GNU General Public License version 3 (GPL v3), a copyleft license that guarantees users the freedom to run, study, share, and modify the software, including access to its source code for redistribution and adaptation.[10][11] The project is primarily maintained by Volker Theile, its lead developer, who holds the copyright alongside contributors who sign the openmediavault Contributor Agreement (OCA) to enable joint ownership and project sustainability.[12] A global community supports ongoing development through pull requests on GitHub repositories and discussions on official forums.[13] Community involvement extends to user support via dedicated forums, where members troubleshoot issues and share configurations, as well as translation efforts that enable multilingual interface support in multiple languages.[2] This grassroots participation integrates with Debian's package management ecosystem, ensuring reliable updates and stability without proprietary dependencies.[1] Lacking commercial sponsorship, OpenMediaVault relies on voluntary donations via platforms like PayPal to cover development costs, reinforcing its commitment to data sovereignty by prioritizing user-controlled, open-source infrastructure over vendor lock-in.[13][14]Architecture and Design
Core Components
OpenMediaVault is built upon Debian Linux, specifically version 12 "Bookworm" for its 7.x releases, leveraging the underlying Linux kernel's capabilities for storage management—such as support for SATA, SAS, SCSI, USB, and serial interfaces—and networking functionalities including TCP/IP stack and device drivers.[15][16] This foundation ensures compatibility with a wide range of hardware while inheriting Debian's stability and security updates. At its core, OpenMediaVault employs NGINX as the web server to host and deliver the administrative interface, handling HTTP requests efficiently with low resource overhead.[17] The backend is powered by PHP, which processes configuration changes and executes services through theomv-engined daemon via FastCGI, enabling dynamic interactions between the user interface and system operations.[17] For the frontend, the web interface is developed in TypeScript using the Angular framework along with Angular Material, providing a responsive and modular user experience that communicates with the backend via RPC calls to a configuration database.[17]
The system's modular design relies on Debian's package management tools, dpkg for installing and managing individual software packages and APT for handling dependencies and repository updates, which facilitates incremental modifications and upgrades without requiring a complete system reinstallation. This approach allows administrators to apply security patches, feature enhancements, or configuration tweaks seamlessly through the integrated update mechanisms.
OpenMediaVault supports deployment on both x86-64 (AMD64) and ARM architectures, accommodating diverse hardware platforms from low-power single-board computers like the Raspberry Pi to high-performance x86 servers.[16] This architectural flexibility broadens its applicability in home, small office, and embedded environments. The plugin API serves as an extension layer built upon these foundational elements, enabling further customization without altering the core system.
Web Interface and User Experience
OpenMediaVault features a fully web-based administration panel that is accessible via HTTP on port 80 or HTTPS on port 443, requiring no additional client software beyond a standard web browser.[18] This design enables remote management from any device on the network, promoting headless operation typical for NAS systems.[2] The interface employs TypeScript for the frontend, utilizing Angular and Angular Material frameworks to deliver dynamic, responsive UI elements such as panels, dashboards, and configuration wizards.[17] Server-side logic is managed by PHP code executed through the omv-engined RPC daemon, with NGINX serving the static content and handling requests.[17] This architecture ensures efficient data retrieval from the configuration database via RPC calls, supporting staged changes that batch multiple updates for application only when confirmed by the user.[19] User experience emphasizes accessibility and ease of use, incorporating role-based access control (RBAC) that leverages Debian's native system users and groups for defining admin and user permissions.[20] Multilingual support is provided to cater to international users, with intuitive navigation through categorized panels and step-by-step wizards for common tasks like disk configuration.[2][21] Security is integrated at multiple levels, including built-in HTTPS configuration via NGINX for encrypted connections, robust session management using omv-engined and PHP socket communications, and authentication directly tied to the underlying Debian user and group system to prevent unauthorized access.[17][18] These measures ensure secure, reliable interaction with the interface while maintaining compatibility with standard web security practices.[2]Plugin Architecture
OpenMediaVault features a modular plugin system that enables developers to extend its functionality without modifying the core codebase, allowing the addition of new services through standardized hooks integrated into both the backend and the web interface. This architecture was introduced in the early versions of the software, starting from its initial releases around 2011, to facilitate extensibility in a network-attached storage environment.[22][23] Plugins are distributed and installed as Debian packages via the Advanced Package Tool (APT) from official repositories, ensuring seamless updates and dependency management. Upon installation, plugins automatically integrate into the web interface by registering configuration pages, dashboard widgets, and log views, providing users with immediate access to new features without manual intervention.[22][24] At the architectural level, plugins operate as Debian packages that extend the NGINX web server routes to handle additional HTTP endpoints, modify database schemas through the omv-confdb configuration database for persistent settings, and interact with system services such as those managed by systemd. The web interface serves as the primary integration point, where plugins declare their components using YAML files located in the/usr/share/openmediavault/workbench directory, enabling declarative extensions without requiring deep knowledge of JavaScript or TypeScript.[22]
For development, plugins leverage PHP classes to implement backend logic, including RPC services for data processing and event handling. The frontend utilizes JavaScript for custom UI components, while hooks in directories like route.d, component.d, and event-specific triggers—such as those for system startup or disk changes—allow plugins to respond to core events and inject functionality dynamically. These guidelines ensure plugins maintain compatibility with the core system's modular design.[22]
Core Features
File Sharing and Access Protocols
OpenMediaVault provides built-in support for several network file sharing protocols, enabling seamless access to shared storage across different operating systems and use cases. These include SMB/CIFS for Windows compatibility, NFS for Unix-like systems, FTP and SFTP for file transfers, and Rsync for efficient backups and synchronization.[25] All protocols are configured through the web-based interface, which integrates with OpenMediaVault's user and group management for authentication.[25] Shares are created using the "Shared Folders" feature in the Storage section of the web interface, where administrators define paths on mounted filesystems, set ownership (defaulting to root:users with 775 permissions), and apply POSIX permissions or ACLs for fine-grained access control.[26] These shared folders serve as the foundation for all protocols, with permissions propagating to services like SMB, NFS, and FTP upon saving changes. User authentication is handled via OpenMediaVault's internal database, which synchronizes Linux user passwords and restricts access to assigned groups.[26] Quota management is available at the filesystem level under Storage > Quota, allowing user and group limits to prevent overuse, though it applies broadly rather than per-share.[27] For SMB/CIFS, OpenMediaVault uses Samba in standalone server mode, supporting shares as private (user-authenticated), semi-public (guest with restrictions), or public.[28] Configuration occurs in Services > SMB/CIFS, where global settings like workgroup (default: HOME) and minimum protocol version are set, alongside per-share options for read/write lists and guest access. Advanced features include SMB3 support.[28] NFS support targets local networks, with the server binding shared folders under /export and exporting them via /etc/exports for read/write or read-only access from specified clients (e.g., IP, host, or CIDR).[29] The web interface in Services > NFS allows extra options like root_squash for security, and NFSv4 is enabled by default with a pseudo-root filesystem, supporting Kerberos for authentication in secure environments.[29] Exposure to the internet is discouraged; VPN is recommended for remote access.[29] FTP is implemented via ProFTPD with virtual root (vroot) for chrooting users to /srv/ftp, preventing escapes via symlinks, and aliases map shared folders for organized access.[30] Configuration in Services > FTP enables the server, sets passive port ranges for NAT traversal, and supports FTPS (FTP over SSL/TLS) with explicit or implicit modes using self-signed or custom certificates for encrypted transfers.[30] SFTP is available through the integrated SSH service, allowing secure file transfers over SSH without additional setup, though users must be added to the ssh group and passwordless public key authentication is advised for automation.[31] Rsync facilitates backups by acting as both client and server, with jobs scheduled via cron for local synchronization or remote push/pull over SSH or daemon mode.[32] In Services > Rsync, modules (shared folders) are defined for the daemon, supporting authentication and options like compression; client jobs require SSH keys for non-interactive operation.[32] Performance tuning is achievable through environmental variables in the web interface or direct Samba/NFS options, such as TCP_NODELAY for reduced latency in SMB, aio sizes for asynchronous I/O, or export options like no_wdelay in NFS to minimize caching delays.[28] Bandwidth and concurrent connection limits can be adjusted per protocol to balance load, with recommendations favoring wired LAN for optimal throughput.[33]Storage and Volume Management
OpenMediaVault provides robust tools for managing physical disks and creating flexible storage configurations through its web interface, enabling users to handle partitioning, formatting, and advanced volume setups without command-line intervention in most cases. The system supports a range of filesystems, including ext4 for general-purpose storage, Btrfs for advanced features like copy-on-write, and XFS for high-performance workloads, all of which can be created and mounted directly via the Filesystems section of the interface.[34] Btrfs integration includes snapshot capabilities for shared folders, allowing point-in-time backups, as well as automatic scheduled scrubbing to detect and repair data corruption by verifying checksums across the filesystem.[2] For redundancy and performance, OpenMediaVault incorporates software RAID using the mdadm utility, supporting levels such as 0 (striping), 1 (mirroring), 5 and 6 (parity with single or double fault tolerance), and 10 (striped mirrors), configurable through the RAID Management interface where users can create, grow, or recover arrays from unpartitioned disks.[35] Logical volume management is available via the official LVM2 plugin, which allows formatting disks or partitions into physical volumes, grouping them into volume groups, and carving out resizable logical volumes for efficient space allocation across storage pools.[36][24] Disk management begins with the Disks overview, which lists attached drives with details like model, capacity, and device paths, facilitating operations such as quick or secure wiping to clear partition tables and prepare drives using GUID Partition Table (GPT) standards via tools like sgdisk.[37] Filesystem creation and resizing are streamlined in the web UI, supporting operations on single disks or RAID devices.[34] Data integrity is enhanced through scheduled Btrfs scrubs that proactively scan for errors and trigger email notifications, complementing SMART monitoring for early detection of hardware issues like bad blocks on individual drives.[2] Bad block detection leverages underlying Linux tools such as badblocks, integrated with the wiping process to identify and isolate faulty sectors before filesystem deployment.[37] These features ensure reliable volume management tailored for NAS environments.Monitoring and Maintenance Tools
OpenMediaVault provides built-in utilities for monitoring system health and performance, primarily accessible through its web-based interface. These tools enable administrators to track disk integrity, resource utilization, and network activity, helping to prevent data loss and optimize operations. Key components include S.M.A.R.T. monitoring for storage devices, system log viewers, and dashboard widgets that display real-time statistics for CPU, memory, and network interfaces.[36] S.M.A.R.T. monitoring assesses the health of hard drives and SSDs by reading attributes from device sensors using the smartmontools package. The smartd daemon runs periodically to check these values against prior readings, flagging issues such as prefailure attributes, reallocated sectors exceeding one, or pending sectors greater than one, which are indicated by a red status in the interface. Administrators can configure email notifications for detected changes in S.M.A.R.T. values or when drive temperatures surpass user-defined thresholds, integrating with the system's Postfix-based notification framework. Scheduled tests, including short, long, conveyance, and offline immediate options, can be initiated via the web interface to proactively evaluate device condition.[38][36] System logs are accessible through a dedicated viewer in the web interface, allowing users to browse and download entries from sources such as syslog, journalctl, messages, authentication logs, FTP, rsync, and Samba. This facilitates troubleshooting by providing a centralized view of events without requiring command-line access. Notifications for log-related issues, like service failures, can be sent via email as part of the broader alert system.[36] Scheduled jobs, based on cron syntax, support routine maintenance tasks such as automated backups or filesystem cleanups by executing commands or scripts at specified intervals. Configurations are managed via the web interface, where users define timing in minute-hour-day-month-week format (e.g., daily at 6:12 PM), select a running username (root, system, or custom), and enable email notifications for job output. Tasks are stored in /etc/cron.d/openmediavault-userdefined and executed as shell scripts, ensuring compatibility with standard Debian cron behavior.[39][36] Power management features include configurable actions for the server's power button and cron-based scheduling for shutdown, hibernation (S5 state), suspend (S3 state), or reboot at set times. Wake on LAN (WOL) is enabled through the network settings, activating the kernel driver for supported network interface cards (NICs) provided the BIOS also supports it. This allows remote powering on of the system over the network.[40][41] Network tools encompass link aggregation using LACP (802.3ad mode) for bonding multiple interfaces to increase throughput or redundancy, requiring a compatible managed switch. IPv6 support is configurable in interface settings, enabling dual-stack addressing alongside IPv4. Bandwidth monitoring is available via dashboard widgets that graph traffic on network interfaces, showing metrics like bits per second, averages, and peaks to assess utilization.[41][36] Maintenance is streamlined through the Update Management section, where APT handles package upgrades with daily cron-apt checks for new versions and automatic installation of security updates. Firmware updates for specific hardware can be selected and applied via the interface, ensuring compatibility without manual intervention. Diagnostic reports, including system logs and configuration summaries, are exportable directly from the web UI for analysis or support purposes.[9][36]Extensions and Customization
Official Plugins
Official plugins for OpenMediaVault are developed and maintained by the core team to extend the base system's capabilities with additional services and tools, ensuring seamless integration and stability. These plugins are hosted in the official OpenMediaVault repositories and can be installed directly through the web interface after the base system setup, where they provide pre-configured user interface extensions for easy management.[24][42] The plugin system, built on OpenMediaVault's modular framework, allows these extensions to leverage the underlying Debian-based architecture without introducing dependency conflicts, particularly through containerized options like Podman.[24] Key official plugins include openmediavault-clamav, which integrates the ClamAV open-source antivirus engine to scan shared folders and detect malware, configurable via scheduled tasks in the web UI.[24] Another example is openmediavault-usbbackup, enabling automated data synchronization from shared folders to external USB drives either on a schedule or upon device insertion, supporting compression and verification options.[24][43] For power management, openmediavault-nut provides support for uninterruptible power supplies (UPS) using the Network UPS Tools (NUT) suite, allowing monitoring of battery status, runtime, and automatic shutdown on power events.[24] openmediavault-onedrive enables synchronizing a shared folder with Microsoft OneDrive cloud storage (supported on amd64, arm64, armhf, and i386 architectures).[24] Additional plugins enhance monitoring and maintenance, such as openmediavault-diskstats, which extends system performance graphs with detailed I/O statistics for disks and volumes.[24] Plugins like openmediavault-snmp enable Simple Network Management Protocol (SNMP) for device monitoring on IP networks, while openmediavault-tftp offers a basic Trivial File Transfer Protocol server for simple file distribution.[24] For container orchestration, openmediavault-k8s facilitates pod management in a lightweight Kubernetes environment based on K3s.[24] Updates for official plugins are managed through the APT package system, automatically syncing with core OpenMediaVault releases to maintain security and compatibility across supported architectures like x86-64 and ARM.[9][24]Third-Party Plugins and OMV-Extras
OMV-Extras is a community-managed repository that extends the functionality of OpenMediaVault by providing additional plugins developed by third-party contributors, primarily hosted on GitHub under the OpenMediaVault-Plugin-Developers organization.[44][45] This repository enables users to access advanced features not included in the core distribution, such as enhanced file system support and container management tools, fostering greater customization for NAS deployments.[24] To install OMV-Extras on an existing OpenMediaVault system, users must run a provided installation script as root, typically via the commandwget -O - https://github.com/OpenMediaVault-Plugin-Developers/packages/raw/master/install | bash, which adds the repository and updates the package sources.[46] Once enabled, plugins from OMV-Extras become available in the web interface under the System > Plugins section, where they can be installed using the APT package manager integrated into the UI.[45]
Notable plugins available through OMV-Extras include openmediavault-zfs, which provides support for the ZFS file system and volume management, enabling advanced data integrity features like snapshots and RAID-Z configurations.[47] For containerization, openmediavault-docker (often paired with openmediavault-compose) allows deployment of Docker containers, while graphical interfaces like Portainer can be deployed as containers for managing them.[48] Other significant extensions encompass openmediavault-wireguard for setting up secure VPN tunnels using the WireGuard protocol, and openmediavault-snapraid for implementing parity-based protection across JBOD disk arrays to recover from drive failures.[47]
While official plugins handle baseline extensions, OMV-Extras focuses on community innovations for more specialized needs.[24] However, as third-party contributions, these plugins require compatibility checks prior to installation, since they may not immediately align with core OpenMediaVault updates, potentially leading to integration issues if versions diverge.[49] Best practices include reviewing plugin documentation on the OMV-Extras wiki, testing in non-production environments, and monitoring for updates via the repository to maintain system stability.[45]
Deployment and Requirements
Hardware and Software Prerequisites
OpenMediaVault is built on Debian GNU/Linux 12 (Bookworm), requiring a compatible base operating system for installation and operation.[16] Internet access is recommended during initial setup to facilitate package downloads, updates, and plugin installations, though offline configurations are possible with pre-downloaded repositories. The system supports both BIOS and UEFI boot modes, with GPT partitioning recommended and Secure Boot advised to be disabled for compatibility.[16] Hardware prerequisites focus on x86-64 (AMD64) and ARM architectures, enabling deployment on standard PCs, servers, and single-board computers like Raspberry Pi 4 and newer models.[16] Any compatible x86-64 or ARM processor suffices for minimum operation, though Intel Dual Core or AMD Ryzen CPUs are recommended for handling multiple services and users efficiently.[16] While no explicit clock speed is required, processors at 1 GHz or higher align with typical supported hardware for reliable performance.[14]| Component | Minimum | Recommended |
|---|---|---|
| CPU | Any x86-64 or ARM compatible (32-bit or 64-bit) | Intel Dual Core or AMD Ryzen (x86-64) |
| RAM | 1 GiB | 8 GiB+ (dual-channel DDR4/DDR3) |
| Storage (OS) | 4 GiB on one drive (HDD, SSD, or USB) | 120 GiB root + 8 GiB swap across two drives |
| Storage (Data) | None (or any attached drives) | SSD for performance or HDD for capacity |
| Network | Any NIC (WiFi, Ethernet, USB; 10 Mbps minimum) | 1 Gbps Ethernet; supports multiple NICs for bonding |
Installation and Setup Process
OpenMediaVault can be installed via ISO images for x86/AMD64 hardware or by adding packages to an existing Debian installation, particularly for ARM-based single-board computers. ISO images are available for download from the official SourceForge repository, supporting dedicated drive installations that set up a minimal Debian base system along with OpenMediaVault components.[50] For ARM systems, users start with a minimal Debian 12 (Bookworm) installation and then install the OpenMediaVault package from the project's repository.[51] To install using the ISO method, burn the image to a USB flash drive with tools like Etcher or thedd command, then boot from it by adjusting the BIOS/UEFI settings to prioritize the USB device. The guided installer prompts for basic selections such as language, location, keyboard layout, and root password, before partitioning and installing the operating system on the target drive, which erases all existing data on that drive.[52] Upon completion and reboot—after removing the installation media—the system displays its IP address on the console or via KVM/iPPI, allowing access to the web-based administration interface at http://<IP-address>. Default credentials for the web UI are username admin and password openmediavault, while the root password is the one set during installation.[53]
Post-installation, users log into the web UI to perform initial setup, including network configuration, user account creation, and storage device integration through built-in wizards that guide the process step-by-step. For Debian-based installations, after adding the repository key and sources, run apt update followed by apt install [openmediavault](/page/installation), then populate the configuration database with omv-confdbadm populate and deploy initial services like networking via omv-salt deploy run systemd-networkd.[51] These steps ensure the system is operational, with SSH access enabled by default for root (though recommended to be disabled post-setup for security).[53]
For upgrading existing installations to a new major version, such as from 6.x to 7.x, use the omv-release-upgrade script, which performs an in-place migration including Debian base system updates while preserving user data and configurations. This non-interactive command is available in the final minor releases of the prior version and handles package upgrades from official repositories.[9] Compatibility with hardware prerequisites, like x86-64 or ARM64 architectures supported by Debian, should be verified prior to any upgrade to avoid issues.[16]
Version History
Major Releases
OpenMediaVault's major releases correspond to significant updates in its underlying Debian base, architectural improvements, and feature enhancements for network-attached storage functionality. These milestones typically introduce new web interface frameworks, refined plugin ecosystems, and optimizations for hardware compatibility, while maintaining backward compatibility where possible. The project has progressed through versions aligned with Debian's stable releases, ensuring long-term support and security updates. Prior to version 1.0, early releases (0.2–0.5, codenamed Ix to Sardukar, based on Debian 6, October 2011–August 2013) provided initial development and testing of core NAS features, now all EOL.[3]| Version | Codename | Base Distribution | Release Date | Status |
|---|---|---|---|---|
| 1.0 | Kralizec | Debian 7 (Wheezy) | September 2014 | EOL (December 2015) |
| 2.0 | Stoneburner | Debian 7 (Wheezy) | June 2015 | EOL (June 2017) |
| 3.0 | Erasmus | Debian 8 (Jessie) | June 2016 | EOL (June 2018) |
| 4.0 | Arrakis | Debian 9 (Stretch) | April 2018 | EOL (June 2020) |
| 5.0 | Usul | Debian 10 (Buster) | March 2020 | EOL (June 2022) |
| 6.0 | Shaitan | Debian 11 (Bullseye) | May 2022 | EOL (July 2024) |
| 7.0 | Sandworm | Debian 12 (Bookworm) | March 2024 | Stable |
| 8.0 | Synchrony | Debian 13 (Trixie) | TBA | Beta (November 2025) |