Skip to main content
Skip table of contents

Docker gateway for Linux or Windows

Gateway system requirements

Cloud Gateway is deployed as a Docker container and is supported on the following platforms:

  • Ubuntu 18.04+

  • RHEL 7.6, 8+

  • SLES 15, 15.1+

  • OpenSUSE Leap 15, 15.1+

  • CentOS 7, 8+

  • Linux Mint 19.1, 19.2+

  • Manjaro 18.0.2+

  • Fedora 29, 31+

  • Debian 9, 10+

  • Raspbian 10 on Raspberry PI

  • Linux ARM, including a package for Raspberry PI and Jetson

  • Windows 10, 11 using Docker Desktop and WSL 2

Hardware Estimation for Docker Gateway (minimum requirements)

Estimated for a 2 Mbps bitrate stream

# of Cameras

RAM (GB)

CPU (Cores)

Storage (GB)

Network Upload Speed (Mbps)

25

2

1

4

40

50

4

1

4

65

100

6

1

8

130

200

8

2

8

260

500

16

4

12

640

Hardware testing was performed on Ubuntu 24.04 with Intel Xeon processors


Windows Installation

  1. Install Docker Desktop for Windows.

  2. Download and unzip the Gateway package.

  3. Open PowerShell and go to the directory with the gateway package content.

  4. If your system has Windows Subsystem for Linux (WSL) or Git installed, you can start the application using the start script.

    CODE
    ./start.sh

    Otherwise, run the following commands in Windows PowerShell from the Gateway package directory.

    CODE
    .\start.bat
  5. The Gateway should now be accessible at localhost:80 or <device-ip>:80

You should see the container running in your Docker Desktop

image-20240416-152050.png

 

  1. Disable Windows automatic service detection in Network & Internet → Proxy

image-20240328-015159.png

Linux Installation

  1. Download and unzip the Gateway package.

  2. Install Docker Engine and Docker Compose.

  3. Run the Gateway using the start script.

    CODE
    ./start.sh

    The script should automatically detect your system’s architecture.
    If you have issues with this, the script can be run in the following way to enforce a specific architecture:

    CODE
    # For x64 arch
    ./start.sh x64
    # For arm64 arch
    ./start.sh arm64
  4. The Gateway should now be accessible at localhost:80 or <device-ip>:80


Adding Gateway to the Cloud

  1. Open in browser 127.0.0.1 or <device-ip>, login with username: admin, password: admin, then navigate to the Settings and copy the Gateway ID.

image-20240416-162323.png
  1. Follow the instructions on Settings -> Cameras page | New-Gateway page. You will need the following information:

  • Gateway ID

  • Username and Password (admin/admin)


How to Stop Gateway

Execute the stop script:
Linux

CODE
./stop.sh

Windows

CODE
.\stop.bat

How to Update Gateway

Local Update

  1. Ensure that the old version of Gateway is running.

  2. Navigate to the extracted folder of the new version of the Gateway.

  3. Execute the script update.sh by providing the old Gateway directory and the new Gateway directory:
    Linux

    CODE
    ./update.sh -orig <path_to_old_version_directory> -dest <path_to_new_version_directory>

    Windows

    CODE
    .\update.bat -orig <path_to_old_version_directory> -dest <path_to_new_version_directory>

Remote Update

Note that this requires an SSH Server to be installed on the Gateway’s Host system.

  1. Get service information of the gateway’s connection.
    Curl

    CODE
    curl --location 'https://<UPLINK SERVICE URL>/api/device/<CAMERA_ID FROM GATEWAY ACCESS TOKEN>' --header 'Authorization: Bearer <UPLINK SERVICE PASSWORD>'

    Response

    CODE
    {"camid": "3045", "proxy_id": "b4d185e7efdfa0f4ce01", "forwards": [{"name": "camera-gateway-http", "protocol": "http", "host": "127.0.0.1", "port": 80, "proxy_port_number": 33984, "proxy_host": "b4d185e7efdfa0f4ce01.proxy.cloud-vms.com", "proxy_url": "http://b4d185e7efdfa0f4ce01.proxy.cloud-vms.com:33984", "proxy_port": 33984}, {"name": "camera-gateway-ssh", "protocol": "tcp", "host": "172.31.2.21", "port": 22, "proxy_port_number": 33985, "proxy_host": "b4d185e7efdfa0f4ce01.proxy.cloud-vms.com", "proxy_port": 33985}]}
  2. Connect to the device via the SSH info.

    CODE
    ssh -i <PATH TO .PEM> <USERNAME>@a4f9efe5b9e887b79001.proxy.cloud-vms.com -p 34917

    The connection method may vary depending on how your SSH Client is configured on the host machine.

  3. Upload or download the Gateway version you want to update to onto the Gateway device.

  4. Navigate to the directory containing the new version of the Gateway.

  5. Execute the update script as a background process. Note that the connection will be broken as the Gateway restarts.
    Linux

    CODE
    nohup sudo ./update.sh -orig <path_to_old_version_directory> -dest <path_to_new_version_directory> &

    Windows

    CODE
    Start-Process .\update.bat -orig <path_to_old_version_directory> -dest <path_to_new_version_directory> -NoNewWindow

    If done successfully, the Gateway should be accessible at its original IP.

Troubleshooting

Gateway Connectivity Issues

The connection between the gateway and the cloud can be checked by attempting to access the Gateway UI through the Cloud VMS interface.

image-20251126-213608.png

If the Gateway cannot be accessed in this manner, it is usually a result of the following errors:

  1. The gateway’s uplink connection timed out. The connection can be restarted in the Gateway’s Settings page:

    image-20240416-165150.png

  2. The Gateway’s ID was entered incorrectly when adding the Gateway to the cloud. In this case, you will need to delete and re-add the Gateway with the correct Gateway ID found in the Gateway’s Settings page.

  3. The Gateway Docker container is not running properly. Open the console on the gateway device and run docker ps -a - see if the gateway container is running with “healthy“ status.

In any case, please download the gateway logs from Settings → Maintenance → Uplink Logs and send them to technical support.

 

JavaScript errors detected

Please note, these errors can depend on your browser setup.

If this problem persists, please contact our support.