QuestarrNG

QuestarrNG

Docker app from questarrng's Repository

Overview

Standalone NG fork of Questarr for PC game discovery and acquisition, with optional SeerrNG integration.

QuestarrNG

Snapetech QuestarrNG fork

QuestarrNG is Snapetech's maintained fork of Doezer/Questarr. It keeps the upstream game-management foundation and adds a substantial set of fork-maintained features: platform-aware discovery and library views, richer play tracking, post-processing and RomM imports, Playnite and SeerrNG integrations, optional PostgreSQL, and hardened multi-architecture releases. See What changed in QuestarrNG for the overview and the changelog for the release-by-release history.

Use ghcr.io/snapetech-org/questarrng:latest or the Compose file in this repository; the upstream Questarr image does not contain the SeerrNG provider routes. The fork image is published for linux/amd64 and linux/arm64 from main.

Support QuestarrNG on Ko-fi.

Questarr Logo

A video game management application inspired by the -Arr apps (Sonarr, Radarr, Prowlarr...) and GamezServer. Track and organize your video game collection with automated discovery and download management.

Library screenshot

GHCR GitHub release License CI Code Scanning Last commit

⭐ Star us on GitHub — your support motivates us a lot! šŸ™šŸ˜Š

Discord Share

Table of Contents

What this fork adds

QuestarrNG continues to share its foundation with upstream Questarr. We maintain a separate fork because the current upstream main snapshot does not expose the SeerrNG provider contract. QuestarrNG adds that versioned, request-scoped integration while developing standalone library, acquisition, and deployment capabilities. Its maintained work has expanded in several areas. The fork guide records the comparison date, the differences, and the upstream capabilities that would let SeerrNG stop depending on this fork.

  • A richer game library: platform-scoped discovery and filters, local library scanning, a Playing page with journal entries, milestones, screenshots and Steam achievements, plus DLC and expansion details.
  • A complete acquisition path: Prowlarr and Torznab/Newznab search, configurable release selection, download monitoring, automated post- processing, safer archive extraction, and optional VirusTotal or ClamAV checks before import.
  • External library workflows: mapped RomM imports, a Playnite extension for library sync and request-to-download, and a versioned SeerrNG catalog and PC acquisition API.
  • More deployment choices: optional PostgreSQL alongside the default SQLite setup, multi-architecture images, a Windows service installer, and rootless container configurations with release attestations.

The fork changes guide summarizes these additions and their release history. The documentation map links to setup, integration, API, database, and security guides.

List of features

