Questarr: Gestor de juegos inspirado en el ecosistema *Arr
Aplicación de gestión de videojuegos que automatiza el descubrimiento, seguimiento y descarga de títulos, inspirada en Sonarr, Radarr y Prowlarr.
Vídeo tutorial en YouTube
Mira el vídeo completo sobre cómo instalar y usar Questarr: Gestor de juegos inspirado en el ecosistema *Arr en el canal GENBYTE:
¿Qué es Questarr: Gestor de juegos inspirado en el ecosistema *Arr?
Questarr es una aplicación de gestión de videojuegos autohospedada que permite descubrir, organizar y automatizar la descarga de títulos mediante indexadores y clientes de descarga compatibles. Está inspirada en el ecosistema *Arr (Sonarr, Radarr, Prowlarr) y GamezServer, ofreciendo una interfaz oscura, minimalista y adaptada a móviles. Permite gestionar el backlog de juegos, importar bibliotecas desde Steam o disco local, buscar lanzamientos en indexadores Torznab/Newznab y G4U.to, y enviar descargas a clientes como qBittorrent, Transmission, Sabnzbd o Synology Download Station. Utiliza SQLite por defecto con soporte opcional para PostgreSQL, y se despliega fácilmente mediante Docker, instalador nativo de Windows, Proxmox LXC, Unraid, CasaOS, Umbrel, Cosmos Cloud, Kubernetes (Helm) o add-on de Home Assistant.
Características principales
Gestión de backlog
Seguimiento de estado, valoraciones, notas y diario de juego. Incluye ruleta de backlog para elegir un juego de la biblioteca o en curso.
Descubrimiento de juegos
Navegación por IGDB, RSS y xREL.to, sincronización de lista de deseos de Steam e importación de biblioteca local desde disco.
Búsqueda y filtrado avanzado
Búsqueda por género, plataforma y palabra clave con búsqueda automática hasta encontrar lanzamiento, lista negra de lanzamientos y grupos/plataformas preferidos. Filtros para ocultar juegos aparcados, poseídos o con restricción de edad.
Gestión de descargas
Automatización de descargas e importaciones de biblioteca, con actualizaciones de archivos que preservan archivos no relacionados, revisión manual, escaneo de seguridad opcional y coincidencia experimental por IA.
Notificaciones en tiempo real
Alertas en la aplicación y mediante Apprise, con controles de actualización para juegos aparcados y completados.
Metadatos enriquecidos
Detalles de juegos con datos de IGDB, Steam, PCGamingWiki y NexusMods, incluyendo mods tendencia cuando están disponibles.
Estadísticas de colección
Visualización de estadísticas de la biblioteca con soporte para compartir en Discord.
Enfoque en seguridad
Endurecimiento general, soporte SSL y certificación OpenSSF.
Integraciones nativas
Instalación en un clic en Unraid, CasaOS, Umbrel y Cosmos Cloud, add-on de Home Assistant, instalador de Windows, gráfico Helm para Kubernetes y extensión para Playnite.
Diseño responsive
Interfaz limpia, minimalista, modo oscuro por defecto y pensada para uso móvil.
Requisitos del sistema
- Arquitectura compatible: linux/amd64 o linux/arm64 (64 bits). No se soporta ARM de 32 bits (armv7/Raspberry Pi 3 o anterior).
- Docker Engine y Docker Compose (para despliegue en contenedor).
- Para instalación nativa en Windows: Windows 10/11 x64 (instalador .exe desde v1.5.0).
- Para Proxmox LXC: host Proxmox VE con plantilla Debian disponible.
- Credenciales de API de IGDB (obligatorias para metadatos y descubrimiento).
- Opcional: API de NexusMods para mods tendencia, API de Steam para logros, credenciales de indexadores (Prowlarr, G4U.to) y clientes de descarga (qBittorrent, Transmission, Sabnzbd, etc.).
- Volumen persistente para /app/data (base de datos SQLite, configuración, claves de cifrado).
- Opcional: montaje de carpeta de descargas/biblioteca en /data para movimientos atómicos y importaciones.
Instalación con Docker Compose
Docker Compose (recomendado)
Clona el repositorio o crea un archivo docker-compose.yml basado en el del proyecto. El contenedor expone el puerto 5000 (HTTP) y 9898 (HTTPS opcional). Persiste el volumen ./data:/app/data para conservar la base de datos SQLite y la configuración. Las variables de entorno principales son PORT, SQLITE_DB_PATH, QUESTARR_BASE_PATH (para subdirectorio detrás de proxy inverso) y TRUST_PROXY=1 si se usa proxy inverso.
app:
image: ghcr.io/doezer/questarr:latest
ports:
– "${HOST_SIDE_PORT:-5000}:${CONTAINER_INTERNAL_SIDE_PORT:-5000}"
– "${SSL_PORT:-9898}:${SSL_PORT:-9898}"
environment:
– PORT=${CONTAINER_INTERNAL_SIDE_PORT:-5000}
# – SQLITE_DB_PATH=/app/data/sqlite.db
# – QUESTARR_BASE_PATH=/Questarr
# – TRUST_PROXY=1
volumes:
– ./data:/app/data
# – /mnt/user/data:/data
restart: unless-stopped
healthcheck:
test:
[
"CMD",
"node",
"-e",
"require('http').get('http://localhost:' + (process.env.PORT || 5000) + '/api/health', (r) => process.exit(r.statusCode === 200 ? 0 : 1)).on('error', () => process.exit(1))"
]
interval: 30s
timeout: 10s
retries: 3
start_period: 40s
Despliegue rápido (one-liner)
Ejecuta un contenedor efímero con SQLite y puerto 5000. Útil para pruebas rápidas.
PostgreSQL opcional
Usa el archivo docker-compose.postgres.yml incluido en el repositorio. Requiere definir POSTGRES_PASSWORD (cadena hex de 32 bytes, p. ej. openssl rand -hex 32). La migración desde SQLite existente requiere el script scripts/sqlite-to-pg.ts (ver docs/DATABASE.md).
Instalador nativo de Windows
Descarga QuestarrSetup-<version>-windows-x64.exe desde GitHub Releases (v1.5.0 o superior). El instalador incluye Node.js, registra Questarr como servicio de Windows (Questarr.Service.exe) y lo inicia automáticamente. Accede a http://localhost:5000 tras la instalación.
Proxmox VE (LXC)
Ejecuta el script de instalación en el host Proxmox como root. Crea un contenedor LXC no privilegiado, compila Questarr desde el código fuente y lo configura como servicio systemd. Actualizaciones posteriores con pct exec <ctid> — update.
Unraid (Community Applications)
Busca Questarr en la pestaña Apps, instala y configura Data Path, PUID/PGID, puertos (5000 HTTP, 9898 HTTPS) y opcionalmente Library Path montado en /data para importaciones automáticas. Añade mapeo de rutas en Ajustes → Path Mappings.
CasaOS (Custom Install)
En App Store → Custom Install, importa la URL https://raw.githubusercontent.com/Doezer/Questarr/main/casaos/docker-compose.yml. Revisa los montajes (/DATA/AppData/questarr para datos, /DATA/Downloads en /data para importaciones) y añade Path Mapping correspondiente.
Umbrel (Community App Store)
En umbrelOS, añade el repositorio https://github.com/Doezer/Questarr en Community App Stores, instala Questarr (app ID doezer-questarr) y accede desde el dashboard en http://umbrel.local:5000.
Cosmos Cloud (ServApp)
En Market Place → Custom Install, pega https://raw.githubusercontent.com/Doezer/Questarr/main/cosmos/questarr.cosmos-compose.json. Rellena carpeta de datos, carpeta de biblioteca opcional (montada en /data) y PUID/PGID. Cosmos gestiona la ruta questarr.<tu-host> y HTTPS.
Kubernetes (Helm)
Clona el repositorio e instala el gráfico Helm desde charts/questarr. El gráfico usa un volumen ReadWriteOnce para SQLite y no escala a más de una réplica. Expone el servicio en el puerto 5000.
cd Questarr
helm install questarr charts/questarr –namespace questarr –create-namespace
kubectl port-forward -n questarr svc/questarr 5000:5000
Home Assistant Add-on
En Home Assistant → Ajustes → Add-ons → Add-on Store → Repositorios, añade https://github.com/Doezer/Questarr. Instala el add-on Questarr, inícialo y accede en http://<host-ha>:5000. Solo arquitectura amd64.
Acceder al proyecto
Interfaz web
Accede a la interfaz en http://<host>:5000 (o el puerto configurado en HOST_SIDE_PORT). Si usas QUESTARR_BASE_PATH=/Questarr detrás de proxy inverso, la URL será https://<dominio>/Questarr.
Primer acceso
Al abrir la UI por primera vez, se solicita crear la cuenta de administrador y configurar las credenciales de la API de IGDB (Client ID y Client Secret de Twitch Developer Console).
Configuración inicial
Tras el login, configura indexadores (Torznab/Newznab desde Prowlarr o G4U.to), añade clientes de descarga (qBittorrent, Transmission, Sabnzbd, etc.) y empieza a añadir juegos a la biblioteca o lista de deseos.
Casos de uso
- Gestión centralizada de la biblioteca de videojuegos con estados (jugando, completado, aparcado, deseado) y diario de partidas.
- Descubrimiento automático de nuevos lanzamientos y ofertas mediante IGDB, RSS, xREL.to y sincronización de la wishlist de Steam.
- Automatización de descargas: búsqueda en indexadores Torznab/Newznab/G4U.to, envío a cliente de descarga (torrent/Usenet) e importación posterior a la biblioteca con preservación de archivos no relacionados.
- Seguimiento de mods tendencia vía NexusMods y enlaces a guías de PCGamingWiki.
- Notificaciones en tiempo real (in-app, Apprise) de nuevos lanzamientos, descargas completadas o actualizaciones de juegos aparcados/completados.
- Estadísticas visuales de la colección con opción de compartir en Discord.
- Integración con Playnite para sincronizar biblioteca y solicitar descargas desde el sofá.
- Despliegue en entornos homelab (Unraid, CasaOS, Umbrel, Proxmox, Kubernetes, Home Assistant) con una sola imagen multi-arquitectura.
Configuración avanzada
Proxy inverso y subdirectorio
Para servir Questarr bajo una ruta (p. ej. https://dominio.com/Questarr), define QUESTARR_BASE_PATH=/Questarr en el contenedor o en .env y configura el proxy inverso (nginx, Traefik, Caddy) para reenviar las peticiones a esa ruta. Además, establece TRUST_PROXY=1 (o el número de hops/subredes) para que los límites de tasa vean la IP real del cliente y las cookies mantengan la bandera Secure en HTTPS. Ver docs/REVERSE_PROXY.md para ejemplos completos.
– QUESTARR_BASE_PATH=/Questarr
– TRUST_PROXY=1
PostgreSQL como backend
Define DB_DIALECT=postgres y DATABASE_URL=postgres://usuario:password@host:5432/questarr. El pool de conexiones se ajusta con DATABASE_POOL_MAX (por defecto 10). La migración desde SQLite requiere el script scripts/sqlite-to-pg.ts (ver docs/DATABASE.md).
– DB_DIALECT=postgres
– DATABASE_URL=postgres://questarr:password@db:5432/questarr
– DATABASE_POOL_MAX=10
Cifrado de credenciales en reposo
Define CREDENTIALS_ENCRYPTION_KEY con una cadena hex de 64 caracteres (32 bytes) generada con openssl rand -hex 32. Si no se define, se genera una clave aleatoria y se almacena en la base de datos. Esta clave cifra claves API de indexadores, usuarios y contraseñas de clientes de descarga.
– CREDENTIALS_ENCRYPTION_KEY=clave_hex_64_caracteres
Clave JWT persistente
Define JWT_SECRET con una cadena aleatoria larga para mantener las sesiones válidas tras reinicios del contenedor. Si no se define, se genera una aleatoria y se guarda en la base de datos.
– JWT_SECRET=secreto_largo_aleatorio
Montaje de biblioteca de descargas para movimientos atómicos
Monta la carpeta raíz donde tus clientes de descarga escriben los archivos completados en /data dentro del contenedor. Luego, en Ajustes → Path Mappings, añade una entrada con Local Path /data y Remote Path igual a la ruta que reporta el cliente de descarga para esa raíz. Esto permite a Questarr mover/copiar archivos atómicamente tras la descarga.
– /mnt/user/data:/data
Actualización de la imagen Docker
Para actualizar manteniendo los datos: detén el contenedor, elimínalo, descarga la imagen más reciente y vuelve a arrancar con el mismo volumen de datos. En Docker Compose: docker compose pull && docker compose up -d. En instalación desde código fuente: git pull && docker compose down && docker compose build –no-cache && docker compose up -d.
Gestión y mantenimiento
Copias de seguridad
Realiza copias de seguridad periódicas del volumen /app/data (contiene base de datos SQLite, configuración, claves de cifrado y JWT). Si usas PostgreSQL, haz dump de la base de datos además del volumen de datos de la aplicación.
Logs y diagnóstico
Los logs de la aplicación están disponibles en la UI (página Logs) con botón Enviar logs para facilitar la depuración. En Docker, consulta logs con docker logs questarr o docker compose logs -f app.
Restablecimiento de contraseña de administrador
Si se pierde el acceso, el proyecto provee un script npm run reset-password que permite restablecer la contraseña del usuario admin. En Docker, ejecuta el script dentro del contenedor o monta el volumen y ejecuta localmente con el mismo entorno.
Migración de SQLite a PostgreSQL
Usa el script scripts/sqlite-to-pg.ts (requiere Node.js y dependencias del proyecto) para migrar una instalación existente de SQLite a PostgreSQL. Ver docs/DATABASE.md para el procedimiento completo.
Actualización de dependencias del sistema (contenedor)
La imagen Docker se basa en Node 26 Alpine y actualiza paquetes del sistema (apk upgrade) en cada build. Para aplicar parches de seguridad del SO base, reconstruye la imagen o actualiza a la etiqueta latest de ghcr.io/doezer/questarr.
Stack técnico
- TypeScript
- React 19
- Vite 8
- Tailwind CSS 4
- Node.js 22.19+
- SQLite (better-sqlite3)
- PostgreSQL (opcional, pg)
- Drizzle ORM
- Express.js
- Socket.io
- Radix UI / shadcn/ui
- TanStack Query
- Zod
- Apprise (Python) para notificaciones
- 7zip, unrar (RARLAB) para extracción de archivos
- IGDB API (metadatos de juegos)
- Torznab / Newznab (protocolos de indexadores)
- xREL.to, NexusMods, PCGamingWiki, Steam Web API
Referencias oficiales
- Repositorio oficial en GitHub: https://github.com/Doezer/Questarr
- Documentación oficial (GitHub Pages): https://doezer.github.io/Questarr/
- Wiki de configuración: https://github.com/Doezer/Questarr/wiki/Configuring-the-application
- Docker Hub (imagen doezer/questarr): https://hub.docker.com/r/doezer/questarr
- GitHub Container Registry (ghcr.io/doezer/questarr): https://github.com/Doezer/Questarr/pkgs/container/questarr
- Releases de GitHub (instalador Windows, changelogs): https://github.com/Doezer/Questarr/releases
- Discord de la comunidad: https://discord.gg/STkp86wP9F
- Issues y Discussions en GitHub: https://github.com/Doezer/Questarr/issues
- Documentación de proxy inverso (REVERSE_PROXY.md): https://github.com/Doezer/Questarr/blob/main/docs/REVERSE_PROXY.md
- Documentación de base de datos (DATABASE.md): https://github.com/Doezer/Questarr/blob/main/docs/DATABASE.md
- Documentación de migración v1.0 (MIGRATION.md): https://github.com/Doezer/Questarr/blob/main/docs/MIGRATION.md
- Documentación de Proxmox (PROXMOX.md): https://github.com/Doezer/Questarr/blob/main/docs/PROXMOX.md
- Documentación de apps para home server (HOME_SERVER_APPS.md): https://github.com/Doezer/Questarr/blob/main/docs/HOME_SERVER_APPS.md
- Extensión Playnite: https://github.com/Doezer/Questarr/tree/main/extensions/playnite-questarr
- Gráfico Helm (charts/questarr): https://github.com/Doezer/Questarr/tree/main/charts/questarr
Apoya el canal GENBYTE
¿Te ha sido útil este contenido?
Suscríbete a YouTube
Newsletter GENBYTE
Ko-fi
Contacto: [email protected]
