Share, remote control, and automate your game library online with self-hosted Playnite-Web.
Playnite-web offers:
- a beautiful web UI for your Playnite library to share with friends
- remote control of staring and stopping games with home automation; locked behind a username/password login screen
- a graph API to help you build other unique experiences
Playnite-Web consists the following:
All components are required.
Component | Deployment Mechanism | Purpose |
---|---|---|
(game) database | Docker image / bring your own | Mongo DB database that stores game data in games database. |
MQTT broker | Docker image / bring your own | Provides a communication mechanism between Playnite and Playnite-Web. |
Playnite-Web Plugin | Extension installed into Playnite | The plugin sends and receives messages via MQTT when data in Playnite is changed. |
Playnite-Web App | Docker image | Syncs Playnite games to game database, web UI, and GraphQL API that may be used to power your own experiences. |
Recommended to use docker image eclipse-mosquitto
. Things to note when deploying:
- IP/hostname used to access the broker
- Port
- Username (only if configured to disable anonymous access)
- Password (only if configured to disable anonymous access)
Recommended to use docker image mongo:focal
. Things to note when deploying:
- Use/mount a persistent volume. See mongodb image documentation for more details.
- IP/hostname used to access the database
- Port
- Username (only if configured to disable anonymous access)
- Password (only if configured to disable anonymous access)
- Download (latest) version release of Playnite extension (release asset named "PlayniteWeb*ec3439e3-51ee-43cb-9a8a-5d82cf45edac*.pext").
- Open Playnite and drag downloaded file into the Playnite. It should prompt to install the plugin.
-
Open the plugin's settings and enter the MQTT connection information to your MQTT broker.
> ![Mqtt connection settings screenshot](docs/assets/images/mqtt-connection-screenshot.png) -
Open the plugin's settings and enter the a device ID and device name under Topics.
> ![Topics settings screenshot](docs/assets/images/topics-screenshot.png)
Use the docker packaged image from the repo. Ensure you are using the same release version as the Plugin (above). Example image: ghcr.io/andrew-codes/playnite-web-app:1.0.0
Ensure you mount a volume to persist game assets, such as cover-art, backgrounds, and icons. The mount location within the running container should be /opt/playnite-web-app/public/assets/asset-by-id
.
Environment Variable | Value | Required? | Notes |
---|---|---|---|
PORT | Defaults to 3000 | Required | Port in which web application is accessible. |
HOST | Defaults to localhost |
The domain name or IP address of the server running Playnite-Web. | |
ADDITIONAL_ORIGINS | Additional origins allowed to request graph API. | Multiple values may be provided via a comma-delimited string. | |
CSP_ORIGINS | Origins in which images, styles, fonts, and scripts are allowed to be loaded. | Multiple values may be provided via a comma-delimited string. | |
DB_HOST | IP address/hostname of Mongo DB database | Required | |
DB_PORT | Port of Mongo DB database | Default for MongoDB image is 27017 | |
DB_USERNAME | Username to access database | Only required if disabled anonymous access | |
DB_PASSWORD | Password to access database | Only required if disabled anonymous access | |
DB_URL | MongoDB connection URL | Alternative to individual DB connection options | |
DEBUG | "playnite-web/*" |
For troubleshooting; send logs to STDIO | |
USERNAME | Username used to login | ||
PASSWORD | Password value used to login | ||
SECRET | Secret used to protect credentials | ||
MQTT_HOST | IP address/hostname of MQTT broker. | Required | |
MQTT_PORT | Port of MQTT broker | Default for MQTT image is 1883 | |
MQTT_USERNAME | Username to access MQTT broker | Only required if disabled anonymous access | |
MQTT_PASSWORD | Password to access MQTT broker | Only required if disabled anonymous access |
- Open Playnite and select and "Sync Library" from Playnite Web's menu setting. This is generally only required once. Future game updates in Playnite will automatically sync to Playnite-Web.
- Navigate to the web app;
http://$PLAYNITE_WEB_APP_IP:$PORT
- Read through our contributing guidelines.
- Next, read and set up your development environment.
- Additionally, refer to the design docs.