A self-hosted web app for tracking upcoming Steam game releases, managing a wishlist, and searching for released games via Prowlarr.
- Browse upcoming Steam releases — paginated, searchable, sortable
- Wishlist — save games you're interested in, split into upcoming and released sections
- Calendar — monthly and yearly views of wishlisted games with concrete release dates
- Prowlarr integration — search your indexers for released games
- RSS feed —
/feed/releasedprovides an RSS feed of released wishlist games with best-guess torrent links from Prowlarr - Automatic release date refresh — checks Steam every 12 hours for updated release dates
- Configurable scoring — adjust how the RSS feed ranks torrent results (seeders, age, size, protocol)
- Bun v1.0+
- A Steam Web API key
- A Prowlarr instance (for search/RSS features)
git clone <repo-url> gamarr
cd gamarr
bun installCopy the sample env file and fill in your keys:
cp .env.sample .envEdit .env:
PROWLARR_URL=http://localhost:9696
PROWLARR_API_KEY=your_prowlarr_api_key
STEAM_WEB_API_KEY=your_steam_web_api_key| Variable | Description |
|---|---|
STEAM_WEB_API_KEY |
Get one at https://steamcommunity.com/dev/apikey |
PROWLARR_URL |
Base URL of your Prowlarr instance |
PROWLARR_API_KEY |
Prowlarr API key (Settings → General in Prowlarr) |
Development (auto-reload on file changes):
bun run devProduction:
bun run startOpen http://localhost:3000 in your browser.
The image is available at milanjansen/gamarr.
Docker Compose:
Create a docker-compose.yml:
services:
gamarr:
image: milanjansen/gamarr:latest
container_name: gamarr
restart: unless-stopped
ports:
- "3000:3000"
environment:
- STEAM_WEB_API_KEY=your_steam_web_api_key
- PROWLARR_URL=http://prowlarr:9696
- PROWLARR_API_KEY=your_prowlarr_api_key
volumes:
- ./data:/app/datadocker compose up -dDocker CLI:
docker run -d \
--name gamarr \
-p 3000:3000 \
-e STEAM_WEB_API_KEY=your_key \
-e PROWLARR_URL=http://prowlarr:9696 \
-e PROWLARR_API_KEY=your_key \
-v ./data:/app/data \
milanjansen/gamarr:latestcp .env.sample .env
# Edit .env with your keys
docker compose up -d --buildOr manually:
docker build -t gamarr .
docker run -d \
--name gamarr \
-p 3000:3000 \
-e STEAM_WEB_API_KEY=your_key \
-e PROWLARR_URL=http://prowlarr:9696 \
-e PROWLARR_API_KEY=your_key \
-v ./data:/app/data \
gamarrThe SQLite database is stored in the data/ directory. Mount this as a volume to persist data across container restarts.
The RSS feed is available at /feed/released and returns released wishlist games with the best-guess torrent/download link from Prowlarr. You can subscribe to this URL in any RSS reader or download client that supports RSS.
Scoring parameters for how the "best" result is picked can be adjusted under Settings → RSS Feed Scoring.
src/
├── api/ # Steam and Prowlarr API clients
├── db/ # SQLite database and queries
├── jobs/ # Scheduled background tasks
├── public/ # Static CSS and JS
├── routes/ # Hono route handlers
├── types/ # TypeScript type definitions
└── views/ # JSX layout and components