Skip to content

Adding a Proxy Component

Media and service traffic transmitted between a remote device and a technician is routed through the Proxy Component when a P2P connection cannot be established or when the proxy is explicitly forced.

When a proxy server is located far from its technicians or when the load on a single running proxy instance increases, issues such as higher latency in video streaming and service data transmission may occur. In such cases, it becomes necessary to scale the proxy network.

This guide describes in detail the process of adding a new proxy component to the system.

System Requirements

First, you need to prepare the environment for a new component instance according to the following system requirements:

  • Operating system: Debian / Ubuntu — Ubuntu 24.04 or Debian 12 recommended
  • RAM: 2 GB
  • CPU: 2 cores
  • Disk space: 16 GB
  • Public IP address with at least 100 Mbps of bandwidth

If a firewall is used, the following network ports must be open for incoming connections:

Port Protocol Purpose
3478 TCP and UDP WebRTC signaling and connection establishment
40000–60000 UDP WebRTC media traffic
Open ports
sudo ufw allow 3478
sudo ufw allow 40000:60000/udp

Installation

Follow these steps to install the component:

Prepare Environment

Install docker, docker-compose and unzip:

sudo apt update && apt install docker.io docker-compose unzip -y

Authorize in the docker registry:

sudo docker login updater.getscreen.me:5000

Prepare Config

Create a directory /opt/getscreen/proxy:

sudo mkdir -p /opt/getscreen/proxy
sudo chown $USER /opt/getscreen/proxy

Copy the /opt/getscreen/proxy/config.json file from the Main Server into it.

Create a file /opt/getscreen/docker-compose.yml with the following contents:

mkdir -p /opt/getscreen && cat <<'EOF' > /opt/getscreen/docker-compose.yml
version: '3.6'

services:

proxy:
    image: updater.getscreen.me:5000/proxy:latest
    restart: always
    container_name: getscreen-proxy
    network_mode: host
    volumes:
    - ./proxy/log/:/opt/proxy/log:rw
    - ./proxy/config.json:/opt/proxy/config.json:rw
EOF

Run Container

Start the server with the following commands:

cd /opt/getscreen && sudo docker-compose up -d

Config Main Server

Now you need to connect the added server to the infrastructure of the Main Server.

To do this, in the /opt/getscreen/server/config.json file on the master server, add entries with the IP address of the added proxy component to the Turn Servers and Stun Servers sections.

After changing the config, you must reboot the main server:

cd /opt/getscreen && sudo docker-compose restart