2
0
Fork
You've already forked phony
0
A phone-like app to showcase real-time communication through WebRTC
JavaScript 71.9%
TypeScript 26.6%
HTML 1.2%
CSS 0.3%
2025年06月02日 01:21:56 +03:00
back-end Migrate back-end to vite, update dependencies & configure new deployment commands 2025年06月02日 01:19:54 +03:00
front-end Update front-end dependencies & format code 2025年06月02日 01:20:30 +03:00
.gitignore Migrate sibiu-web-meetup demo 2025年02月02日 14:53:03 +02:00
LICENSE Initial commit 2025年01月07日 13:16:29 +02:00
package-lock.json Update README & add app-level deployment commands 2025年06月02日 01:21:56 +03:00
package.json Update README & add app-level deployment commands 2025年06月02日 01:21:56 +03:00
README.md Update README & add app-level deployment commands 2025年06月02日 01:21:56 +03:00

phony

A phone-like app showcasing real-time communication through WebRTC

logo-phony

phony provides peer-to-peer, encrypted, anonymous communication between a reasonable number of users (recommended under 10, due to direct p2p topology)

The first version was implemented as a support for the WebRTC: start here talk

The talk was adapted later on into an article that you can check to understand better how the application works (and what you need to do if p2p connection is not possible)

Installation

  • Install dependencies

    cd phony
    npm install
    
  • Run the app

      1. Development
      cd phony/front-end
      npm run dev
      
      cd phony/back-end
      npm run dev
      
      1. Production
      cd phony
      npm run prod
      

Notes on p2p connections

  • The app uses, by default, the STUN protocol to determine if a peer-to-peer connection is possible

    • The default STUN server is provided by Google at the address: stun.l.google.com:19302
    • You can test your STUN connectivity here
  • Depending on the NAT type of the users, a TURN server might be needed to relay traffic

    • Learn more about NAT types and find out what type your network has here
  • Because TURN servers are used to relay traffic actively, they are usually not available for free, so you might need to deploy one yourself

    • Learn how to deploy a TURN server using coturn here
    • I created a basic config for coturn, inspired by the article referenced above, here