Skip to content

Latest commit

 

History

History
122 lines (90 loc) · 4.34 KB

File metadata and controls

122 lines (90 loc) · 4.34 KB

Configuration


Configure all store connections through the Settings page in Backlogia. Each store section includes step-by-step instructions for obtaining the required credentials.

Store Credentials

Store Credential Source
Steam Steam Web API for API key
IGDB Twitch Developer Console (IGDB uses Twitch auth)
Epic Games OAuth flow in Settings page
GOG Reads from local GOG Galaxy database OR uses bookmarklet import (instructions in Settings)
itch.io itch.io API Keys
Humble Bundle Session cookie from browser (instructions in Settings)
Battle.net Session cookie from browser (instructions in Settings)
Amazon OAuth flow in Settings page
EA Bearer token via bookmarklet (instructions in Settings)
Xbox / Game Pass XSTS token via bookmarklet or browser DevTools (instructions in Settings). Game Pass catalog syncs without authentication.
Ubisoft Bookmarklet import from account.ubisoft.com (instructions in Settings)
Local Folder Configure paths in .env file (see Local Games below)

Local Games

Import games from local folders on your machine. Each subfolder is treated as a game and matched to IGDB for metadata.

Setup

  1. Add your game folder paths to .env (up to 5 by default):

    LOCAL_GAMES_DIR_1=/path/to/games
    LOCAL_GAMES_DIR_2=/mnt/storage/more-games
    # Add more in docker-compose.yml if you need more than 5
  2. Restart the container (paths are mounted automatically):

    docker compose down && docker compose up -d
  3. Click "Sync Local" in Settings to import games

Folder Structure

/path/to/games/
├── The Witcher 3/          → Imported as "The Witcher 3"
├── DOOM 2016/              → Imported as "DOOM 2016"
└── Hollow Knight/          → Imported as "Hollow Knight"

Override File (game.json)

For better IGDB matching or custom names, create a game.json file inside any game folder:

{
  "name": "The Witcher 3: Wild Hunt",
  "igdb_id": 1942
}

All fields are optional:

Field Description
name Override the game name (used for display and IGDB matching)
igdb_id Manually specify the IGDB game ID for exact matching
description Custom description
developers Array of developer names, e.g. ["CD Projekt Red"]
genres Array of genres, e.g. ["RPG", "Action"]
release_date Release date in ISO format, e.g. "2015-05-19"
cover_image URL to a custom cover image

Example game.json:

{
  "name": "DOOM (2016)",
  "igdb_id": 7351,
  "developers": ["id Software"],
  "genres": ["FPS", "Action"]
}

After syncing local games, run "Sync Missing Metadata" to fetch cover images, ratings, and other data from IGDB.


Metadata Overrides

You can manually override two metadata fields on any game, directly from the UI. These overrides are never overwritten by store syncs or IGDB sync.

Genres Override

Replaces the store/IGDB-provided genres with a custom list.

  • Library view: click the pencil icon (✏) on any game card, or select multiple games and click "Edit Metadata" in the action bar
  • Game detail page: click "Edit Metadata" next to the "+ Add to Collection" button
  • Type to search and add tags; existing genres are suggested via autocomplete
  • Leave the field empty to reset to the original store/IGDB genres

Playtime Label

Assigns an explicit playtime status to a game, independently of the numeric hours reported by stores.

Available labels:

Label Meaning Auto-derived from hours when no label is set
Not played Never launched playtime_hours is 0 or missing
Just tried A few minutes to 2 hours 0 < hours ≤ 2
Played Played for a while 2 < hours ≤ 20
Heavily played Many hours logged hours > 20
Abandoned Started but gave up (explicit only)

The label can be set via the same edit modal as genres. When no explicit label is set, the game detail page derives and displays a label from the raw playtime_hours value.