DisPlex contains a few components, all packaged within a single Dockerfile.
Usage: displex [OPTIONS] <COMMAND>
Commands:
bot
channel-refresh
clean-tokens
metadata
requests-upgrade
server
user-refresh
help Print this message or the help of the given subcommand(s)
Runs a Discord bot which sits in your Discord server and responds to ~ping
commands.
Script which will update your Discord server channels with the realtime stats of current streams.
Script which will clean up any expired Discord tokens.
Script to set the Application metadata on Discord. Only needs to be called once.
Script which will set user request limits in Overseerr based on user watch hours. Tiers can be configured via the Config file.
Runs a webserver which will guide users through the Discord Linked Role OAuth2 flow.
- Redirect user to sign in on Discord and authorize the Application.
- Redirect user to Plex and have user sign in.
- Validate Plex user has access to your Plex instance, and grant user Linked Role in Discord.
Script to set users metadata on Discord and how many hours they have streamed. Uses Tautulli for the data.
Documentation is pretty lacking at the moment. I currently have this deployed as a mixture of deployments & cronjobs on my kubernetes cluster. The Flux HelmRelease for this can be found in my home-cluster, it best describes how this is currently being run.
This bot is still a work in progress. If you have any ideas for improving or adding to Displex, please open an issue or a pull request.
You can use CloudFlare tunnels or similar to test the OAuth2 flow as it requires valid certs.
cloudflared tunnel --name displex.example.com --hostname displex.example.com --url 'http://localhost:8080' -f
Then visit https://displex.example.com/auth/discord?next=/auth/plex?next=discord://-/channels/{}/@home
.