mirror of
				https://github.com/algora-io/tv.git
				synced 2025-10-30 23:07:56 +02:00 
			
		
		
		
	
			
				
					
						
					
					5a4acfa19ac9f50eff01d366b6fd6150761dacc1
				
			
			
		
	Algora TV
    The interactive livestreaming & video sharing service for developers.
    
    Website
    ·
    Discord
    ·
    Twitter
    ·
    YouTube
    ·
    Issues
  
Architecture
graph
    Streamers{Streamers} --> Fly
    Fly[Elixir App - Fly] --> RTMP
    Fly --> Web[Web Server - Phoenix]
    Fly --> Db[Postgres - Fly]
    RTMP[RTMP Server - Membrane] -->|First mile delivery| Tigris[Object Storage - Tigris]
    Viewers{Viewers} -->|Last mile delivery| Tigris
    Viewers --> Fly
graph
    Encoder{Encoder} -->|RTMP packets| Source[RTMP Source]
    Source -->|video| H264Parser[H264 Parser]
    Source -->|audio| AACParser[AAC Parser]
    H264Parser --> H264Payloader[H264 Payloader]
    AACParser --> AACPayloader[AAC Payloader]
    H264Payloader --> CMAFMuxerVideo[CMAF Muxer]
    AACPayloader --> CMAFMuxerAudio[CMAF Muxer]
    CMAFMuxerVideo --> HLSSink
    CMAFMuxerAudio --> HLSSink
    HLSSink[HLS Sink] --> Tigris{Tigris Object Storage}
graph
    App[Application] --> RTMP[RTMP Server]
    App --> Endpoint[Web Server]
    App --> Repo[Ecto Repo]
    App --> Telemetry
    App --> PubSub
    App --> Presence
    App --> DNSCluster[DNS Cluster]
    App --> FlyRPC[Fly RPC]
Getting Started
To get a local copy up and running, please follow these steps.
Prerequisites
Here is what you need to be able to run Algora TV.
- Elixir (Version: >=1.12)
- OTP
- PostgreSQL
Development
Setup
- 
Clone the repo into a public GitHub repository (or fork https://github.com/algora-io/tv/fork). git clone https://github.com/algora-io/tv.git
- 
Go to the project folder cd tv
- 
Install dependencies with mix mix deps.get
- 
Set up your .envfile- Duplicate .env.exampleto.env
- Add your environment variables in the .envfile
 
- Duplicate 
- 
Create and migrate your database with mix mix ecto.setup
- 
Start your development server env $(cat .env | xargs -L 1) iex -S mix phx.server
License
Distributed under the AGPLv3 License. See LICENSE for more information.
Acknowledgements
Special thanks to these amazing projects which help power Algora TV:
					Languages
				
				
								
								
									Elixir
								
								87.4%
							
						
							
								
								
									HTML
								
								9.2%
							
						
							
								
								
									TypeScript
								
								2.1%
							
						
							
								
								
									CSS
								
								0.5%
							
						
							
								
								
									Dockerfile
								
								0.3%
							
						
							
								
								
									Other
								
								0.5%