The scope of this project is to build an easy to setup personal streaming service, with live chat, user count and replay functionality
- React / Redux
- Node / Express / EJS
- MongoDB / Mongoose
- PM2
- Material UI
- NodeMediaServer
- Inquirer.js
- FeathersJS
projectLive is a tool for people to easily setup their own personale streaming server. Each instance will be able to issue streaming keys to use for authentication on the rmtp server.
The project is composed of three parts:
- the server, handling the stream conversion
- the streaming frontend, where users will be able to watch the stream and interact ina chat window
- the admin dashboard, where the streamer will be able to set the stream title and see all the stream stats (number of viewers etc.)
look at the diagram here
- easy to setup (maybe with a cli)
- stream is protected with stream key check
- stream is recorded on file
- users can create accounts in order to interact with the chat
- chat should be saved on database
- chat should work with websocket
- users can register
- users can see when the streamer is live
- users can watch replay if streamer is not live
- users can interact with chat
- streamer can login
- streamer can set stream title
- streamer can see chat
- streamer can see live viewers
Set upstream for your fork to point to the original repository. Directions
Install dependencies in rmtp
, api
, frontend
and admin
Make sure to have MongoDB installed locally or connect to your own cloud hosted database
- Local:
- Cloud:
- MongoDB Atlas
this part uses FeathersJS to simplify connection, authentication and all related CRUD operations. In order to use this app, you need to setup the "mongodb" field in config/default.json to be your connection url
make sure you have ffmpeg installed on your system. You can find instructions here