Your Game Collection,
Beautifully Organized

RetroArr is a self-hosted game library manager that automatically enriches your collection with metadata, cover art, and more, for retro classics and modern titles alike.

Open Source Self-Hosted Docker Ready 170+ Platforms
RetroArr Dashboard

Everything You Need

A complete toolkit for managing your game library

🎮

170+ Platforms

From Atari 2600 to PlayStation 5, Nintendo Switch, PC, and everything in between. Full retro and modern platform support.

🔍

Auto Metadata

Automatically fetch cover art, descriptions, ratings, and more from IGDB and ScreenScraper.fr with intelligent matching.

📊

Statistics

Genre distribution, platform breakdown, rating analysis, and detailed insights into your collection at a glance.

📁

Library Resort

Automatically organize and rename your game files with customizable naming patterns and folder structures.

đŸŗ

Docker Native

Deploy in seconds with Docker. Multi-architecture support for x86_64 and ARM64. One command to get started.

🌍

Multi-Language

UI translated into English, German, French, Spanish, Russian, Chinese, and Japanese.

🔗

Integrations

Connect with Prowlarr, Steam, GOG, IGDB, and ScreenScraper. Automated download management and import.

đŸˇī¸

Tags & Collections

Organize games with custom tags, smart collections, favorites, and personal ratings and reviews.

đŸ•šī¸

Play in Browser

Built-in retro emulator powered by EmulatorJS. Play supported platforms directly from the web UI with save state support.

See RetroArr in Action

A modern, responsive web interface built for game collectors

Game Details
Game Details: full metadata, ratings, notes, tags, and file management
Statistics
Statistics: genre distribution, platform breakdown, and rating analysis
Settings
Settings: configure media paths, metadata sources, and connections
System Status
Status: monitor system health, active tasks, and service connections

Get Started in Seconds

Choose your preferred installation method

đŸŗ Docker Compose Recommended

services:
  retroarr:
    image: ghcr.io/riddix/retroarr:latest
    container_name: retroarr
    ports:
      - "2727:2727"      # HTTP
      - "2728:2728"      # HTTPS (self-signed, optional)
    volumes:
      - ./config:/app/config
      - /path/to/games:/media
      - /path/to/downloads:/downloads
      - ./savestates:/app/savestates
    environment:
      - PUID=1000
      - PGID=1000
      - RETROARR_HTTPS_PORT=2728   # remove to disable HTTPS
    restart: unless-stopped

Save as docker-compose.yml and run docker compose up -d

đŸ–Ĩī¸ Docker CLI

docker run -d \
  --name retroarr \
  -p 2727:2727 \
  -p 2728:2728 \
  -e RETROARR_HTTPS_PORT=2728 \
  -v ./config:/app/config \
  -v /path/to/games:/media \
  -v /path/to/downloads:/downloads \
  -v ./savestates:/app/savestates \
  ghcr.io/riddix/retroarr:latest

Access the web UI at http://localhost:2727 or https://localhost:2728

đŸ“Ļ Standalone Binary

Download the latest release for your platform:

Extract and run the executable. Configuration is stored in ./config/

🔑 First-Run API Key

On first start RetroArr generates an API key in config/apikey.json. Loopback requests (the Docker healthcheck, the bundled web UI) work without it. LAN and remote clients need to send it as a header:

curl -H "X-Api-Key: <your-key>" \
     http://your-host:2727/api/v3/games

View or rotate the key in Settings → API access. EmulatorJS assets and the player iframe are exempt from the key, since browsers can't attach headers to <script> tags.

170+ Supported Platforms

Atari 2600Atari 7800Atari LynxAtari Jaguar NESSNESNintendo 64GameCubeWiiWii USwitch Game BoyGame Boy AdvanceNintendo DS3DS PlayStation 1PlayStation 2PlayStation 3PS VitaPSPPS4PS5 Sega Master SystemMega DriveSaturnDreamcastGame Gear XboxXbox 360 Neo GeoNeo Geo Pocket TurboGrafx-16PC Engine CPS-1CPS-2CPS-3FinalBurn NeoMAME Commodore 64AmigaMSXZX Spectrum MS-DOSPC (Windows)ScummVM WonderSwanVectrex3DOIntellivisionColecoVision and many more...