Features
- 🎮 Game Discovery: Browse popular games, new releases, and upcoming titles via IGDB integration and xREL.to.
- 📚 Library Management: Track your game collection with status indicators (Wanted, Owned, Playing, Completed).
- ⬇️ 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.
- 📰 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 (WIP)
Monitor your downloaders' active downloads and history.
### 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 (indexer search)
- AIs: Claude Sonnet 4.5, Gemini 3, Google Jules, GitHub Copilot
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
- Connect your Steam account (Optional)
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