Feature Description
Backlog management Track your collection with status indicators (Wanted, Owned, Playing, Completed, Shelved), ratings, and notes. A dedicated Playing page adds journal notes, a milestones checklist, screenshots, and Steam achievements per game, plus Crack status and Time to Beat (via IGDB) on the game detail page and a DLC/expansions tab.
Game Discovery Browse popular, new, and upcoming titles via IGDB, RSS feeds, and xREL.to, or sync your Steam wishlist directly into the app. A per-platform Root folder / Scan Disk discovers games already on disk and reconciles their files.
Search & Filter Find games by genre, platform, and keyword, with automatic search until a release is found, plus release blacklisting and preferred release groups/platforms. A Platforms setting scopes the whole app to your platform(s) of choice, with optional filters to hide shelved/owned games and age-restricted or erotic content.
Download Management Integrates with indexers and downloaders with optional auto-download and automatic post-processing import, password-protected archive handling, optional pre-import VirusTotal/ClamAV scanning and optional, experimental "Powered by AI" workflow to improve game matches (using Typesafe's Jev, in BYOK)
Real-time Notifications In-app alerts for releases and downloads, plus external notifications to 100+ providers via Apprise.
Rich Game Metadata Details enriched with IGDB, Steam, PCGamingWiki, and NexusMods, including trending mods where available.
Statistics Review collection and download statistics, with sharing to Discord where supported.
Security Focused General security hardening and SSL support — see SECURITY.md for the reporting and deployment hardening process.
Deployment Install through Unraid, CasaOS, Umbrel, Cosmos Cloud, Home Assistant, Windows, or Kubernetes; use published amd64/arm64 images and optional rootless container settings.
Integrations Connect Playnite, RomM, and SeerrNG using the documented integration paths.
Design Clean, minimalist, dark-first UI built with mobile usage in mind.

Supported Indexers/Downloaders

  • Prowlarr synchronization is supported to add all your indexers at once.
  • G4u.to: the site offers an API to VIP members, which can be used in Questarr.
Indexers Downloaders
Torznab protocol (Torrent) - qBittorent
- Transmission
- rTorrent
- Deluge
- Synology Download Station
Newznab protocol (Usenet) - Sabnzbd
- Nzbget
G4U.to Same as Newznab

SeerrNG integration

QuestarrNG provides SeerrNG with an IGDB catalog and request-scoped PC-game acquisition through a versioned, authenticated integration API. The contract keeps SeerrNG's request ID and selected OS/architecture attached to QuestarrNG's tracked game and download records. See docs/API.md for the catalog, status, retry, cancellation, and imported-file streaming routes. Cancellation stops only downloads safely correlated to the SeerrNG request; completed files remain on disk, and ambiguous active downloads are refused. If Questarr restarts during a handoff before recording its download, it pauses the request for a duplicate-download check before retrying or cancelling. The retry or cancel endpoint returns 409 with confirmationRequired until the caller checks the download queue/history and sends confirmNoExistingDownload: true. QuestarrNG 1.11.0 adds browser-local interface language selection and regional date and number formatting. It also advertises provider contract v2, preserves exact IGDB request identity, and can show verified Steam ownership and community play-time estimates. It supports authenticated multi-file bundles and can stage Real-Debrid downloads locally before import. Emulation acquisition remains unsupported. See the compatibility guide.

Import processing and file safety

Post-processing can move, copy, hardlink, or symlink completed downloads into your PC library, unpack supported archives, or route matched ROM imports into RomM folders. Optional VirusTotal hash checks and ClamAV scans run before unpacking or import. The import guide explains setup, platform-folder mappings, scanner behavior, and Pending Imports review.

Installation

Docker is the easiest way to deploy QuestarrNG with all dependencies included. SQLite is the default database; PostgreSQL is available as an optional backend. See docs/DATABASE.md before configuring PostgreSQL.

The optional Windows installer runs QuestarrNG as a Windows service and bundles its service host as a self-contained .NET 10 LTS executable. QuestarrNG itself is a Node.js application; the installer does not require a separate .NET runtime.

Supported architectures: released QuestarrNG Docker images are published for linux/amd64 and linux/arm64, so the app runs on a Raspberry Pi 4/5 with a 64-bit OS, other 64-bit ARM SBCs, and ARM-based NAS boxes as well as on x86 hardware. Docker selects the right architecture automatically — the commands below are identical on every platform. (32-bit ARM, e.g. armv7/a 32-bit OS on Raspberry Pi 3 and earlier, is not supported. The Home Assistant add-on is amd64-only.)

Option 1: Quick start (direct Docker)

mkdir -p ./data
docker run -d -p 5000:5000 --user "$(id -u):$(id -g)" \
  -e PUID="$(id -u)" -e PGID="$(id -g)" \
  -v ./data:/app/data --name questarrng ghcr.io/snapetech-org/questarrng:latest

Option 2: Docker Compose (more detailed)

  1. Use the docker-compose.yml file from the repo or create a minimal one:

    services:
      app:
        image: ghcr.io/snapetech-org/questarrng:latest
        user: "${PUID:-1000}:${PGID:-1000}"
        ports:
          - "5000:5000"
        volumes:
          - ./data:/app/data
        environment:
          - SQLITE_DB_PATH=/app/data/sqlite.db
        restart: unless-stopped
    
  2. Start the application:

    mkdir -p ./data
    PUID="$(id -u)" PGID="$(id -g)" docker compose up -d
    
  3. Access the application: Open your browser to http://localhost:5000

The image runs as a non-root user by default. Set PUID and PGID to the owner of the mounted data directory; the Compose file uses those values as the container user. Existing installs keep their data and should set these values to the current owner. For a read-only container filesystem, drop all Linux capabilities, and block privilege escalation, use the docker-compose.hardened.yml overlay. It runs the app as the configured PUID:PGID directly, so prepare the bind-mounted ./data directory with that ownership before starting it.

  1. Optional — use Postgres instead of SQLite:

    Questarr uses SQLite by default and needs no database configuration. If you would rather run it against Postgres, use the bundled compose file:

    POSTGRES_PASSWORD=$(openssl rand -hex 32) docker compose -f docker-compose.postgres.yml up -d
    

    Keep whatever password you pick — the same value must be supplied on every restart, and it must be safe to embed in a connection URL (a hex string from openssl rand -hex 32 always is).

    Switching an existing SQLite install to Postgres does not move your data — run scripts/sqlite-to-pg.ts to bring your library across. See docs/DATABASE.md.

Windows (installer)

Install via the Windows installer (.exe)

Prefer running Questarr as a native Windows service instead of Docker? Download QuestarrSetup-<version>-windows-x64.exe from the latest QuestarrNG release and run it. The installer bundles Node.js, installs Questarr as a Windows service (Questarr.Service.exe), and starts it automatically — open http://localhost:5000 once it finishes.

Proxmox VE (LXC)

Deploy as a Proxmox LXC container — no Docker

Run this on your Proxmox VE host, as root, to create an LXC container with Questarr installed and running as a systemd service:

bash -c "$(curl --fail --silent --show-error --location --proto '=https' --proto-redir '=https' https://raw.githubusercontent.com/snapetech/QuestarrNG/main/scripts/proxmox/questarr-lxc.sh)"

The script picks the next free container ID, downloads a Debian template if needed, creates an unprivileged container, builds Questarr from source, and prints the URL to open. Every prompt has a default, so you can accept them all and be done in a few minutes.

Update later with pct exec <ctid> -- update.

See docs/PROXMOX.md for non-interactive installs, sizing guidance, configuration, and troubleshooting.

UNRAID

Install via Community Applications

The upstream Questarr Community Apps entry uses the upstream image and does not include this fork's SeerrNG integration routes. Use the QuestarrNG fork template for ghcr.io/snapetech-org/questarrng:latest. QuestarrNG works as a standalone game manager; SeerrNG integration is optional. For package or integration support, use the SeerrNG issue tracker.

  1. Install the QuestarrNG template rather than the upstream Questarr template.
  2. Set your Data Path (default /mnt/user/appdata/questarrng), PUID/PGID, and HTTP port (default 5000).
  3. Set the Game Library and Downloads paths to the folders shared with your download client. The game library is mounted at /data inside the container; add a matching entry under Settings → Path Mappings when the download client reports a different path.
  4. Apply, then open http://<unraid-host>:5000 to access the UI.

The image runs as a non-root user. The template maps that user to 99:100 by default; make sure the mounted folders are writable by that ID. If you change PUID/PGID, update the template's Extra Parameters --user value to match.

CasaOS

Install via Custom Install (AppFile)
  1. Open the App Store and click Custom Install.
  2. Click the import icon (top right) and paste this URL: https://raw.githubusercontent.com/snapetech/QuestarrNG/main/casaos/docker-compose.yml
  3. Review the mounts — by default /DATA/AppData/questarr holds Questarr's data and /DATA/Downloads is mounted at /data so Questarr can import finished downloads. If you keep that second mount, add a matching entry under Settings → Path Mappings.
  4. Click Install, then open Questarr from the CasaOS dashboard (port 5000).

Umbrel

Install via Community App Store
  1. In umbrelOS, open the App Store.
  2. Click the ā‹® menu (top right) → Community App Stores.
  3. Add this repository URL: https://github.com/snapetech/QuestarrNG
  4. Open the Snapetech store and install QuestarrNG (app ID doezer-questarr, retained for existing installs), then open it from your dashboard (http://umbrel.local:5000).

Cosmos Cloud

Install as a ServApp
  1. Open Market Place → Custom Install (or Servapps → Add).
  2. Paste this URL: https://raw.githubusercontent.com/snapetech/QuestarrNG/main/cosmos/questarr.cosmos-compose.json
  3. Fill in the install form: Data folder, optional Library folder (the root your download client writes into, mounted at /data), and PUID/PGID.
  4. Install. Cosmos creates the route questarr.<your-server-hostname> and handles HTTPS for you.

Kubernetes (Helm)

Install with the bundled Helm chart

A Helm chart lives in charts/questarr. It is not published to a Helm repository yet, so install it from a clone:

git clone https://github.com/snapetech/QuestarrNG.git
cd QuestarrNG
helm install questarr charts/questarr --namespace questarr --create-namespace

Then port-forward (or enable the Ingress) and open the UI:

kubectl port-forward -n questarr svc/questarr 5000:5000

Questarr keeps its state in a single SQLite database on a ReadWriteOnce volume, so the chart never runs more than one replica. See charts/questarr/README.md for the full option reference — persistence, media mounts, secrets, Ingress and subdirectory deployments.

Home Assistant Add-on

Install as a Home Assistant add-on

You can install Questarr as a Home Assistant add-on from this repository:

  1. In Home Assistant, open Settings → Add-ons → Add-on Store.
  2. Click the menu (ā‹®) and choose Repositories.
  3. Add this repository URL: https://github.com/snapetech/QuestarrNG
  4. Install the Questarr add-on and start it.
  5. Open http://<home-assistant-host>:5000 to access the UI.

All platform definitions live in the repository and share the same mounts and ports — see docs/HOME_SERVER_APPS.md for details.

Screenshots

šŸ‘€ See the app in action

Library

Your central hub for recent activity, collection overview and downloading available games. Manage your owned and wanted games.

Wishlist & Release calendar

Manage your wanted games and when they release.

Discover Games

Browse and find new games to add to your collection.

RSS & xRel.to feeds

Custom RSS feeds and xRel.to flux matched to IGDB games directly into the app. Default RSS is set to fitgirl site.

Downloads Queue

Monitor your downloaders' active downloads and history.

Statistics

Check out your library statistics.

Settings

Configure indexers, downloaders, and application preferences.

Tech Stack

React TypeScript Vite Tailwind CSS Node.js SQLite Node.js language OS CPU

  • APIs: IGDB (game metadata), Torznab/Newznab (indexer search), PCGamingWiki, NexusMods, xREL.to
  • AIs usage:
    • Claude and Github Copilot are used for AI-Assisted coding, internal code reviews, PR cleanup. Eventually automated coding and troubleshooting for small tasks and bug reports.
    • Gemini & Codex are used for automated code reviews, and brainstorming from time to time (as well as Perplexity for this usage).
    • Google Jules is used for light periodical refactoring.

Configuration

  1. First-time setup:
  • Create your admin account
  • Configure the IGDB credentials

Once logged-in:

  • Configure indexers
  • Add downloaders
  • Add games!

See the upstream Configuration Wiki for more detailed info.

Getting IGDB API Credentials

IGDB provides game metadata (covers, descriptions, ratings, release dates, etc.).

  1. Go to Twitch Developer Console
  2. Log in with your Twitch account (create one if needed)
  3. Click "Register Your Application"
  4. Fill in:
    • Name: Questarr (or any name)
    • OAuth Redirect URLs: http://localhost (not used, but required)
    • Category: Application Integration
  5. Click "Create"
  6. Copy your Client ID and Client Secret
  7. Add them to your .env file
Upgrading from v1.0 (PostgreSQL)

If you are upgrading from an older version that used PostgreSQL, you need to migrate your data.

The migration tooling was removed in v1.5.0 and is now run from the archived v1.4.2 release. Follow docs/MIGRATION.md, which inlines the pinned compose file and links the sources by tag permalink.

This is only for pre-v1.1 PostgreSQL installations. Running Questarr on PostgreSQL as an opt-in backend is a separate feature — see docs/DATABASE.md.

See docs/MIGRATION.md for more details.

Advanced usage

Docker compose

This is mainly for users who want the latest commit (e.g when trying out fixes for an issue) or contributing users.

  1. Clone the repository:
git clone https://github.com/snapetech/QuestarrNG.git
cd QuestarrNG
  1. Configure the application: Edit docker-compose.yml directly if you need to setup a specific environment.

  2. Build and start the containers:

docker-compose up -d
  1. Access the application: Open your browser to http://localhost:5000

Update to latest version for Docker

Your database content will be kept.

git pull
docker-compose down
docker-compose build --no-cache
docker-compose up -d

Reverse proxy / subdirectory deployment

Want to serve Questarr from a path like https://xxx.domain.com/Questarr instead of its own subdomain? Set QUESTARR_BASE_PATH=/Questarr on the container (or in .env for npm installs) and point your reverse proxy at it — no rebuild required. See docs/REVERSE_PROXY.md for full setup instructions (nginx, Traefik, Caddy).

Roadmap

The original upstream roadmap is now partly delivered and partly superseded by fork work. Post-processing, indexer links, optional PostgreSQL, RomM import routing, and the Playnite and SeerrNG integrations are shipped. The remaining product proposals are version-aware game upgrades, debrid/direct-download providers, importing owned Steam or GOG libraries, and possible Gameyfin or user-defined webhook integrations. The maintained PRD marks what is shipped, what remains, and which ideas have no delivery commitment. The UI localization roadmap tracks current language and calendar coverage, plus the remaining screen-level translation and RTL work.

Troubleshooting

See the upstream Troubleshooting Wiki

If you run into an issue, go to the Logs page and click Send Logs before reporting it — it makes diagnosing the problem much easier.

Getting Help

Project Security & Documentation

Contributing

Contributors

Made with contrib.rocks.

Legal Disclaimer

QuestarrNG is a self-hosted game manager designed solely for organizing, tracking, and automating game libraries using user-provided data and metadata APIs (such as IGDB). QuestarrNG does not host, distribute, or provide any copyrighted game content, ROMs, or download links. It is a technology-neutral tool: any indexers, download clients, or sources you configure are chosen and operated entirely by you. You are solely responsible for ensuring that your use of QuestarrNG, and any content you access or download through third-party services you configure, complies with all applicable laws and the terms of service of those third parties.

License

GPL-3.0-only - see COPYING for the full license text.

Acknowledgments

  • Inspired by Sonarr and GamezServer
  • Game metadata powered by IGDB API
  • UI components from shadcn/ui
  • Security scanning supported by Snyk through the Snyk Open Source program
  • AI code reviews by CodeRabbit, free for open source
  • This project is tested with BrowserStack

Requirements

Docker and persistent appdata. Configure this app independently before connecting it to SeerrNG.

Related apps

Explore more like this

Explore all

Details

Repository
ghcr.io/snapetech/questarrng:latest
Last Updated2026-10-14
First Seen2026-09-28

Runtime arguments

Web UI
http://[IP]:[PORT:5000]/
Network
bridge
Shell
sh
Privileged
false
Extra Params
--restart=unless-stopped --user=99:100

Template configuration

Web UI PortPorttcp

Web UI Port for the standalone web interface.

Target
5000
Default
5000
Value
5000
AppdataPathrw

Persistent QuestarrNG database and settings.

Target
/app/data
Default
/mnt/user/appdata/questarrng
Value
/mnt/user/appdata/questarrng
Game LibraryPathrw

Game library root.

Target
/data
Default
/mnt/user/media/games
Value
/mnt/user/media/games
DownloadsPathrw

Downloads shared with the configured download client.

Target
/downloads
Default
/mnt/user/downloads
Value
/mnt/user/downloads
PUIDVariable

User ID for files created by this service.

Default
99
Value
99
PGIDVariable

Group ID for files created by this service.

Default
100
Value
100
TZVariable

Time zone used by this service.

Default
Etc/UTC
Value
Etc/UTC
PORTVariable

Internal QuestarrNG web port.

Default
5000
Value
5000