/ion

Distributed RTC System by pure Go and Flutter

Primary LanguageGoMIT LicenseMIT

ION is a distributed real-time communication system, the goal is to chat anydevice, anytime, anywhere!

MITBuild StatusGo Report CardGitHub go.mod Go versionGitHub tag (latest SemVer pre-release)Docker PullsFinancial Contributors on Open Collective GitHub contributorsTwitter Followslack


❤️Sponsor to help this awsome project go faster!🚀

(https://opencollective.com/pion-ion)

You can vote for feature if you are a sponsor.

Features: https://github.com/pion/ion/projects/1

Quick-Start (LOCALHOST ONLY)

NOTE: Do not attempt to run this example on a VPS. Make sure you read the docs; WebRTC requires some specific network configuration for the SFU service (depending on your host), and the JavaScript GetUserMedia() API can only request camera access on pages with SSL (or localhost). If you are not running on localhost, you MUST configure networking for SFU and enable HTTPS for ion-app-web.

1. Run Ion Backend Services

After cloning the folder, create a docker network (we use this so ion-app-web can communicate securely with the backend):

docker network create ionnet

docker-compose up

3. Expose Ports

Ensure the ports 5000-5200/udp are exposed or forwarded for the SFU service;

4. UI (optional)

Head over to Ion Web App to bring up the front end.

The web app repo also contains examples of exposing the ion biz websocket via reverse proxy with automatic SSL.

For dev and more options see the wiki

Documentation

Architecture

arch

Roadmap

Projects

Maintainers

Contributors

Original Author: adwpc cloudwebrtc

Community Hero: Sean-Der