OpenMediaVault

 ¡Excelente idea! OpenMediaVault (OMV) es una solución perfecta para lo que necesitas. Te explico por qué y cómo implementarlo:

¿Por qué OpenMediaVault es ideal para tu caso?

✅ Ventajas de OMV:

  • Gestión centralizada de almacenamiento

  • RAID software para redundancia

  • Backups automatizados

  • Servicios integrados (SMB, NFS, FTP)

  • Monitorización del sistema

  • Web UI amigable

  • Basado en Debian (estable y compatible)

Arquitectura Recomendada

text
OpenMediaVault (Servidor Principal)
├── Disco 1: SSD (Sistema OMV + Docker)
├── Disco 2: HDD (Datos multimedia - videos/imágenes)
├── Disco 3: HDD (Backup/RAID)
└── Servicios:
    ├── Apache/Nginx (para tu app Laravel)
    ├── SMB/CIFS (compartir archivos en red)
    └── Docker (contenedores opcionales)

Implementación Paso a Paso

1. Instalación de OpenMediaVault

bash
# Descargar ISO desde openmediavault.org
# Instalar en el sistema principal o en máquina dedicada

2. Configuración de Almacenamiento en OMV

En la Web UI (port 80):

  • Sistema → Almacenamiento → Discos: Formatear discos

  • Sistema → Almacenamiento → RAID: Crear RAID 1 para redundancia

  • Sistema → Almacenamiento → Sistemas de archivos: Crear ext4/BTRFS

3. Compartir Carpetas en OMV

text
# Estructura recomendada:
/srv/dev-disk-by-uuid-XXX/
├── laravel_data/
│   ├── videos/
│   ├── images/
│   └── backups/
└── app_storage/

En OMV UI:

  • Almacenamiento → Carpetas compartidas: Crear laravel_data

  • Servicios → SMB/CIFS: Habilitar y compartir carpetas

4. Instalar Apache en OMV

bash
# Conectar por SSH a OMV
ssh root@openmediavault

# Instalar Apache y PHP
apt update
apt install apache2 php php-mysql php-curl php-zip php-gd php-mbstring

# Crear virtual host para tu aplicación
nano /etc/apache2/sites-available/laravel.conf

Virtual Host ejemplo:

apache
<VirtualHost *:80>
    ServerName tudominio.local
    DocumentRoot /srv/dev-disk-by-uuid-XXX/app_storage/public
    
    <Directory /srv/dev-disk-by-uuid-XXX/app_storage/public>
        AllowOverride All
        Require all granted
    </Directory>
    
    ErrorLog ${APACHE_LOG_DIR}/laravel_error.log
    CustomLog ${APACHE_LOG_DIR}/laravel_access.log combined
</VirtualHost>

5. Configurar Laravel para usar OMV

En tu .env de Laravel:

env
FILESYSTEM_DISK=omv_storage

# O usando montaje SMB (si Laravel está en otra máquina)
SMB_HOST=openmediavault.local
SMB_USERNAME=tu_usuario
SMB_PASSWORD=tu_contraseña
SMB_SHARE=laravel_data

En config/filesystems.php:

php
'disks' => [
    'omv_storage' => [
        'driver' => 'local',
        'root' => '/srv/dev-disk-by-uuid-XXX/laravel_data',
    ],
    
    'smb_omv' => [
        'driver' => 'smb',
        'host' => env('SMB_HOST'),
        'username' => env('SMB_USERNAME'),
        'password' => env('SMB_PASSWORD'),
        'share' => env('SMB_SHARE'),
        'root' => '/videos',
    ],
],

6. Montar Carpetas OMV en tu PC de Desarrollo

bash
# Montar share de OMV en tu home
sudo mkdir ~/omv_storage
sudo mount -t cifs //openmediavault.local/laravel_data ~/omv_storage -o username=tu_usuario,password=tu_contraseña,uid=1000,gid=1000

# Para montaje automático al inicio
echo "//openmediavault.local/laravel_data /home/tu_usuario/omv_storage cifs username=tu_usuario,password=tu_contraseña,uid=1000,gid=1000 0 0" | sudo tee -a /etc/fstab

7. Usar Docker en OMV (Alternativa)

Instalar Docker en OMV:

bash
# OMV → Sistema → Complementos → Instalar "omv-extras"
# Luego instalar Docker desde la UI

# O manualmente:
curl -fsSL https://get.docker.com -o get-docker.sh
sh get-docker.sh

Docker Compose para Laravel + Apache:

yaml
# docker-compose.yml en OMV
version: '3'
services:
  laravel-app:
    image: webdevops/php-apache:8.0
    volumes:
      - ./app_code:/app
      - /srv/dev-disk-by-uuid-XXX/laravel_data:/app/storage/app/media
    ports:
      - "8080:80"
    environment:
      - WEB_DOCUMENT_ROOT=/app/public

8. Backups Automatizados con OMV

Usando el plugin de OMV:

  • Sistema → Complementos: Instalar "openmediavault-backup"

  • Almacenamiento → Copia de seguridad: Programar backups

Script personalizado:

bash
#!/bin/bash
# backup_laravel.sh
FECHA=$(date +%Y%m%d_%H%M%S)

# Backup base de datos
mysqldump -u usuario -p base_datos > /srv/dev-disk-by-uuid-XXX/laravel_data/backups/db_$FECHA.sql

# Backup código (si está en OMV)
tar -czf /srv/dev-disk-by-uuid-XXX/laravel_data/backups/code_$FECHA.tar.gz /srv/dev-disk-by-uuid-XXX/app_storage/

# Sincronizar con disco externo
rsync -av /srv/dev-disk-by-uuid-XXX/laravel_data/ /mnt/backup_drive/laravel_backup/

9. Monitoreo en OMV

  • Sistema → Monitorización: Ver uso de CPU, RAM, disco

  • Sistema → Notificaciones: Alertas por email

  • Sistema → Registros: Logs del sistema

10. Acceso Remoto Seguro

bash
# OMV → Sistema → Workbench: Acceso web seguro
# OMV → Servicios → SSH: Habilitar acceso seguro

# Para acceso web externo (opcional)
# Usar reverse proxy con Nginx Proxy Manager en Docker

Flujo de Trabajo Recomendado

  1. Desarrollo local en tu PC

  2. Archivos multimedia se guardan directamente en OMV vía SMB

  3. Backups automáticos con OMV

  4. Acceso web via Apache en OMV

  5. Expansión futura: Agregar más discos a OMV sin afectar la aplicación

Ventajas de esta Configuración:

  • ✅ Separación total: Sistema operativo vs datos

  • ✅ Escalabilidad: Agregar discos fácilmente

  • ✅ Redundancia: RAID configurable

  • ✅ Backups centralizados

  • ✅ Acceso desde múltiples dispositivos

  • ✅ Interfaz web amigable

  • ✅ Comunidad activa y plugins

Comentarios

Entradas más populares de este blog

ejercicios-Crear Carpeta y Archivo de Texto en Ubuntu

Instalar Docker en Ubuntu Server usando docker.io

Tutorial de Carpetas y Directorios en Ubuntu Linux