Glitch.tv is a streaming platform written in the Elixir programming language using LiveExWebRTC Components.
LiveExWebRTC is a library of Phoenix Live Components allowing for simple use of Elixir WebRTC.
- Streaming camera and audio directly from browser
- Live chat for all the viewers with moderation features
- Automatic stream recording and integrated recordings
- Supports markdown in stream title, description and chat
- Clone the repository
git clone https://github.com/elixir-webrtc/Glitch.tv.git
- Install dependencies
cd Glitch.tv mix deps.get
- Setup the database
mix ecto.create
- Run the server
mix phx.server
- Streamer panel is available at localhost:4000/streamer (in dev mode username is "username", password is "password")
- Setup the database
mix ecto.create
- Run the server
MIX_ENV=prod SECRET_KEY_BASE=$(mix phx.gen.secret) PHX_HOST=<hostname> PORT=<port-nr> GLITCH_STREAMER_USERNAME=<username> GLITCH_STREAMER_PASSWORD=<password> GLITCH_SLOW_MODE_DELAY_S=<delay-sec> DATABASE_PATH=mix phx.server
- Streamer panel is available at <hostname>/streamer (in dev mode username is "username", password is "password")
In development mode the environment variables are specified in config/dev.exs
, feel free to adjust them as you'd like. If you're preparing a production release of Glitch.tv however, make sure to specify the following environmental variables while running the application:
GLITCH_STREAMER_USERNAME
- username for streamer panel in prod mode,GLITCH_STREAMER_PASSWORD
- password for streamer panel in prod mode,GLITCH_ENABLE_RECORDINGS
- flag for enabling recordings, defaults to falseGLITCH_SLOW_MODE_DELAY_S
- chat slow mode's delay in seconds, defaults to 1GLITCH_ICE_SERVERS
- ice servers used by JS clients. Stringified JSON array as inRTCPeerConnection()
iceServers
argument eg."[{\"urls\": [\"stun:0.0.0.0:1234\"]}, {\"urls\": [\"turn:0.0.0.0:3478?transport=tcp\", \"turn:0.0.0.0:3478?transport=udp\"], \"username\": \"username\", \"credential\": \"password\"}]"
Elixir WebRTC is created by Software Mansion.
Since 2012 Software Mansion is a software agency with experience in building web and mobile apps as well as complex multimedia solutions. We are Core React Native Contributors and experts in live streaming and broadcasting technologies. We can help you build your next dream product – Hire us.