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
- 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
-
Create a docker-compose.yml file:
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
-
Start the application:
-
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.
-
Stop your current application:
-
Get the migration tools:
Download the docker-compose.migrate.yml file to your directory.
-
Run the migration:
This command spins up your old database and converts the data to the new format automatically.
docker compose -f docker-compose.migrate.yml up --abort-on-container-exit
-
Update your deployment:
Replace your docker-compose.yml with the new version (see โFresh Installโ above).
-
Start the new version:
See docs/MIGRATION.md for more details.
Configuration
- First-time setup:
- Create your admin account
- 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](https://dev.twitch.tv/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
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:**
```bash
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.
1. **Build and start the containers:**
```bash
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.
```bash
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:**
```bash
git clone https://github.com/Doezer/Questarr.git
npm install
```
2. **Configure environment variables in `.env`:**
See the .env.example for available variables.
3. **Initialize the database:**
This will run available migration files.
```bash
npm run db:migrate
```
5. **Development mode (with hot reload):**
```bash
npm run dev
```
6. **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