Skip to content

Releases: wwwescape/VideoGameTrackarr

v2.4.4

Choose a tag to compare

@github-actions github-actions released this 31 Oct 11:01

This release keeps the Docker container healthy and stops it from piling up leftover processes.

🐛 Fixes

  • Fixed the container showing as unhealthy (for example in Portainer) even though the app was running fine. On slower hosts like a Raspberry Pi, the built-in health check could take longer than its time limit, so every check failed. It now has more time to answer, and new containers get a longer grace period at startup.
  • Fixed thousands of leftover <defunct> (zombie) processes building up inside the container over time. The container now runs a small init process (tini) that cleans them up automatically, so you no longer need init: true in your Compose file.

🏗️ Infrastructure

  • The container now switches to its unprivileged user with setpriv instead of su. Any command arguments you pass to the container are now passed through exactly as given.

📝 Good to Know

  • Pull the new image and recreate the container to apply the fix. Recreating it also clears out any leftover processes from before.
  • If your Compose file already has init: true, you can keep it or remove it. Both work.

v2.4.3

Choose a tag to compare

@github-actions github-actions released this 28 Oct 13:02

A small polish release for the Overview's rows of cards and a game's add-ons.

⚡ Improvements

  • Every row of cards on the Overview now pages with < and >. Now Playing, Recently played, Recently added games and Recently added hardware work like the Overview's other rows, with no scrollbar. Now Playing keeps its Backlog link next to View all.
  • A game's add-ons now wrap into a grid, like Screenshots and Videos, instead of scrolling sideways. Phones show two per row; wider screens fit as many as they can.
  • The > button now turns on or off correctly when you resize the window.

v2.4.2

Choose a tag to compare

@github-actions github-actions released this 27 Oct 15:40

A small polish release for the On Sale cards.

⚡ Improvements

  • Tidier On Sale cards. On the On Sale page and the Overview's On Sale section, each card now gives every detail its own line:
    • the price and discount
    • the store
    • the historical low
    • your target price
  • Details that don't fit a narrow card end in "…", and hovering shows the full text.
  • The Target hit chip is smaller and matches the card's other chips, in both the card and table views. On a narrow card, it moves to its own line rather than cutting off the target price.
  • On Sale cards no longer leave an empty gap under the year, where other cards show a play status.

v2.4.1

Choose a tag to compare

@github-actions github-actions released this 27 Oct 12:59

A small fix release for the A–Z jump bar on the Games cover grid.

🐛 Fixes

  • Fixed the A–Z jump bar beside the cover grid growing taller at the end of the list. Near the bottom of a long list the page could keep scrolling on its own; the bar now stays the height of the window. This was a bug from v2.0.0.

🏗️ Infrastructure

  • The cover and accessory photo upload tests now look for saved images in the test's temporary folder, matching the test isolation added in v2.4.0.

v2.4.0

Choose a tag to compare

@github-actions github-actions released this 27 Oct 11:30

This release lets you link your custom games to IGDB in bulk, simplifies backup and restore, and adds a Danger Zone for clearing or resetting your data.

✨ New: IGDB Import

