IPL Production Stack
Radia Production is a stack of applications made by IPL Production for the of production related tasks.
- Auto Detection of commentators in Discord Voice Chat
- Ability to set commentator profiles (Name, Twitter handle, Pronouns)
- Set tournament information and bracket link
- Twitch bot for view to run command to see commentators' information
- REST API for requesting information for use on overlays and other services
- Custom Twitch Command support, for custom commands
This mono-repository containing multiple components that make up the production system.
discordBot
: A Discord Bot used for querying information from DiscordtwitchBot
: A Twitch bot that connects and handles Twitch IRC commandsRestAPI
: A REST API for querying information.
- MongoDB Database
- Twitch Bot Account
- Discord bot profile
Each application in the stack requires its own .env file located in the Root directory, they are as follows.
It's recommended that you have separate username and password URI for MongoDB
It's recommended you use docker-compose to deploy your stack as it handles the other requirements such as Redis for DB caching for you.
If you enable SENTRY
in the .env
file, if your instance has an error, IPL's
Production team will receive a copy of the error via Sentry for
debugging purposes.
DISCORDTOKEN=Discord.bot.token
MONGODBURI=Mongo.DB.Connection.URI
SENTRY = "System Environment" # Optional
DEBUG = 1 # Optional
REDISURL = "REDIURI" # Used in testing only for sepecify where the redisDB is
TWITCHCLIENTID=Twitch.application.client.id
TWITCHOAUTH=Twitch.oath.token
TWITCHNICK=Twitch.bot.username
TWITCHCHANNELS=Channel.to.connect.to.seperated.by.comma (e.g vlee111,iplsplatoon)
MONGODBURI=Mongo.DB.Connection.URI
SENTRY = "System Environment" # Optional
DEBUG = 1 # Optional
REDISURL = "REDIURI" # Used in testing only for sepecify where the redisDB is hosted
MONGODBURI=Mongo.DB.Connection.URI
SENTRY = "System Environment" # Optional
DEBUG = 1 # Optional
REDISURL = "REDIURI" # Used in testing only for sepecify where the redisDB is
For traefik to setup Lets' Encrypt SSL certificate correctly you need to edit the docker compose file.
-
Replace
api.website.com
intraefik.http.routers.whoami.rule=Host
attached to therest-api
's labels with the link you want to use to your REST API. -
Replace
[email protected]
in--certificatesresolvers.myresolver.acme.email=
attached totraefik
commands with the email you want to give to let's encrypt, for security notifications'.
After setting up these .env
files up and edited the docker-compose.yml
file,
you can run docker-compose up
to start the stack
When started, the REST API Docs will be available at https://your-website.com/docs
Written by Vincent Lee & LeptoFlare
This bot was inspried by the EGtv-Bot by NintenZone