Skip to content

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:

Deploying OpenMediaVault on Klutch.sh

    Create Your Dockerfile

    Create a Dockerfile in your repository:

    FROM debian:bullseye-slim
    # Install dependencies
    RUN apt-get update && apt-get install -y \
    wget \
    gnupg \
    sudo \
    php-fpm \
    nginx \
    && rm -rf /var/lib/apt/lists/*
    # Add OMV repository
    RUN 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 OMV
    RUN 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 PathRecommended SizePurpose
    /etc/openmediavault1 GBOMV configuration
    /var/lib/openmediavault5 GBOMV 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.

Additional Resources