Skip to content

Releases: guitaripod/ps3catalog

Release list

1.1.0

Choose a tag to compare

@guitaripod guitaripod released this 30 Jul 17:13

Performance

Two hot paths were burning CPU on every visit:

  • The gzip cache held one entry and cleared itself on every miss. A page load fetches app.js, style.css, data.json and art.json, so each evicted the last and the 2.8 MB data.json was recompressed on every load — 41 ms of CPU per request. Now an 8-entry LRU: 41 ms → 1 ms.
  • /__status re-parsed 2.8 MB of JSON on every poll, every 6 seconds during a cover download. Now cached against file mtime and size: 20 ms → 0.5 ms.

Idle cost is 36 MB of RAM and 0.00% CPU.

Lifecycle

  • ./start.sh --status — shows whether it's running, the URL, the passphrase, disk used and cover count, whether the container is up or down. Reads the passphrase from the data volume instead of grepping logs, which rotate.
  • The startup banner now reports the real cover count (2888 covers ready) instead of always claiming a download is in progress, and only suggests a SteamGridDB key when covers are actually placeholders.
  • Cover downloads run at nice 10 and are capped at 6 parallel requests (ART_WORKERS, lower it on a Raspberry Pi).
  • In-page polling backs off to 30 s when the tab is hidden and resumes on return.

Removed

The Cloudflare Workers deployment (src/worker.js, wrangler.jsonc) is gone, along with the hosted instance. Self-hosting is the only path, which was always the point.

Install

docker run -d --name ps3catalog -p 8731:8080 -v ps3catalog:/data ghcr.io/guitaripod/ps3catalog:v1.1.0
docker logs ps3catalog        # prints your passphrase

1.0.0

Choose a tag to compare

@guitaripod guitaripod released this 30 Jul 13:03

Browse the entire PlayStation 3 PSN catalogue — 5,377 titles — from your own machine.

Install

git clone https://github.com/guitaripod/ps3catalog.git
cd ps3catalog
./start.sh

Or without cloning:

docker run -d --name ps3catalog -p 8731:8080 -v ps3catalog:/data ghcr.io/guitaripod/ps3catalog:v1.0.0
docker logs ps3catalog        # prints your passphrase

What's in it

  • Zero-config start. ./start.sh checks Docker, builds, downloads the PSN index, generates a passphrase and session secret, waits for health, and opens your browser. Flags for LAN access, port, no-auth, logs, update, uninstall.
  • Cover art in two clicks. The app detects placeholder covers and offers a setup panel — paste a free SteamGridDB key, and covers download in the background and replace placeholders live, no reload. The key is validated before it's accepted and persists in the data volume.
  • Curated sections. Essentials, PS3 Exclusives, Hidden Gems, Sony-Family Only, plus everything cross-referenced against your RPCS3 games.yml if you mount it.
  • Private by default. Passphrase gate with HMAC-signed sessions; DISABLE_AUTH=1 to opt out.
  • Runs anywhere. linux/amd64 and linux/arm64 — Raspberry Pi and Apple Silicon included. 151 MB image, non-root, healthchecked.
  • Mobile-first UI. Three-across grid, filter drawer, light/dark following your system.

Verified from clean clones and a fresh volume: cold boot, LAN mode, restart persistence, index refresh, uninstall, and browser passes in both colour schemes.