MCPcopy Index your code
hub / github.com/Doezer/Questarr

github.com/Doezer/Questarr @v1.3.1

Chat with this repo
repository ↗ · DeepWiki ↗ · release v1.3.1 ↗ · + Follow
1,054 symbols 2,948 edges 259 files 39 documented · 4%
What it actually does AI analysis from the code graph — generated when you open this
loading…
README

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.







<a href="https://hub.docker.com/r/doezer/questarr">
  <img src="https://img.shields.io/docker/pulls/doezer/questarr?logo=docker&logoColor=white" alt="Docker Pulls">
</a>
<a href="https://github.com/Doezer/Questarr/pkgs/container/questarr">
  <img src="https://img.shields.io/badge/ghcr.io-questarr-blue?logo=github&logoColor=white" alt="GHCR">
</a>
<a href="https://github.com/Doezer/Questarr/blob/main/COPYING">
  <img src="https://img.shields.io/github/license/Doezer/Questarr" alt="License">
</a>
<a href="https://github.com/Doezer/Questarr/actions/workflows/ci.yml">
  <img src="https://github.com/Doezer/Questarr/actions/workflows/ci.yml/badge.svg" alt="CI">
</a>
<a href="https://codecov.io/gh/Doezer/Questarr">
  <img src="https://codecov.io/gh/Doezer/Questarr/branch/main/graph/badge.svg" alt="Codecov">
</a>







<a href="https://discord.gg/STkp86wP9F">
  <img src="https://img.shields.io/badge/Discord-Join%20Us-7289da?logo=discord&logoColor=white" alt="Discord">
</a>
<a href="https://buymeacoffee.com/doezer">
  <img src="https://img.shields.io/badge/Buy%20Me%20A%20Coffee-Donate-FFDD00?logo=buymeacoffee&logoColor=black" alt="Buy Me A Coffee">
</a>

Features

  • 🎮 Game Discovery: Browse popular games, new releases, and upcoming titles via IGDB integration and xREL.to. Sync your Steam wishlist.
  • 📚 Library Management: Track your game collection with status indicators (Wanted, Owned, Playing, Completed), user ratings, and Early Access badges.
  • ⬇️ Download Management: Integrate with indexers (Prowlarr/Torznab/Newsznab), torrent/usenet downloaders (qBittorrent, Transmission, rTorrent / sabnzbd, nzbget), and optionally enable auto-download to get them right when they're there.
  • 🔍 Search & Filter: Find games by genre, platform, and search terms. Automatically search for added games until available on your indexers. Blacklist unwanted releases and set preferred release groups and platforms.
  • 🗂️ Rich Metadata: Game details enriched with IGDB, Steam, HowLongToBeat, PCGamingWiki links, and NexusMods pages, as well as trending mods (if applicable).
  • 📊 Stats Page: Visualize your collection statistics, with Discord sharing support.
  • 📰 RSS Feeds: Monitor releases from your favorite groups directly within the app.
  • 🔒 Privacy Focused: No external dependencies (even google fonts are locally hosted) and hardened security (CSP, SSRF protection), as well as SSL support.
  • ✨ Clean Interface: UI optimized for browsing game covers and metadata, with light/dark mode.

Screenshots

👀 See the app in action

Dashboard

Your central hub for recent activity, collection overview and downloading available games.

Discover Games

Browse and find new games to add to your collection.

Library & Wishlist

Manage your wanted and owned games.

Calendar

Keep track of upcoming releases.

Downloads Queue

Monitor your downloaders' active downloads and history.

Statistics

Check out your library statistics.

RSS & xRel.to feeds

Custom RSS feeds and xRel.to flux matched to IGDB games directly into the app

Settings

Configure indexers, downloaders, and application preferences.

Tech Stack

<img src="https://img.shields.io/badge/React-20232A?style=flat&logo=react&logoColor=61DAFB" alt="React">
<img src="https://img.shields.io/badge/TypeScript-007ACC?style=flat&logo=typescript&logoColor=white" alt="TypeScript">
<img src="https://img.shields.io/badge/Vite-646CFF?style=flat&logo=vite&logoColor=white" alt="Vite">
<img src="https://img.shields.io/badge/Tailwind_CSS-38B2AC?style=flat&logo=tailwind-css&logoColor=white" alt="Tailwind CSS">
<img src="https://img.shields.io/badge/Node.js-43853D?style=flat&logo=node.js&logoColor=white" alt="Node.js">
<img src="https://img.shields.io/badge/SQLite-07405E?style=flat&logo=sqlite&logoColor=white" alt="SQLite">
  • Frontend: React 18, TypeScript, Vite, Tailwind CSS, shadcn/ui
  • Backend: Node.js, Express, TypeScript
  • Database: SQLite with Drizzle ORM
  • APIs: IGDB (game metadata), Torznab/Newznab (indexer search), HowLongToBeat, PCGamingWiki, NexusMods, xREL.to
  • AIs usage:
  • Claude and Github Copilot are used for AI-Assisted coding, internal code reviews, PR cleanup (Gemini previously). Eventually automated coding and troubleshooting for small tasks.
  • Gemini & Codex are used for automated code reviews, and brainstorming from time to time.
  • Google Jules was previously used for light periodical refactoring

