I wanted to build this project to create a platform for smaller communities, which are often neglected by twitch.
- Front-End client constructed with React
- RTMP Streaming using NGINX RTMP Module
- Backend API using Express
- Real time messaging using socket.io
- Backend Database utilizing PostgreSQL
- Image resizing and processing using Sharp
- DASH Protocol video consumption using Shaka Player React
- Live streaming to the browser
- Chatting with users aside the stream
- Uploading Profile Pictures
- Streaming to your channel using OBS
- Custom chat colors
2021-09-24.12-41-03.mp4
2021-09-24.12-50-08.mp4
- Moderate your channel by banning users and moderating users
- Edit your profile using markdown
- Bot API to chat, and perform administrative actions
- Tested on Debian 10 and Ubuntu 19.04
- A domain name and SSL Certificates installed by certbot See https://certbot.eff.org/lets-encrypt/debianbuster-other
- Setup free SSL certificates using certbot (see link above for debian buster)
- Clone the repository from GitHub into a users home directory (kamaii)
- Modify nginx.example.conf to match your domain name and your username
- Set dash path to /server/public/live
- do
npm run setup
to setup NGINX with custom RTMP Module - Wait for compile to finish
- Change permissions of /server/public/live so that the user running express can read it e.g.
chmod -R 777 /server/public/live
- Do
npm run start
as a user with sudo permissions, or setup your own startup script to run NGINX as root, and express as your user.