Una solución integral de NAS (Network Attached Storage) y servidor de juegos privada, diseñada específicamente para hardware de bajos recursos (Intel Atom / 2GB RAM).
Este proyecto transforma una laptop antigua en un servidor funcional con gestión de archivos segura, cuotas de disco y un servidor de Halo Custom Edition automatizado.
- Autogestión de Infraestructura: El script inicializa carpetas, base de datos y logs automáticamente.
- Seguridad Nivel Producción: * Cifrado de contraseñas con Bcrypt.
- Protección contra ataques de fuerza bruta (Flask-Limiter).
- Cabeceras de seguridad y políticas CSP con Talisman.
- Protección CSRF en todas las peticiones.
- Servidor Halo CE: Ejecución automática mediante Wine con servicio de rescate en caso de caídas.
- Optimización de Recursos: Logs rotativos para evitar el llenado del almacenamiento y configuración de procesos ligera para CPUs de un solo núcleo.
- Hardware: Recomendado para laptops tipo Netbook (ej. Acer Aspire One) o Single Board Computers.
- SISTEMA: Debian 12 / Ubuntu 22.04 / Parrot OS.
- Archivos: Debes tener el archivo
HaloCE.zipen la raíz del proyecto antes de instalar.
Clona el repositorio en tu servidor:
git clone [https://github.com/Anothernear/NAS.git](https://github.com/Anothernear/NAS.git)
cd NAS
### 2. Ejecutar el Instalador Automático
El archivo `setup.sh` se encargará de instalar Wine, Python, crear el entorno virtual, configurar los servicios de sistema (`systemd`) y descomprimir Halo:
```bash
chmod +x setup.sh
./setup.shPor seguridad, el primer usuario (Admin) debe crearse manualmente desde la terminal. Esto evita credenciales por defecto:
source /srv/app/venv/bin/activate
python3 app.pySigue las instrucciones: Ingresa el nombre de usuario y contraseña cuando se te solicite. Al finalizar, presiona
Ctrl+C.
Inicia el servicio del NAS:
sudo systemctl start nas_app/srv/app/
├── app.py # Backend del NAS (Flask)
├── users.db # Base de datos SQLite (Usuarios y Roles)
├── nas_app.log # Historial de acciones y seguridad
├── nas/
│ ├── users/ # Carpetas privadas de cada usuario
│ └── public/ # Contiene el HaloCE.zip para descarga web
└── halo_server/ # Archivos del juego ejecutados por Wine
El sistema utiliza servicios para asegurar que el NAS y Halo siempre estén activos, incluso tras un reinicio:
| Comando | Descripción |
|---|---|
sudo systemctl status nas_app |
Verifica si la web del NAS está en línea. |
sudo systemctl restart halo_server |
Reinicia el servidor de Halo CE. |
journalctl -u nas_app -f |
Ver intentos de login y subidas en tiempo real. |