Installation

Using Docker (Recommended)

Docker is the easiest way to deploy Questarr with all dependencies included. Questarr uses a SQLite database which is self-contained in the application container.

Fresh Install

Option 1: One-liner (Simplest)

docker run -d -p 5000:5000 -v ./data:/app/data --name questarr ghcr.io/doezer/questarr:latest

Option 2: Docker Compose

  1. Create a docker-compose.yml file:

yaml services: app: image: ghcr.io/doezer/questarr:latest ports: - "5000:5000" volumes: - ./data:/app/data environment: - SQLITE_DB_PATH=/app/data/sqlite.db restart: unless-stopped

  1. Start the application:

bash docker compose up -d

  1. Access the application: Open your browser to http://localhost:5000

Upgrading from v1.0 (PostgreSQL)

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

  1. Stop your current application:

    bash docker compose down

  2. Get the migration tools: Download the docker-compose.migrate.yml file to your directory.

  3. Run the migration: This command spins up your old database and converts the data to the new format automatically.

    bash docker compose -f docker-compose.migrate.yml up --abort-on-container-exit

  4. Update your deployment: Replace your docker-compose.yml with the new version (see "Fresh Install" above).

  5. Start the new version: bash docker compose up -d

See docs/MIGRATION.md for more details.

Configuration

  1. First-time setup:

  2. Create your admin account

  3. Configure the IGDB credentials

Once logged-in:

  • Configure indexers
  • Add downloaders
  • Add games!

See Configuration on the 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:
  5. Name: Questarr (or any name)
  6. OAuth Redirect URLs: http://localhost (not used, but required)
  7. Category: Application Integration
  8. Click "Create"
  9. Copy your Client ID and Client Secret
  10. Add them to your .env file

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/Doezer/Questarr.git
cd Questarr
  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

Manual Installation (npm) - NOT RECOMMENDED

For development or custom deployments without Docker.

  1. Clone and install dependencies:
git clone https://github.com/Doezer/Questarr.git
npm install
  1. Configure environment variables in .env: See the .env.example for available variables.

  2. Initialize the database: This will run available migration files.

npm run db:migrate
  1. Development mode (with hot reload):
npm run dev
  1. Access the application: Open your browser to http://localhost:5000

Troubleshooting

See Troubleshooting on the Wiki

Getting Help

Contributing

See .github/CONTRIBUTING.md for guidelines on how to contribute to this project.

Contributors

Made with contrib.rocks.

License

GPL3 License - see COPYING file for details.

Acknowledgments

Extension points exported contracts — how you extend this code

DownloaderClient (Interface)
(no doc) [10 implementers]
server/downloaders.ts
IStorage (Interface)
(no doc) [4 implementers]
server/storage.ts
SteamWishlistApiItem (Interface)
* Response shape from the official IWishlistService/GetWishlist/v1 endpoint. * Each item contains the Steam App ID, pri
server/steam.ts
GameGridProps (Interface)
(no doc)
client/src/components/GameGrid.tsx
DownloadStatus (Interface)
(no doc)
client/__tests__/use-background-notifications.test.ts
TableConfig (Interface)
(no doc)
scripts/pg-to-sqlite.ts
ReleaseMetadata (Interface)
(no doc)
shared/title-utils.ts
CategorizedDownload (Interface)
(no doc)
shared/download-categorizer.ts

Core symbols most depended-on inside this repo

cn
called by 242
client/src/lib/utils.ts
toast
called by 136
client/src/hooks/use-toast.ts
apiRequest
called by 83
client/src/lib/queryClient.ts
addDownload
called by 41
server/downloaders.ts
isSafeUrl
called by 39
server/ssrf.ts
addGameDownload
called by 34
server/storage.ts
checkAutoSearch
called by 33
server/cron.ts
useToast
called by 29
client/src/hooks/use-toast.ts

Shape

Function 481
Method 395
Interface 138
Class 40

Languages

TypeScript100%

Modules by API surface

server/storage.ts233 symbols
server/downloaders.ts129 symbols
server/igdb.ts32 symbols
client/src/components/ui/sidebar.tsx24 symbols
client/src/lib/downloads-utils.ts23 symbols
server/cron.ts19 symbols
client/src/pages/calendar.tsx17 symbols
client/src/components/GameDownloadDialog.tsx17 symbols
server/xrel.ts14 symbols
client/src/components/GameDetailsModal.tsx14 symbols
server/torznab.ts13 symbols
server/nexusmods.ts13 symbols

Datastores touched

questarrDatabase · 1 repos

For agents

$ claude mcp add Questarr \
  -- python -m otcore.mcp_server <graph>

⬇ download graph artifact

Ask about this repo answers extend the page