Administration
Instance operators manage the catalog — games, disc images, manuals — through two surfaces:
- The PSflix admin app at
/admin.html— purpose-built screens for uploading games and documents. - The PocketBase admin UI at
/_/— the full backend: every collection, record, file, user, and setting.
Both sign in with the superuser account created during hosting setup. A superuser is not a player account — it bypasses all access rules, so treat its credentials accordingly.
Adding games
Open /admin.html and go to Upload in the sidebar. The flow is file-first with a review step:
- Drop your disc images into the dropzone — strictly CHD files (
.chd), see Creating CHD images. - Identification — the serial number is detected in the browser, and the entry is enriched with metadata and cover artwork.
- Review — check the identified title, metadata, and artwork before anything is uploaded. Multi-disc games are handled as one game with several discs.
- Upload — progress is shown per file, followed by a done summary.
Only CHD images are accepted
PSflix's streaming emulator reads CHD v5 images. BIN/CUE, ISO, and other formats are rejected at upload — convert first (below). This is what makes streaming with caching possible: CHD supports the random-access reads the emulator performs over HTTP.
Creating CHD images
The standard tool is chdman from the MAME project. It converts a cue sheet plus binary image pair:
chdman createcd -i "Game (Europe).cue" -o "Game (Europe).chd"Requirements and tips:
- You need the
.cuesheet and its.binfile(s) together — chdman reads the cue to rebuild tracks (including audio) into the CHD. - Verify the result:
chdman verify -i "Game.chd". - Keep the CHD (you can discard the cue/bin afterwards); the upload flow does not need them.
Authoritative references:
- MAME — commonly used tools — official
chdmandocumentation - MAME releases — official binaries for Windows/macOS/Linux
- libretro CHD guide — background on the format and conversions
Be careful with "online CHD converters"
Web-based chdman frontends exist, but converting means uploading your disc image to someone else's server. PSflix is a self-hosted, personal-use project — run conversions locally and keep your discs to yourself.
Adding manuals and strategy guides
Open /admin.html → Documents:
- Pick the PDF — the queue is file-first, so several documents can be lined up.
- Assign a game — link the document to its game record.
- Pick the type —
manual(shows as Digital Manual) orguide(shows as Strategy Guide). Multiple guides per game are fine; there is one manual slot per game. - Upload — sequential, with an optional replace existing for swapping in a better scan.
Once uploaded, players see the document on the game's detail page — readable in-app and downloadable.
Catalog housekeeping
Everything else happens in the PocketBase admin UI at /_/ (see PocketBase's docs — the admin UI and collections behave exactly as documented there):
- Edit game and disc records — titles, descriptions, region (
NTSC-U,NTSC-J,PAL), languages/features (JSON fields), screenshots (up to 10 per game). The schema inpb_schema.json(repo root) is the source of truth for what exists. - Upload the BIOS — open the
consolescollection, edit theSCPH1001record, and attach the BIOS file (SCPH1001.BIN, max 5 MB) to thebiosfield. Without it, no game boots. - Manage player accounts — the
userscollection; reset or remove accounts as needed. - Backups & logs — Settings → Backups (schedule them;
pb_datais the only state) and the request log viewer.
Mind the schema
games.first_disc_serial is the unique natural key for a title, and (game, index) is unique per disc — the UI relies on both. Prefer the Upload flow for adding games; use /_/ for corrections.