All Projects → littlelines → Littlechat

littlelines / Littlechat

Licence: mit
A peer-to-peer video chat application made using Phoenix, LiveView, and WebRTC. Want to know how it's made? Read the blog post: https://littlelines.com/blog/2020/07/06/building-a-video-chat-app-in-phoenix-liveview

Programming Languages

elixir
2628 projects

Projects that are alternatives of or similar to Littlechat

Surmon.me
🆒 My personal website and blog, powered by @vuejs (3)
Stars: ✭ 1,767 (+1127.08%)
Mutual labels:  webrtc
Liowebrtc
An event-based WebRTC library that makes it easy to embed real-time peer to peer communication into UI components.
Stars: ✭ 138 (-4.17%)
Mutual labels:  webrtc
Nes Rust
NES emulator written in Rust + WASM
Stars: ✭ 141 (-2.08%)
Mutual labels:  webrtc
Webrtc Leak
Check if your VPN leaks your IP address via the WebRTC technology
Stars: ✭ 133 (-7.64%)
Mutual labels:  webrtc
Quic
A Go implementation of the QUIC API for Peer-to-peer and Client-to-Server Connections
Stars: ✭ 137 (-4.86%)
Mutual labels:  webrtc
Awesome Android Ndk
🔥 全面深入地掌握NDK技术,成为下一波5G时代的浪潮儿~
Stars: ✭ 138 (-4.17%)
Mutual labels:  webrtc
Phoenix For Vk
Yet another VK client for Android
Stars: ✭ 131 (-9.03%)
Mutual labels:  phoenix
Enslavism
A framework to manage distributed WebRTC servers that communicate with browser clients
Stars: ✭ 143 (-0.69%)
Mutual labels:  webrtc
Grip
The microframework for writing powerful web applications.
Stars: ✭ 137 (-4.86%)
Mutual labels:  phoenix
Media Server Go Demo
webrtc media server go demo
Stars: ✭ 140 (-2.78%)
Mutual labels:  webrtc
Metastream
Watch streaming media with friends.
Stars: ✭ 1,926 (+1237.5%)
Mutual labels:  webrtc
Webrtc Cli
WebRTC command-line peer.
Stars: ✭ 135 (-6.25%)
Mutual labels:  webrtc
Codefund
Deprecated. Please go to https://github.com/gitcoinco/code_fund_ads
Stars: ✭ 140 (-2.78%)
Mutual labels:  phoenix
Html5 Dash Hls Rtmp
🌻 HTML5播放器、M3U8直播/点播、RTMP直播、低延迟、推流/播流地址鉴权
Stars: ✭ 1,805 (+1153.47%)
Mutual labels:  webrtc
Snowflake
WebRTC Pluggable Transport
Stars: ✭ 141 (-2.08%)
Mutual labels:  webrtc
Neko
A self hosted virtual browser (rabb.it clone) that runs in docker.
Stars: ✭ 1,957 (+1259.03%)
Mutual labels:  webrtc
Ex oauth2 provider
Making OAuth 2 provider and authentication with http bearer as simple as possible for Elixir and Phoenix apps
Stars: ✭ 137 (-4.86%)
Mutual labels:  phoenix
Nile.js
Server
Stars: ✭ 1,757 (+1120.14%)
Mutual labels:  webrtc
Stun
A Go implementation of STUN
Stars: ✭ 141 (-2.08%)
Mutual labels:  webrtc
Restcomm Android Sdk
Android Mobile SDK to easily integrate communication features (WebRTC, messaging, presence, voice, video, screensharing) based on RestComm into native Mobile Applications
Stars: ✭ 139 (-3.47%)
Mutual labels:  webrtc

Littlechat

A group video chat application built with Phoenix, LiveView, and WebRTC. Want a step-by-step on how it was made? Check out this blog post.

Development Environment Setup

To start your Phoenix server:

  • Install dependencies with mix deps.get
  • Create and migrate your database with mix ecto.setup
  • Install Node.js dependencies with npm install inside the assets directory
  • Start Phoenix endpoint with mix phx.server

Now you can visit localhost:4000 from your browser.

Deployment

Littlechat is configured to use distillery for deployments. We previously had instructions here for easy deployment with Gigalixir, but unfortunately, Gigalixir doesn't allow us to open UDP port 3478 for incoming traffic, which prevents our STUN server (and thus ICE negotiation) from working. We currently run Littlechat on a Digital Ocean box, and it works great!

Building a Release

To build a release using distillery, run the bin/release script.

Deploys on Gigalixir are not supported because it is not possible to open a port other than 80 or 443 on Gigalixir - so it's not possible to run the STUN server.

The main thing you'll want to watch out for in deployments is that most browsers require HTTPS for WebRTC unless you're at localhost, so make sure you're using HTTPS.

If you'd rather deploy on your own box, you'll just need to adjust some of the values in prod.exs accordingly and you'll be on your way.

Resources

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].