main
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_idydevice_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.
Languages
Python
63.1%
TypeScript
25.2%
Shell
6.1%
CSS
4.2%
PowerShell
1%
Other
0.3%