Screego
Screego is an open-source software that provides screen sharing via WebRTC. A demo can be found at https://app.screego.net.
Note
For this guide you should be familiar with the basic concepts of
License
All relevant legal information can be found here:
Prerequisites
To make the application accessible from the outside, open a port in the firewall:
[isabell@stardust ~]$ uberspace port add
Port 40132 will be open for TCP and UDP traffic in a few minutes.
[isabell@stardust ~]$
Installation
Create a new directory, enter the directory you just created, download the latest version, unpack the archive, delete the archive afterwards, make the binary executable and create the file screego.config
as a copy of the file screego.config.example
:
Note
Replace 1.11.1
with the version of the latest release.
[isabell@stardust ~]$ mkdir ~/screego
[isabell@stardust ~]$ cd ~/screego
[isabell@stardust screego]$ wget "https://github.com/screego/server/releases/download/v1.11.1/screego_1.11.1_linux_amd64.tar.gz"
[isabell@stardust screego]$ tar xvf screego_1.11.1_linux_amd64.tar.gz
[isabell@stardust screego]$ rm screego_1.11.1_linux_amd64.tar.gz
[isabell@stardust screego]$ chmod +x screego
[isabell@stardust screego]$ cp screego.config.example screego.config
[isabell@stardust screego]$
Configuration
Configure Screego
Note
You can use the following command to generate your own SCREEGO_SECRET
: tr -dc A-Za-z0-9 < /dev/urandom | head -c 40; echo
Warning
Replace isabell
with your username, <YOUR_SECRET>
with your secret and 40132
with your port!
The following settings must be adjusted in the ~/screego/screego.config
:
SCREEGO_EXTERNAL_IP=dns:isabell.uber.space
SCREEGO_SECRET=<YOUR_SECRET>
SCREEGO_TURN_ADDRESS=0.0.0.0:40132
Note
Please have a look at “NAT Traversal” on the official project page. In most cases STUN should be sufficient, but if TURN is used it is necessary to open more ports and specify them under SCREEGO_TURN_PORT_RANGE
in the screego.config
file. For the number of ports to be opened, the following currently applies approximately: shared video streams * users in the room * 4
There is also a bug in the TURN server which results in not all connections being properly cleaned up. This means that even more ports may be required.
Setup daemon
Create ~/etc/services.d/screego.ini
with the following content:
[program:screego]
directory=%(ENV_HOME)s/screego/
command=%(ENV_HOME)s/screego/screego serve
autostart=yes
autorestart=yes
startsecs=30
After creating the configuration, tell supervisord to refresh its configuration and start the service:
[isabell@stardust ~]$ supervisorctl reread
SERVICE: available
[isabell@stardust ~]$ supervisorctl update
SERVICE: added process group
[isabell@stardust ~]$ supervisorctl status
SERVICE RUNNING pid 26020, uptime 0:03:14
[isabell@stardust ~]$
If it’s not in state RUNNING, check your configuration.
Setup web backend
Note
The default port for Screego is 5050
.
To make the application accessible from the outside, configure a web backend:
[isabell@stardust ~]$ uberspace web backend set / --http --port <port>
Set backend for / to port <port>; please make sure something is listening!
You can always check the status of your backend using "uberspace web backend list".
[isabell@stardust ~]$
Warning
Replace isabell
with your username!
If Screego is running, you can now find the website at https://isabell.uber.space
.
Best practices
Security
Keep the software up to date.
If you do not want third parties to be able to create new rooms on your server, then set SCREEGO_AUTH_MODE=all
in the screego.config
file so that a login with username and password is mandatory (the command ./screego hash -h
can help you to create a user file required for this). If you want to prevent someone from entering an existing room via the direct link that exists for each room, choose a more complex room ID.
Updates
Note
Check the GitHub release page regularly to stay informed about the newest version.
To update the software, download the latest version and replace all files (LICENSE
, README.md
, screego
and screego.config.example
). Also check if there are any changes in the screego.config.example
compared to your currently used screego.config
.
Tested with Screego 1.11.1, Uberspace 7.16.1
Written by: no-one <https://github.com/no-one>