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
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
# 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
# Estructura recomendada: /srv/dev-disk-by-uuid-XXX/ ├── laravel_data/ │ ├── videos/ │ ├── images/ │ └── backups/ └── app_storage/
En OMV UI:
Almacenamiento → Carpetas compartidas: Crear
laravel_dataServicios → SMB/CIFS: Habilitar y compartir carpetas
4. Instalar Apache en OMV
# 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:
<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:
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:
'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
# 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:
# 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:
# 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:
#!/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
# 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
Desarrollo local en tu PC
Archivos multimedia se guardan directamente en OMV vía SMB
Backups automáticos con OMV
Acceso web via Apache en OMV
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
Publicar un comentario