Saltar a contenido

Configuración, Despliegue y Administración

Singularity Core es una suite profesional que requiere una configuración precisa de su entorno y secretos para operar con éxito.


🛠️ Despliegue con Docker (Recomendado)

El método recomendado para admins es el uso de Docker, que encapsula todas las dependencias incluidas las complejas compilaciones de VapourSynth, L-SMASH y drivers VA-API sin ensuciar el sistema host.

Opción A: Instalación Ligera (Solo 3 Archivos)

Si no quieres clonar el repositorio completo, solo necesitas descargar estos archivos: 1. docker-compose.yml 2. makefile 3. final-user-install.sh

# 1. Instala la estructura de carpetas y genera plantillas .env
make install

# 2. Descarga la imagen desde Docker Hub (3GB aprox)
make pull

# 3. Levanta el contenedor
make up

Opción B: Repositorio Completo

Clona el repositorio y usa el Makefile para gestionar el ciclo de vida:

  1. Lanzar el contenedor:
    make pull
    make up
    
  2. Entrar en la consola Singularity:
    make attach
    

El contenedor monta los volúmenes locales, por lo que tus cambios en el código y logs persistirán fuera de Docker.


🐋 Stack de Imagen Docker (Dockerfile v1.6)

La imagen rawsmoke/singularity-suite:latest encapsula un arsenal multimedia de alta gama:

Base

  • Python 3.11-bookworm (Debian testing, paquetes actualizados)
  • FFmpeg + FFprobe (compilación por defecto de Debian)

Multimedia Clásico

  • MakeMKV 1.18.3 (compilado desde /extras/makemkv-install/)
  • makemkvcon: Extracción de ISOs DVD/Blu-ray
  • Librerías OpenSSL, Expat, QT5 para GUI
  • MKVToolNix (mkvmerge, mkvextract)
  • MediaInfo (extracción de metadatos)

Aceleración de Hardware (Virtud y Excelencia)

Este es el corazón técnico nuevo. Se forjan desde código fuente:

1. zimg (Interpolación de Video)

FROM https://github.com/sekrit-twc/zimg.git
CONFIG: --enable-simd
Base matemática para procesamiento de píxeles de alta calidad.

2. VapourSynth R73 (Release Estable)

FROM https://github.com/vapoursynth/vapoursynth.git -b R73
Framework de procesamiento de video de referencia. R73 es la versión más estable y probada.

3. L-SMASH Library (El Yunque)

FROM https://github.com/l-smash/l-smash.git
CONFIG: --enable-shared
Librería de bajo nivel para lectura de contenedores MP4/MOV/MKV con índices rotos.

4. L-SMASH-Works (Fijación de Binario)

FROM https://github.com/oatssss/L-SMASH-Works.git
LOCATION: /usr/local/lib/vapoursynth/vslsmashsource.so
PATCHES: Flags para FFmpeg 5/6 compatibility
Plugin VapourSynth que permite acceder a streams incluso con contenedores "podridos" (WinX, cabeceras corruptas). Este es el plugin usado por Nivel 3 de la Escalera de Resiliencia.

Drivers de Aceleración de Hardware

# AMD VA-API (RADV, RADEONSI)
mesa-va-drivers
libva-drm2

# Intel VA-API (Non-Free)
intel-media-va-driver-non-free

# Utilidades de validación
vainfo    # Verifica que el driver responde

Nota sobre MOZ_X11_EGL: Variable de entorno establecida para ciertos casos de renderizado OpenGL en contenedores. PENDING_RECON si es necesaria en tu setup específico.


⚙️ Configuración del Archivo .env

El sistema orquesta sus constantes a través de singularity_config.py, pero los secretos deben vivir en un archivo .env en la raíz.

# --- CORE CONFIG ---
TMDB_API_KEY=tu_key_de_tmdb
IMGBB_API_KEY=tu_key_opcional

# --- TRACKER CONFIG ---
BASE_URL=https://tu-tracker-principal.com
COOKIE_VALUE=TU_COOKIE_SESION_PARA_MASS_EDITION

# --- MASS EDITION SETTINGS ---
ID_START=100      # ID inicial para el scraper
ID_END=5000       # ID final para el scraper
TMP_DIR_PATH=/app/tmp # Ruta donde se guardan los metadatos temporales

# --- IMAGE HOSTING ---
PTSCREENS_API=tu_key
IMGBB_API=tu_key

# --- HARDWARE (Autodetectado, pero puede ser forzado) ---
# LIBVA_DRIVER_NAME=radeonsi    # Fuerza AMD
# MOZ_X11_EGL=1                 # Si tienes issues de rendering

🧩 Configuración de Trackers (RawLoadrr)

Cada tracker tiene su propia configuración en RawLoadrr/data/config.py. El sistema soporta:

  • API Keys: Para subida directa mediante API de UNIT3D.
  • Announce URLs: Para la creación del archivo .torrent.
  • Image Hosts: Configuración por defecto de dónde subir las capturas.
  • VapourSynth: Actívalo si deseas capturas de máxima calidad (requiere VapourSynth en Docker, ya incluido).

🛠️ Instalación Manual (Bare Metal) — NO RECOMENDADO

Si prefieres ejecutarlo fuera de Docker, deberás compilar manualmente VapourSynth + L-SMASH, lo que es complejo y propenso a errores. Para referencia:

# Binarios multimedia básicos
sudo dnf install ffmpeg mkvtoolnix mediainfo makemkv-bin

# Herramientas de compilación (si insistes en compilar VapourSynth)
sudo dnf install python-devel autoconf automake libtool pkg-config

# Python deps
pip install -r requirements.txt

⚠️ ADVERTENCIA: Sin VapourSynth R73 + L-SMASH-Works compilado, la Escalera de Resiliencia solo tiene 3 niveles efectivos (2, 1, 0). El Nivel 3 no estará disponible.


📊 Validación Post-Deploy

Tras levantar el contenedor, verifica que el toolchain está completo:

make attach  # Entra en el contenedor

# Dentro del contenedor:
python3 -c "import vapoursynth; print(vapoursynth.__version__)"
python3 -c "from modules.hardware_agent import HardwareAgent; h = HardwareAgent(); print(f'HW: {h.device}')"
mkvmerge --version
ffmpeg -version | head -5
vainfo  # Verifica que VA-API responde (si es AMD/Intel)

🏗️ Funcionamiento del Brain Core

singularity_config.py realiza una carga dinámica: 1. Intenta importar python-dotenv para leer el .env. 2. Inyecta las variables en el entorno global. 3. Si faltan valores críticos durante el tiempo de ejecución, la Opción 5 (Singularity Mode) te los pedirá interactivamente y los guardará por ti.


🔐 Seguridad y Anonimato

  • TOR Integration: Si el script detecta que Tor está corriendo localmente, RawLoadrr puede enrutar las peticiones de API a través de 127.0.0.1:9050 (SOCKS5).
  • Validación de Credenciales: El sistema comprueba si las claves API están presentes antes de iniciar una fase del pipeline.
  • Logs Rotativos: Los logs se organizan por fecha para facilitar la auditoría administrativa sin saturar el almacenamiento.