All apps Ā· 0 apps
QuestarrNG
Docker app from questarrng's Repository
Overview
Readme
View on GitHubQuestarrNG
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.

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.
ā Star us on GitHub ā your support motivates us a lot! šš
Table of Contents
- What this fork adds
- List of features
- Installation
- Screenshots
- Tech Stack
- Configuration
- Roadmap
- Troubleshooting
- Project Security & Documentation
- Contributing
- License
- Acknowledgments
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)
Use the
docker-compose.ymlfile 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-stoppedStart the application:
mkdir -p ./data PUID="$(id -u)" PGID="$(id -g)" docker compose up -dAccess 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.
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 -dKeep 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 32always is).Switching an existing SQLite install to Postgres does not move your data ā run
scripts/sqlite-to-pg.tsto 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.
- Install the QuestarrNG template rather than the upstream Questarr template.
- Set your Data Path (default
/mnt/user/appdata/questarrng), PUID/PGID, and HTTP port (default5000). - Set the Game Library and Downloads paths to the folders shared with your download client. The game
library is mounted at
/datainside the container; add a matching entry under Settings ā Path Mappings when the download client reports a different path. - Apply, then open
http://<unraid-host>:5000to 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)
- Open the App Store and click Custom Install.
- Click the import icon (top right) and paste this URL:
https://raw.githubusercontent.com/snapetech/QuestarrNG/main/casaos/docker-compose.yml - Review the mounts ā by default
/DATA/AppData/questarrholds Questarr's data and/DATA/Downloadsis mounted at/dataso Questarr can import finished downloads. If you keep that second mount, add a matching entry under Settings ā Path Mappings. - Click Install, then open Questarr from the CasaOS dashboard (port
5000).
Umbrel
Install via Community App Store
- In umbrelOS, open the App Store.
- Click the ā® menu (top right) ā Community App Stores.
- Add this repository URL:
https://github.com/snapetech/QuestarrNG - 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
- Open Market Place ā Custom Install (or Servapps ā Add).
- Paste this URL:
https://raw.githubusercontent.com/snapetech/QuestarrNG/main/cosmos/questarr.cosmos-compose.json - Fill in the install form: Data folder, optional Library folder (the root your download
client writes into, mounted at
/data), andPUID/PGID. - 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:
- In Home Assistant, open Settings ā Add-ons ā Add-on Store.
- Click the menu (ā®) and choose Repositories.
- Add this repository URL:
https://github.com/snapetech/QuestarrNG - Install the Questarr add-on and start it.
- Open
http://<home-assistant-host>:5000to 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
- 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
- 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.).
- Go to Twitch Developer Console
- Log in with your Twitch account (create one if needed)
- Click "Register Your Application"
- Fill in:
- Name: Questarr (or any name)
- OAuth Redirect URLs:
http://localhost(not used, but required) - Category: Application Integration
- Click "Create"
- Copy your Client ID and Client Secret
- Add them to your
.envfile
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.
- Clone the repository:
git clone https://github.com/snapetech/QuestarrNG.git
cd QuestarrNG
Configure the application: Edit
docker-compose.ymldirectly if you need to setup a specific environment.Build and start the containers:
docker-compose up -d
- 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
- Issues: GitHub Issues
- Discussions: GitHub Discussions
- Discord: Join our Server
Project Security & Documentation
- What changed in the fork summarizes the maintained additions since the upstream baseline.
- Import processing and security scans explains RomM routing, archive handling, and optional malware checks.
- Start with docs/GITHUB_DOCUMENTATION.md for the full documentation map.
Contributing
- See .github/CONTRIBUTING.md for guidelines on how to contribute to this project.
- See MAINTAINERS.md for how repository access and release permissions are managed.
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
Categories
Related apps
Explore more like this
Explore allDetails
ghcr.io/snapetech/questarrng:latestRuntime 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 Port for the standalone web interface.
- Target
- 5000
- Default
- 5000
- Value
- 5000
Persistent QuestarrNG database and settings.
- Target
- /app/data
- Default
- /mnt/user/appdata/questarrng
- Value
- /mnt/user/appdata/questarrng
Game library root.
- Target
- /data
- Default
- /mnt/user/media/games
- Value
- /mnt/user/media/games
Downloads shared with the configured download client.
- Target
- /downloads
- Default
- /mnt/user/downloads
- Value
- /mnt/user/downloads
User ID for files created by this service.
- Default
- 99
- Value
- 99
Group ID for files created by this service.
- Default
- 100
- Value
- 100
Time zone used by this service.
- Default
- Etc/UTC
- Value
- Etc/UTC
Internal QuestarrNG web port.
- Default
- 5000
- Value
- 5000












