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:
- Lanzar el contenedor:
- Entrar en la consola Singularity:
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)
Base matemática para procesamiento de píxeles de alta calidad.2. VapourSynth R73 (Release Estable)
Framework de procesamiento de video de referencia. R73 es la versión más estable y probada.3. L-SMASH Library (El Yunque)
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
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.