Documentation

Install & set up playR

Everything is explained step by step — even if you are a complete beginner.

The basics

playR = one server (which hosts the library) + clients (the PCs that connect to it).

  1. The server runs on a Windows PC, or elsewhere through Docker (NAS, CasaOS, Proxmox…).
  2. The client (the Windows app) finds it on its own, on this PC or across the network.
  3. You connect your accounts (Steam, Epic…) and sync.

You need just one server on your network; all your client PCs point to it.

Server — on a Windows PC

Nothing to do: the installer installs the server at the same time as the application. On first launch, playR starts it and connects to it on its own.

Server — on CasaOS

  1. App Store → Install a custom app.
  2. Click the Import icon, at the top right of the window.
  3. Copy the contents of this file, paste them, then Submit.
  4. Click Install.
  5. In the window that opens: Install, then Open.

Address to give your clients: http://[IP-du-CasaOS]:3000.

Server — on Synology / NAS

First things first: does your Synology support Docker?
Docker is only available on supported Synology models (mostly Intel/x86 — the “+” series and mid to high-end ones). On many ARM / entry-level, the app does not show up at all in Package Center, whatever the DSM version. In that case, host the server elsewhere: a PC running the Windows “Server” app, a mini-PC, a Raspberry Pi…
To check: list of Container Manager compatible models.

The case of ARM Synology models (e.g. DS218 — RTD1296 chip): Synology does NOT offer Docker / Container Manager for these models in Package Center. A community workaround does exist (the 007revad “ContainerManager for all armv8” script, DSM 7.2+) that installs Container Manager on these models — unofficial, at your own risk.
⚠️ On top of that, the playR image is currently amd64 only and arm64 support (ARM NAS, Raspberry Pi) is on the way. In the meantime, on these machines, the simplest option is to host the server elsewhere (mini-PC, CasaOS, or the Windows “Server” app).

The name of the app depends on your DSM version:

If the app is available in Package Center, install it, open it, then:

  1. ProjectCreate.
  2. Name: playr · path: a folder (e.g. /docker/playr).
  3. Source: Create docker-compose.yml, and paste:
services:
  playr:
    image: ghcr.io/ixelia-fr/playr:latest
    container_name: playr
    restart: unless-stopped
    ports:
      - "3000:3000"
    environment:
      - NODE_ENV=production
      - DATA_PATH=/app/data
    volumes:
      - /volume1/docker/playr/data:/app/data
  1. NextFinish. Container Manager downloads the image and starts it.
  2. Address for your clients: http://[IP-du-Synology]:3000.
Architecture: the image is amd64 (Intel Synology: OK). On an ARM Synology you need a multi-arch image — just ask and we will add it.

Server — on Proxmox

Two options:

Server — Docker (the universal method)

The server is a Docker image: it runs on any Docker host (a plain Linux server, a mini-PC, an Intel/amd64 Raspberry Pi…). It is the basis for every other case.

mkdir -p ./playr/data
docker run -d --name playr --restart unless-stopped \
  -p 3000:3000 \
  -e DATA_PATH=/app/data \
  -v $(pwd)/playr/data:/app/data \
  ghcr.io/ixelia-fr/playr:latest

Or with a docker-compose.yml then docker compose up -d.

Server — Portainer, Unraid, TrueNAS, OMV…

All these platforms run Docker → so it is the same compose file everywhere. Landmarks tool by tool:

In every case: image ghcr.io/ixelia-fr/playr:latest, port 3000, persistent volume on /app/data. Address for your clients: http://[IP-de-la-machine]:3000.

Approve a device

Your server does not open its library to just anyone: each device has to be approved once — after that it remembers. Nobody else on your network can read your backups or drive playR.

See and revoke devices

In playR: SettingsDevices. There you find the approved devices and when each was last seen; you can rename them or revoke them. A lost phone can be revoked on its own, without touching the other devices.

As a fallback: the authorization code

It is useful in two cases: you have no approved device at hand (all lost or revoked), or someone else claimed your server before you on the very first startup. On the pairing screen, click J'ai un code d'autorisation.

The code never changes. It is created on the very first startup and kept next to your library. It never goes into backups: restoring a backup therefore gives no access to the server that produced it. Keep it like a password: it can approve a device again, even a revoked one.

Updating the server

Windows server

Nothing to do. It updates itself, at the same time as the app.

Docker server (NAS, CasaOS, Proxmox…)

