OnEver Drive

Plataforma empresarial centralizada de backup y sincronización para entornos Windows sobre infraestructura Proxmox VE (Contenedores LXC Debian 12/13).


🚀 Arquitectura General

       ┌────────────────────────────────────────────────────────┐
       │             CLIENTES WINDOWS (10/11/Server)            │
       │                                                        │
       │  [ Agente PyQt6 / System Tray (.EXE) ]                │
       │  ├── Selector visual de carpetas (QFileDialog)         │
       │  ├── Detección de bloqueos SQL Server (Locks/Growth)   │
       │  ├── Motor de Chunks (Bloques de 4MB con reanudación)  │
       │  └── Verificación de integridad SHA-256 local          │
       └──────────────────────────┬─────────────────────────────┘
                                  │ HTTPS / TLS (Chunks + JSON)
                                  ▼
       ┌────────────────────────────────────────────────────────┐
       │             SERVIDOR PROXMOX VE (LXC Debian)           │
       │                                                        │
       │  [ Nginx Proxy Inverso + SSL / Let's Encrypt ]         │
       │  ├── Frontend Web Dashboard (React 19 + TypeScript)    │
       │  ├── Backend REST API (FastAPI Asíncrono)              │
       │  ├── WebSockets (Telemetría de subidas en tiempo real) │
       │  ├── Ensamblado Streaming SHA-256 (Bajo consumo RAM)   │
       │  ├── Políticas de Retención (Diaria/Semanal/Mensual)   │
       │  └── Base de Datos (PostgreSQL 16 / SQLite dev)        │
       └────────────────────────────────────────────────────────┘

📦 Estructura del Repositorio

  • backend/: API REST FastAPI con autenticación JWT, registro de dispositivos por código temporal, motor de chunks con reanudación, políticas de retención y WebSockets.
  • frontend/: Dashboard web moderno (Vite + React 19 + TypeScript) con telemetría en vivo, gestión de clientes, creación de trabajos y explorador de restauración.
  • windows-agent/: Agente nativo en PyQt6 para Windows con System Tray, selector de carpetas, notificaciones discretas y empaquetado en binario .exe (PyInstaller).
  • deployment/: Scripts de aprovisionamiento automatizado en contenedores nativos Debian 12/13 LXC en Proxmox VE, configuración de Nginx, SSL y mantenimiento de backups.
  • docs/: Documentación técnica, manual del agente Windows, arquitectura del motor de chunks y guía de despliegue en Proxmox.
  • tests/: Suite automatizada con Pytest para verificar reanudación ante microcortes, aislamiento de clientes y detección de bloqueos.

🛠️ Requisitos de Despliegue en Proxmox VE

El backend y frontend se despliegan en un Contenedor LXC Debian 12/13 sin dependencias de Docker:

# 1. Crear el contenedor en el host Proxmox
bash deployment/proxmox/01-create-lxc-pve-host.sh

# 2. Instalar el entorno, PostgreSQL, Nginx y Backend dentro del LXC
pct enter 100
bash /root/deployment/proxmox/02-install-backend-debian.sh

# 3. Configurar certificados SSL
bash /root/deployment/proxmox/03-configure-ssl.sh

💻 Agente de Windows (.EXE)

El agente se ejecuta en el área de notificaciones (System Tray) y cuenta con una interfaz gráfica en PyQt6 para apuntar al servidor y seleccionar las carpetas locales:

# Ejecutar agente desde binario compilado
windows-agent\dist\OnEverDriveAgent-Standalone.exe

# O compilar nuevamente desde el código fuente
python windows-agent/build_exe.py

🔒 Seguridad y Multi-Inquilino

  • Aislamiento por Dispositivo: Cada máquina Windows tiene un device_id y device_token único generado criptográficamente.
  • Validación SHA-256: Cada bloque de 4MB y el archivo final ensamblado se verifican mediante streaming de hash SHA-256.
  • Protección SQL Server: Detección de archivos en uso para evitar transferencias incompletas de volcados .bak.
S
Description
No description provided
Readme
161 KiB
Languages
Python 63.1%
TypeScript 25.2%
Shell 6.1%
CSS 4.2%
PowerShell 1%
Other 0.3%