ION is extensible video conferencing software that builds on a distributed RTC System using Go and Flutter. It is part of a larger PION open source project.
GitHub Link: https://github.com/pion/ion
Some strengths of ion, as listed by one of the core contributors:
These answers are provided by our Community. If you find them useful, show some love by clicking the heart. If you run into issues leave a comment, or add your own answer to help others.
Click below to sign up and get $100 of credit to try our products over 60 days!
I installed it on a
$15 3 CPU/1GB RAM/60GB SSD
Droplet with the DigitalOcean Docker One-Click image.Prerequisites
Because the developers have containerized everything in Docker, the only software you need pre-installed is:
The last prerequisite is **a domain **to point to your server. Without a domain, you can’t easily connect via HTTPS, and some browsers block audio/video features on HTTP connections.
Installation
here’s a 2 minute video walkthrough of installation [youtube tE7sR4q2FDA 350 595]
Step 1. Create a server
With git, Docker, and docker-compose installed. If you’re using DigitalOcean the Docker One-Click has all this, if you’re installing from scratch you can reference how to install git and how to install docker
Step 2. Point a domain to your server
One magical feature of ion is that if you are using a domain, the startup process uses Let’s Encrypt to automatically generate SSL certs for the app. This step is important because some modern browsers will block video/audio streaming on non-secure (HTTP) connections.
Step 3. Clone the
ion
repouse git to clone the latest version of the ion codebase onto your server, once it is complete, move to the new ion directory.
Step 4. Set ENV Vars
Specify your domain and email address to use in the Let’s Encrypt registration process via environment variables
These will be used to generate SSL certs in the automated setup that runs next.
Step 5. Start the app
via docker-compose:
This will start the app and log all output of all containers to your commandline, exiting via the commandline will stop the app. If you want to run it in the background you can use
docker-compose up -d
for daemon mode.Step 6. Access the app
Once you see in the logs that the app has been successfully initialized (sometimes the Let’s Encrypt process can take a couple minutes) access the site at
https://yourdomain.com:8080
. You should see a login screen where you enter a room name, and your nickname.Depending on your browser, you’ll need to grant access to camera and microphone, and enable video autoplay.
At this point ion behaves very much like most video conferencing apps, you can generate a share link to send others, you can mute/unmute and turn video on and off, and message other participants via text.
Conclusion
ion looks very good, especially for those who are interested in developing something more on top of an open source video conferencing stack, and those who are interested in running video conferencing with limited resources.
Upon first impression, it stands out from the others in that the software uses very low amount of resources.
One part that I still need to dig into is how is the video streamed. When video conference software fully utilizes webRTC, each video stream is just going peer-to-peer instead of through the server, and conferences with more than 4 participants can quickly overwhelm a good internet connection.