Automatic (included by default). The docker-compose.yml shipped with playR embeds a playr-updater service that checks every 30 minutes and updates playR all by itself. Nothing to configure, nothing to type. It only touches the playR container.

Manually (fallback). A notification (🔔 top right) tells you when a new version is out. If you would rather trigger it yourself, or if you installed the image on its own (without the compose file), run this on the host machine — the command asks Docker for its path, so you do not need to be in the right folder:

cd "$(docker inspect playr --format '{{index .Config.Labels "com.docker.compose.project.working_dir"}}')" && docker compose pull && docker compose up -d

Install the client

Download the installer and run it. On first launch, playR looks for your library — on this PC as well as across the network — and asks you to confirm it. You can switch servers at any time (⚙ menu → Change server).

Connect your accounts

Every server starts out empty: you connect your own accounts in ⚙ Settings. Nothing is shared.

For most platforms, playR simply opens an official sign-in window: you identify yourself on their site, as usual, and that is it. No more codes to copy over.

ServiceWhat you need
SteamSteam username + password, then Steam Guard (family included) — or SteamID + API keyMore info →
EpicAn Epic sign-in windowMore info →
GOGThe URL of your public profileMore info →
AmazonA button (the Amazon Games app must be installed on this PC)More info →
EAAn EA sign-in windowMore info →
Ubisoft ConnectA Ubisoft sign-in window (two-factor authentication included)More info →
Battle.netA Battle.net sign-in windowMore info →
GeForce NOW · Amazon LunaA switch / your subscription tierMore info →
Cover art & metadataNothing — it is includedMore info →
The account is connected to the SERVER, not to the PC. You sign in from the application, but it is your server that keeps the access: it then goes on syncing all by itself, even with the application closed. That is what makes NAS installs just as comfortable as an install on a PC.

Steam

Two ways, take your pick:

If several Steam accounts have already been used on this PC, playR spots them and offers them in one click.

Finding your SteamID64

It is not your nickname, but a 17-digit number starting with 7656.

On steamid.io, paste your profile address — not your nickname:

https://steamcommunity.com/id/VOTRE-PSEUDO/

Click lookup: the steamID64 line gives you the number.

You can read that address in Steam: your name at the top, then Profile. If it already looks like https://steamcommunity.com/profiles/7656…, the 17 digits are right there.

Getting your API key

On steamcommunity.com/dev/apikey, while signed in to your account:

  1. Domain Name: http://localhost:3000
  2. Tick "I agree to the Steam Web API Terms of Use", otherwise the button does nothing.
  3. Click Register: the key appears, 32 characters, ready to copy.

The SteamID64 and the key go into ⚙ Settings → Steam.

Your Steam profile must be public, otherwise no game comes through: Profile → Edit Profile → Privacy Settings → "Game details" set to Public.
An API key is as good as a password. Never publish it anywhere. If it leaks, request a new one: the old key stops working immediately.

Epic Games

The normal method — the sign-in window

  1. ⚙ Settings → Epic → button “Sign in through a window”.
  2. An Epic sign-in window opens: identify yourself as usual.
  3. That is all — playR picks up the authorization on its own and closes the window. One sign-in, nothing to copy.

If the window does not open — the code by hand

The old method still works and is still available in the application, behind the link “Trouble? Enter a code manually”:

  1. Button “Open Epic (get the code)”.
  2. Sign in to Epic if needed: a plain text page appears.
  3. Copy the value of the authorizationCode field (a long string of characters).
  4. Paste it into playR and click Confirm.

The result is the same either way: it is the server that keeps the access and then resyncs all by itself.

GOG

GOG has no sign-in API, so we read your public profile.

  1. On gog.com, make your profile public (Profile settings → Privacy).
  2. Open the GAMES tab of your profile and copy the URL, of the form https://www.gog.com/u/PSEUDO/games.
  3. Paste it into ⚙ Settings → GOG → Sync.

Amazon Games

Amazon hands out no simple token: its library is encrypted with your Windows session, so it can only be read on your PC. playR takes care of it all by itself.

  1. Install the Amazon Games app and open it at least once, signed in to your account.
  2. In playR: ⚙ Settings → Amazon → “Fetch my Amazon library”.

Your Amazon games show up. To be done from the PC where Amazon Games is installed.

EA

  1. ⚙ Settings → EA → button “Sign in through a window”.
  2. Identify yourself on the EA page that opens.
  3. playR picks up the authorization and syncs your EA library — every game you own, not just the ones installed on this PC.

