master | vNext | Contributors |
---|---|---|
IO is a Twitch chat-bot, overlay & stream note micro-service application.
Services
All services use Node.js & TypeScript unless otherwise noted.
Service | Description |
---|---|
admin | Web portal for administering entire system. (Under construction) |
api | Express API used as a proxy between third-party API's and the IO system |
chat | Connects to Twitch chat via IRC and emits various events to the io-hub service |
chron | Executes various functions at timed intervals to update other services |
hub | A Socket.io hub that listens and emits events for the application |
logger | Listens to events emitted from the io-hub and logs to a MongoDB |
overlay | Web pages served by Express that listen to events from the io-hub and render UIs to be displayed on stream |
shared | Contains interfaces, classes and data access logic used by other services |
streamnotes | Listens for certain events emitted from the io-hub to generate stream notes for a completed stream and push to GitHub |
user | Express web app that acts as a stateful service for all user (viewer) data used by the application |
webhooks | Express web app that listens for calls from third-parties and relays events to the io-hub |
Environment Variables
When running locally, environment variables can be added to each service via a .env
file in the services root directory. An example
(.env-example
) lives in the root of the repository. Below is a description of all environment variables and their use.
Variable | Purpose |
---|---|
GITHUB_USERNAME | Username to use in building the GitHub repo url. |
GITHUB_EMAIL_ADDRESS | Email address associated with the commit to git. |
GITHUB_NAME | Name of the user associated with the commit to git. |
GITHUB_AUTH_TOKEN | Personal access token from GitHub. Used to authenticate when generating stream notes. |
GITHUB_REPO | GitHub repository name to commit stream notes to. |
MONGO_DB_CONN_STRING | Connection string for MongoDB that will store stream, user & vote data |
MONGO_DB_USER | Username for MongoDB connection |
MONGO_DB_PASSWORD | Password for MongoDB connection |
MONGO_DB_DATABASE | Database that contains the stream, user & vote data |
NGROK_AUTH_TOKEN | Used by webhooks service when running the application locally. |
TWITCH_CLIENT_ID | Client Id assigned to an application by Twitch at https://dev.twitch.tv |
TWITCH_CLIENT_TOKEN | Auth token for the streamer's Twitch account |
TWITCH_CLIENT_USERNAME | Twitch login for the streamer |
TWITCH_CLIENT_USER_ID | Twitch user id of the streamer |
TWITCH_BOT_USERNAME | Twitch login for the bot. Can be the same as TWITCH_CLIENT_USERNAME. |
TWITCH_BOT_TOKEN | Twitch Auth token for the bot account. Can be same as TWITCH_CLIENT_TOKEN |
Release Notes
See CHANGELOG.md
Contributing
Want to contribute? Check out our Code of Conduct and Contributing docs. This project follows the all-contributors specification. Contributions of any kind welcome!
Thanks goes to these wonderful people (emoji key):
This project follows the all-contributors specification. Contributions of any kind welcome!