https://github.com/mchestr/displex
Discord & Plex & Tautulli & Overseerr Bot
https://github.com/mchestr/displex
discord discord-bot discord-linked-role overseerr plex tautulli
Last synced: 2 months ago
JSON representation
Discord & Plex & Tautulli & Overseerr Bot
- Host: GitHub
- URL: https://github.com/mchestr/displex
- Owner: mchestr
- License: mit
- Created: 2023-05-18T02:05:37.000Z (almost 3 years ago)
- Default Branch: main
- Last Pushed: 2025-08-11T11:03:13.000Z (9 months ago)
- Last Synced: 2025-08-11T13:05:39.916Z (9 months ago)
- Topics: discord, discord-bot, discord-linked-role, overseerr, plex, tautulli
- Language: Rust
- Homepage:
- Size: 6.16 MB
- Stars: 10
- Watchers: 1
- Forks: 42
- Open Issues: 6
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# DisPlex
A Discord, Tautulli, and Overseerr program backed by Rust.
[](https://github.com/mchestr/displex/releases)
[](https://opensource.org/licenses/MIT)

# Features
DisPlex contains a few components, all packaged within a single Dockerfile.
```
Usage: displex [OPTIONS]
Commands:
bot
channel-refresh
clean-tokens
metadata
requests-upgrade
server
user-refresh
help Print this message or the help of the given subcommand(s)
```
## Subcommand: bot
Runs a Discord bot which sits in your Discord server and responds to `~ping` commands.
## Subcommand: channel-refresh
Script which will update your Discord server channels with the realtime stats of current streams.

## Subcommand: clean-tokens
Script which will clean up any expired Discord tokens.
## Subcommand: metadata
Script to set the Application metadata on Discord. Only needs to be called once.

## Subcommand: requests-upgrade
Script which will set user request limits in Overseerr based on user watch hours. Tiers can be configured via the Config file.
## Subcommand: server
Runs a webserver which will guide users through the Discord Linked Role OAuth2 flow.
1. Redirect user to sign in on Discord and authorize the Application.
2. Redirect user to Plex and have user sign in.
3. Validate Plex user has access to your Plex instance, and grant user Linked Role in Discord.
## Subcommand: user-refresh
Script to set users metadata on Discord and how many hours they have streamed. Uses Tautulli for the data.
# Installation and setup
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](https://github.com/mchestr/home-cluster/tree/main/kubernetes/apps/default/displex), it best describes how this is currently being run.
# Development
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.
### Testing OAuth Flow Locally
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`.