Installed EA games launch and install from playR, like all the others.

Ubisoft Connect

  1. ⚙ Settings → Ubisoft → button “Sign in with the Ubisoft window”.
  2. Identify yourself on the Ubisoft page. Two-factor authentication works: Ubisoft is the one showing it, playR only displays its window.

playR never sees your password — only the session token is kept. The library fetched is the one on your account, including games that are not installed.

Battle.net

Two separate buttons, depending on what you want:

No access is kept on the server side for Battle.net: playR only remembers the date of the last fetch and the number of games. The trade-off is that it cannot resync on its own — run “Connect my Blizzard library” again when you buy a game. You can erase everything with Forget the sync.

Cloud gaming — GeForce NOW & Amazon Luna

playR can spot the games you are able to play by streaming, without installing them. It is all set up in ⚙ Settings → Cloud Gaming.

GeForce NOW

A single switch: “I have a GeForce NOW subscription”. GeForce NOW adds no games at all to your library — it flags the ones you already own that can be played by streaming.

Amazon Luna

Here you pick your subscription tier: Not subscribed, Amazon Prime or Premium. Unlike GeForce NOW, Luna is a real platform: the games it includes are added to your library, a bit like Steam family sharing.

Cover art & metadata

Nothing to configure. Cover art, descriptions, critic scores, times to beat and system requirements are included: playR fetches them through its own service, with its own access to the databases of IGDB and HowLongToBeat.

All you have to do is run Fill in missing information from a game page, or the metadata sync from ⚙ Settings.

TV Mode

A full-screen interface designed for the controller and for couch distance: big cover art, carousels, a full game page, sorting and filters, all of it without a mouse.

Wishlist & Deals

Your Steam and GOG wishlists in one place, with prices compared across Steam, GOG, Epic, Kinguin and some thirty other stores. The cheapest is highlighted, and the games you already own (or that are available through your Steam family sharing) are flagged.

A game that is not out yet shows a badge: Out today, Out tomorrow, Out in N d, or the date when it is more than a month away. On release day, playR tells you with a 🔔 notification — only for the games you were really waiting for, never for a title added after it was already out.

The GOG wishlist assumes that your GOG profile is public, just like for the library.

Your playR wishlist

Steam and GOG only know their own games. For everything else, playR has a list of its own:

  1. Search for the game in the search bar — the magnifying glass, in TV mode. It also finds what you do not own.
  2. Open its page and click the heart.

It lands in Wishlist & Deals with a purple R badge, and is treated there like all the rest: compared prices, release badge, deal alert. The same heart removes it.

This list lives on the server: the same from all your PCs and from TV mode, and included in backups.

Getting alerted when a game drops in price

playR can warn you as soon as a game on your wishlist goes past a given discount. The setting lives in ⚙ Settings → Region & prices, under “Wishlist deal alert”: pick the threshold above which you want to be warned (from -10 % to -75 %, -30 % by default), or “Off” to receive nothing at all. Do not forget to Save.

The alert lands in the 🔔 bell: « Game name is -45 % », with the price and the store concerned, and a “View deal” link that opens the game page directly.

No alert on the first day, and that is normal. playR starts by taking a snapshot of your wishlist without showing anything — otherwise you would get a notification all at once for every game already on sale. You will be warned about the next drops. The check happens every 6 hours, and a given game only alerts you once per promotion.

The price announced is the one of the most discounted offer, which is not always the cheapest in absolute terms. Alerts show up in the normal interface; TV Mode has no bell, even though the setting is reachable there.

Free games to claim

The Free games entry in the sidebar: playR lists there the games currently given away (Epic, GOG and other stores), with the end date of the offer. A 🔔 notification tells you as soon as a new offer shows up.

Steam requires you to be signed in. Unlike Epic or GOG, Steam refuses to add a free game to an account that is not identified inside that window. Sign in once in the Steam store window, and it goes through from then on.
The Free games view in playR

Dashboard

The Dashboard entry in the sidebar — an overview of what you really own:

The statistics show up instantly, with no network. Only the value estimate needs a connection.

The playR Dashboard

Change a cover

Some games have an ugly, generic or missing cover. From the game page: “Change the cover” → playR offers a grid of images taken from SteamGridDB, one click is enough. “Restore default” goes back to the original image.

There is also a bulk fill, which goes looking for a cover for every game that has none. It only fills in automatically the matches it considers certain — the rest is left to you to pick by hand.

Your choice survives syncs: a resync of the platform never replaces it.