A new IGDB Import page under Settings, just above Steam Sync, lists your custom games (the ones you added by hand) so you can link them to IGDB. (#52)

  • Find matches searches IGDB for each custom game by its exact name, ignoring case and symbols.
  • Each game shows Match found, Several matches (choose the right one), No match or In your library.
  • Link games one at a time, or select several and use Link selected. A linked game gets IGDB's details and add-ons and keeps your copies, progress, rating, notes and tags.
  • If the match is already in your library, the custom game merges into it.
  • Ignore games you don't want linked, and use Hide ignored to keep the list tidy.

✨ New: Change IGDB Link and Unlink from IGDB

Games that started as custom games and were later linked to IGDB now have Change IGDB link and Unlink from IGDB in their actions. (#51)

  • Change IGDB link points the game at a different IGDB entry.
  • Unlink from IGDB turns it back into a custom game that keeps its current details, copies, progress, rating, notes and tags.
  • Both remove the game's IGDB add-ons, along with their copies, progress and notes.

✨ New: Danger Zone

A Danger Zone at the bottom of Settings → General lets you remove one kind of data, or start over. Each action says exactly what it removes and what it keeps. (#53)

  • Clear play progress, Clear ratings, Clear notes, Clear tags and Clear sync caches each ask for a quick confirmation. Clearing the sync caches keeps the games you told Steam Sync, IGDB Import and the price lookups to ignore.
  • Reset game library, Reset hardware and Reset everything only run once you type RESET.
  • Before any reset, a safety snapshot of everything is saved on the server, so you can undo it by restoring that snapshot.
  • Your account, settings and integration setup are never touched.

⚡ Improvements

  • One backup. Settings → General → Data now has a single Backup in JSON, with Also include options for ROMs and saves, BIOS files and Images (custom game covers and accessory photos). Picking any of them downloads a .zip instead. (#53)
  • Backups now also hold your target prices, the games you told the price lookups to ignore, and account settings like currency, Overview layout and SteamID.
  • Restoring a .zip only replaces the kinds of files it contains. For example, a backup with only ROMs leaves your BIOS files alone.
  • A Restore complete summary now shows what came back (games and copies, devices and accessories, ROMs, BIOS files and images) and offers Resync now or Later.

🐛 Fixes

  • Fixed .zip backup downloads opening the app instead of downloading, a bug since v1.25.0.

🌍 Translations

  • Every new screen and message is translated into English, Spanish, French and Portuguese.

🏗️ Infrastructure

  • Fixed the test suite writing safety snapshots into the real backups folder. Every test now uses a temporary folder for backups and uploaded images.

📝 Good to Know

  • The Library CSV and Hardware CSV exports have been removed. They couldn't be restored, and the JSON backup holds everything they did.
  • Backups made with v2.4.0 use a newer format. Older backups still restore as before; a .zip made before v2.4.0 counts as ROMs and BIOS files.
  • The price caches and IGDB Import matches aren't backed up. A restore clears them, and they fill again on their next run or when you use Resync now.
  • Your store region is still saved per browser, so it isn't part of a backup.

v2.3.0

Choose a tag to compare

@github-actions github-actions released this 27 Oct 07:28

This release adds your own 10-star rating for each game, shows IGDB's member and critic ratings on the game page, and fixes a mislabelled rating chip.

✨ New: Your Rating

Each game now has one overall rating from you, in a new Your Rating section above Your Library on the game page.

  • Click one of the 10 stars to rate the game, from 1 to 10. It saves right away.
  • Click Clear, or the star you already picked, to remove your rating.
  • Add-ons can be rated too.
  • Your rating is what the Games list shows in its Rating column and sorts by. It's also used for the average rating on Insights and in Compare.

✨ New: IGDB Member and Critic Ratings

The game page now shows IGDB's ratings the way IGDB's own site does, as two chips: IGDB members (for example 8.9) and Critics (for example 7.8), each out of 10. Hover a chip to see how many ratings it's based on. They're also shown on the IGDB preview when adding a game, and on public share pages.

⚡ Improvements

  • Ratings are no longer set per platform. The rating field has been removed from the Progress dialog and the Progress section, since Your Rating covers the whole game. Progress still tracks play status, playtime, dates and a review for each platform.
  • A DOS logo on Games → Platforms.

🐛 Fixes

  • Fixed the game page's "IGDB Rating" chip showing your own rating instead of IGDB's. It's been replaced by the new IGDB member and critic chips.

🌍 Translations

  • Your Rating and the IGDB rating chips are translated into English, Spanish, French and Portuguese.

🏗️ Infrastructure

  • A database migration adds your rating and IGDB's ratings to each game, and moves your existing ratings over.

📝 Good to Know

  • Your existing ratings are kept. A game you rated on one platform keeps that rating. A game you rated on several platforms gets their average, rounded to whole stars (8 and 9 become 9).
  • To see IGDB's ratings on games you already have, run Resync all under Settings → Jobs once after upgrading. Games you import or resync from now on get them automatically.
  • Older backups still restore. Their per-platform ratings become one rating per game, the same way.
  • Your own rating is never shown on public share pages. Only IGDB's ratings are.

v2.2.0

Choose a tag to compare

@github-actions github-actions released this 27 Oct 05:31

This release lets you sort every table by clicking its column headers, merges the game page's platform and release date cards, and adds platform logos.

✨ New: Sort Tables by Column

Every table can now be sorted by clicking a column header. Click again to flip the direction, and an arrow marks the column you're sorting by. (Thanks to @minifluff for the suggestion in #50!)

  • Games (and the Series, Collection and Platform pages): sort by Name, Library, Type, Year, Platforms, Play Status, Rating or Labels. The owned/wishlist column is now headed Library, and the On sale, Missing and Custom chips sit under Labels.
  • Hardware: Name, Library, Manufacturer, Platform or Accessory type, and Qty. Devices and Accessories share one sort.
  • Collections, Series and Platforms lists: Name and the game counts.
  • On Sale: Name, Price, Discount, Store, Historical low and Target.
  • Orphaned accessories, Sale - Tracked, Sales - Ignored and Steam Sync sort from their headers too.
  • Games, Hardware, Events, On Sale, Orphaned accessories and the Collections/Series/Platforms lists also have a Sort menu: pick what to sort by, then Ascending or Descending. It stays in step with the headers, and your choice is remembered while you browse.
  • Empty values (no date, no rating, not in your library) always go last, whichever direction you sort. Ties are sorted by name.

✨ New: Platform Logos

Games → Platforms now shows logos for PlayStation (PS1 to PS5, PSP, PS Vita and PocketStation), Xbox (original, 360, One and Series X|S), Nintendo (NES, SNES, N64, GameCube, Game Boy, Game Boy Color, Game Boy Advance, DS, 3DS, Switch and Switch 2), PC, Mac, iOS and Android.

⚡ Improvements

  • A game's Platforms and Release dates cards are now one Platforms & release dates card, with one row per platform and its dates beside it. A date that isn't known yet is left blank instead of showing "TBD", and the card shows even when there's only one release date. (Thanks to @minifluff for the suggestion in #47!)
  • Hardware Release Calendar cards on the Overview now show the release date, like the game cards. When only the year is known, they show just the year. (A follow-up to #46.)
  • The Platforms list can still be sorted by its total number of games, now from the Games option in the Sort menu.
  • Missing Add-ons offers every sort except Library and Labels, since it sorts the games you own.
  • The public share page offers sorting by Name, Date added, Type, Year and Library. It never sorts by things the page doesn't show, such as ratings, play status, platforms or sales.

🌍 Translations

  • The new column headers, Sort menu options and the Platforms & release dates card are translated into English, Spanish, French and Portuguese.

📝 Good to Know

  • Sort settings are saved differently now, so any sort you picked before updating goes back to its default once.
  • To add a logo for another platform, drop a file named after its IGDB slug (for example wii.png) into frontend/assets/platforms/ and rebuild. A platform's slug is in the address of its page.

v2.1.0

Choose a tag to compare

@github-actions github-actions released this 27 Oct 03:32

Full Changelog: v2.0.0...v2.1.0

v2.0.0

Choose a tag to compare

@github-actions github-actions released this 26 Oct 14:25

This release redesigns VideoGameTrackarr from top to bottom, with a flat new look, a new sidebar, more views for every list and a new Overview, plus a round of security hardening.

✨ New: Redesigned Look and Navigation

The whole app has a new flat design, inspired by DieCastCollectionTracker.

  • Clean slate and near-white surfaces with thin borders instead of shadows, in light, dark and high-contrast modes. Your accent color still sets the tone.
  • A new sidebar groups pages into Library, Insights and System, and becomes a drawer on phones.
  • Global search in the header finds games, hardware, series and collections from anywhere.
  • Every page has a sticky toolbar with its actions and breadcrumbs, in place of the old page titles, tabs and breadcrumb bar.
  • Confirm dialogs show a spinner while they work, so you can tell a resync or restore has started. Notifications are restyled and appear in the bottom-right corner.
  • Native scrollbars follow light and dark mode.

✨ New: Games List Views

The Games page has a new toolbar and three ways to browse.

  • Pick Covers, Table or Overview under View, and set the card size under Options. Both are remembered in your browser.
  • Sort and Filter have their own menus, search sits beside the breadcrumbs, and active filters show as chips you can remove.
  • Redesigned game cards: the cover is the card, and selecting games no longer shifts the grid.
  • The A–Z rail now fills the window's height.

✨ New: Redesigned Game, Hardware and Event Pages

Detail pages have a large hero with the game's artwork faded into the page, and content split into sections.

  • The hero shows info pills (owned/wishlisted, play status, rating, platforms, series and collection), with store links as chips and actions in the toolbar.
  • About shows the summary, a Platforms card and a Release dates card. Screenshots, artwork, videos and add-ons follow.
  • Library, Progress, Play sessions, Tags and Notes are lists of rows with their own actions. Removing a copy or session can be undone.
  • Library rows show each copy's format, an Owned/Wishlist pill, and a line with the price when a wishlisted copy is on sale.
  • Device, accessory, event and IGDB preview pages use the same hero and sections.
  • Back now steps back through where you came from. After removing a game, you land on the Games list.

✨ New: Overview

The Dashboard is now the Overview.

  • Headline tiles for games owned, wishlist, hardware owned, playtime and hardware value.
  • Quick add, Now playing with a Backlog link, and strips of recently played and added games and hardware.
  • Needs attention tiles for custom games, missing add-ons, duplicate copies and accessories without hardware.
  • The Events and On sale teasers and the release calendars are still there.

✨ New: Insights Breakdowns

Insights shows stat tiles and bar charts by play status, platform, genre, hardware manufacturer and hardware platform. Clicking a play status or platform opens the Games list filtered to it.

✨ New: Change Password

You can now change your password under Settings → General → Account → Password. Changing it signs out every other session.

⚡ Improvements

  • Series, Collection and Platform pages get Covers/Table/Overview views and separate Games and Add-ons sections. Show what I'm missing and Include add-ons are now Options toggles.
  • The Collections, Series and Platforms pages get search, Cards/Table views, a card size and a Sort menu. The Platforms table also shows owned and wishlisted counts.
  • Hardware gets the same toolbar, a Filter dialog (status, manufacturer, type and platform) with removable chips, and separate Devices and Accessories sections. Its search, sort and filters are now remembered while you browse.
  • Hardware cards lead with the product photo.
  • Missing Add-ons shows a section for each game you own.
  • Events are split into Ongoing and Upcoming.
  • Duplicates, Orphaned accessories and On sale use the new list styles.
  • Settings pages use grouped rows: General (Display, Regional, Data, Share, Account), Integrations (one group per service), Jobs (run, progress and schedule per job) and Emulation (one group per BIOS system).
  • The login page, first-run setup and About show the logo.
  • Public share pages get a slim header with tabs, search with a Sort menu, and the new game page hero.
  • Your currency choice is now saved to your account, so it follows you to other browsers.

🐛 Fixes

  • Fixed resync showing no progress. The spinner appeared behind the confirm dialog.
  • Fixed Missing games appearing in Recently added on the Overview.

🌍 Translations

  • All new and changed screens are translated into English, Spanish, French and Portuguese.

🏗️ Infrastructure

  • Security hardening from a full audit:
    • Uploads are limited to JPEG, PNG, WebP and GIF images up to 20 MB.
    • Backup restores are capped at 256 MB.
    • API keys are kept out of error messages.
    • The app sends security headers, including a Content-Security-Policy.
    • Login takes the same time whether or not a username exists.
    • Reusing an old sign-in token signs out every session.
    • Signing out, or a session expiring, clears the offline cache.
    • The emulator only loads ROMs and BIOS files from your own server.
    • A warning is logged at startup if JWT_SECRET_KEY is shorter than 32 characters.
  • Updated Pillow and several frontend dependencies with security fixes. The old Material 3 theme packages and the Roboto font were removed.
  • Two database migrations add the account currency and sign-in token reuse detection.

📚 Documentation

  • The README's feature list is updated for the redesign. The setup code and FORWARDED_ALLOW_IPS are documented in the README, .env.example and the Nginx example.

📝 Good to Know

  • Setup code for new installs: first-run setup now asks for a one-time code. It's printed in the server log (docker compose logs) while no account exists, or you can set your own with SETUP_CODE in .env. Existing installs aren't affected.
  • Share links: sharing is now off until you turn it on under Settings → General → Share, and you can turn it off again there. Existing share links keep working.
  • Behind a reverse proxy? Set FORWARDED_ALLOW_IPS to your proxy's address so rate limits count each visitor separately.
  • Remembered Games filters and views from v1.34.0 may reset once after upgrading.

v1.34.0

Choose a tag to compare

@github-actions github-actions released this 19 Oct 08:31

This release adds a way to filter games by where they came from, and fixes events that stayed on the Dashboard after they ended.

✨ New: Source Filter

You can now filter the Games page by where each game came from, under Filters & More → Filter.

  • IGDB shows games you imported from IGDB.
  • Custom shows games you added by hand.
  • Turn on Exclude to hide the games you picked instead, for example every custom game.
  • The filter is remembered while you browse, like the other Games filters, and Clear resets it.

⚡ Improvements

  • Games you added by hand now have a Custom chip in the corner of their card, so you can tell them apart from IGDB games at a glance.
  • Match any / Match all now has a tooltip explaining how it works. It shows even while the switch is greyed out, and tells you to select two or more values to use it.

🐛 Fixes

  • Fixed events staying on the Dashboard after they ended. This happened when IGDB corrected an event's dates after it had synced. Events that IGDB no longer lists as upcoming are now removed on the next event sync.

🌍 Translations

  • The Source filter, the Custom chip and the Match any/all tooltip are translated into English, Spanish, French and Portuguese.