Deploying OpenMediaVault
Introduction
OpenMediaVault (OMV) is an open-source network-attached storage (NAS) solution based on Debian Linux. It provides a web-based management interface for configuring storage, file sharing, and various services typically found in NAS appliances, making it a popular choice for home servers and small office storage needs.
While OpenMediaVault is traditionally installed as a complete operating system on dedicated hardware, the web management interface and some of its plugin capabilities can be containerized for cloud deployment scenarios.
Key features of OpenMediaVault include:
- Web-Based Management: Intuitive browser interface for all configuration
- File Sharing Protocols: SMB/CIFS, NFS, FTP, and rsync support
- Storage Management: RAID configurations, disk monitoring, and S.M.A.R.T. data
- User Management: Local users and groups with quota support
- Plugin System: Extend functionality with community plugins
- Monitoring: System statistics, disk health, and alerts
- Backup Solutions: Scheduled backups and snapshot support
- Docker Support: Run containerized applications
- Access Control: Share-level and user-level permissions
- Notification System: Email alerts for system events
This guide covers deploying OMV management components on Klutch.sh using Docker.
Why Deploy OpenMediaVault on Klutch.sh
A cloud-based OMV deployment provides remote management capabilities:
Remote Management: Manage storage configurations from anywhere with web access.
Centralized Configuration: Keep storage management separate from storage hardware.
Plugin Dashboard: Access OMV plugins and management tools in the cloud.
HTTPS by Default: Secure access to your storage management interface.
Note: Full NAS functionality requires direct hardware access; this deployment focuses on management and lightweight services.
Prerequisites
Before deploying OpenMediaVault on Klutch.sh, ensure you have:
- A Klutch.sh account
- A GitHub account with a repository for your deployment
- Understanding of NAS concepts and storage management
Deploying OpenMediaVault on Klutch.sh
Create Your Dockerfile
Create a Dockerfile in your repository:
FROM debian:bullseye-slim
# Install dependenciesRUN apt-get update && apt-get install -y \ wget \ gnupg \ sudo \ php-fpm \ nginx \ && rm -rf /var/lib/apt/lists/*
# Add OMV repositoryRUN wget -O "/etc/apt/trusted.gpg.d/openmediavault-archive-keyring.asc" \ https://packages.openmediavault.org/public/archive.key
RUN echo "deb https://packages.openmediavault.org/public sandworm main" > \ /etc/apt/sources.list.d/openmediavault.list
# Install OMVRUN apt-get update && apt-get install -y \ openmediavault \ && rm -rf /var/lib/apt/lists/*
EXPOSE 80
CMD ["nginx", "-g", "daemon off;"]Push to GitHub
Commit and push your Dockerfile to your GitHub repository.
Create a New Project on Klutch.sh
Navigate to the Klutch.sh dashboard and create a new project.
Create and Configure the App
Create a new app and connect it to your GitHub repository.
Configure HTTP Traffic
Set the traffic type to HTTP with an internal port of 80.
Attach Persistent Volumes
Add persistent storage:
| Mount Path | Recommended Size | Purpose |
|---|---|---|
/etc/openmediavault | 1 GB | OMV configuration |
/var/lib/openmediavault | 5 GB | OMV data |
Deploy Your Application
Click Deploy to build and launch your OpenMediaVault instance.
Access Management Interface
Access the OMV web interface at your deployment URL. Default credentials are admin/openmediavault.