/Prism

my is a self-hosted multistreaming solution demo.

Primary LanguageDockerfileGNU General Public License v3.0GPL-3.0

Introduction

Would you like to stream to Twitch, Youtube, Kick, Trovo, Facebook, Instagram, and etc at once, but don't have the upload capacity to do it from your own computer?

You can host Prism on a server to act as a prism for your streamed content!

You can then simply stream to your Prism, and it will send your stream to all the platforms you'd like.

Prequisites

You'd need a VPS server for this, but fret not, its specification or power does not matter!

You can get very cheap (1~5 USD) Linux VPS from providers such as Linode, Ionos, Digital Ocean, etc.

How To Set up

  • 1- SSH into your VPS server,
ssh  ssh://root@<server IP address>
  • 2- Enter the password (it will be hidden).

  • 3- Install docker.

  • 4- Build our image:

docker build -t prism github.com/MorrowShore/Prism
  • 5- Verify it has been built:
docker images
  • 6- Now edit the following prompt with your own key, and then run it:
docker run -it -p 1935:1935 --name prism -e TWITCH_URL="<twitch server>" -e TWITCH_KEY="<twitch key>" -e FACEBOOK_KEY="<facebook key>" -e YOUTUBE_KEY="<youtube key>" -e TROVO_KEY="<trovo key>" -e KICK_KEY="<kick key>" prism

If you're not going to stream to a specific platform, simply remove it from the prompt (along with the "-e" before it).

  • 7- In OBS' stream options, enter the following in the Server field:
rtmp://<server IP address>/live

As for the stream key, you can put anything.

  • 8- Begin streaming!

We advise you test it with two platforms first.

How To Manage

  • To STOP the docker, (multistreaming server) run:
docker stop prism

  • To START the docker, run:
docker start prism

  • To EDIT the destinations,

Remove the container:

docker rm prism

and then run an edited prompt at step #6


  • To UNINSTALL the entire project, run:
docker rm prism

Then,

docker images

Copy the image ID and then run:

docker rmi <IMAGE_ID>

  • To ADD CloudFlare & Instagram support:

Add the following to the prompt #6

-e CLOUDFLARE_KEY="<key>"
-e INSTAGRAM_KEY="<key>"

Debugging

If something is not working you can check the logs of the container with:

docker logs prism