The C-Gate IoT Hub is provided as software in a container format. It is recommended to install the C-Gate IoT Hub on a central server per company location. Alternatively, installation on a standard PC is also possible.

System requirements

  • Container runtime environment (e.g. Docker, Kubernetes, OpenShift, Podman, ...)
  • 8 GB RAM
  • 128 GB hard disk space
  • 64-bit processor (4 cores recommended)
  • Internet connection (during installation and update)
If more than 25 controllers are connected, the requirements may be greater.

C-Gate IoT Hub Container

The C-Gate IoT Hub container is provided in the Docker Registry by CLOOS. You will receive the necessary access data when purchasing a C-Gate IoT Hub.

Registry and Image URL

docker.cloos.de/cgate

Example of a test environment with Docker

docker run -d --name cgate -p 80:8080 -p 4840:4840 docker.cloos.de/cgate

Example of a productive environment with Docker Compose

version: "3"
services:
  cgate:
    container_name: cgate
    image: docker.cloos.de/cgate:latest
    restart: always
    ports:
      - "80:8080"
      - "4840:4840"
      - "5000:5000/tcp"
      - "5000:5000/udp"
      - "5005:5005"
      - "5010:5010"
      - "5679:5679"
    environment:
      - APP_MAX_DATA_SIZE_GB=64
    volumes:
      - data:/data
volumes:
  data:

Volumes

C-Gate stores all configurations and data in the directory /data. A volume should be used for this directory to persist the data.

Exposed Ports

  • 4840 (OPC UA Server)
  • 5000/tcp (Robot communication up to V6)
  • 5000/udp (Robot communication up to V6)
  • 5005 (Robot communication up to V6)
  • 5010 (Robot communication up to V6)
  • 5679 (IoT Connector RPC)
  • 8080 (Web Interface)

Variables

APP_ADMIN_PASSWORD

Forces a password for the admin user.

Default value: Empty

APP_MAX_DATA_SIZE

Sets the maximum size of the total data stored by C-Gate in GB.

Default value: 32

Step-by-step guide

If you are not yet using a container runtime environment, the following instructions will guide you through the necessary steps for a basic container runtime environment with C-Gate. In this case, we recommend that you nevertheless get to grips with your container environment in order to be able to operate it safely.

  1. Install Docker for your Linux distribution.
  2. Install Docker Compose.
  3. Execute the following commands to install and start C-Gate:
    sudo mkdir -p /opt/cloos/cgate
    cd /opt/cloos/cgate/
    sudo curl -L https://c-gate.cloos.de/static/install/docker-compose.yml -o docker-compose.yml
    sudo docker login docker.cloos.de
    # Enter the access data you received from CLOOS here.
    sudo docker-compose up -d
    # Give the application a few seconds to start.
    # Read the generated password for the user admin with the following command:
    sudo docker logs cgate | grep UserInitializer

We recommend an installation under a Linux operating system, as containers have already been established there for several years. Under Windows, on the other hand, containers are currently still new. You should therefore expect more frequent changes, slightly higher resource consumption and more challenges during setup and operation.

  1. Make sure that the latest update for Windows is installed. You need at least Windows 10 from version number 2004 (Build 19041) or Windows 11.

    To display the Windows version, the following command can be executed on the command line:
    winver
  2. Install WSL (Windows Subsystem for Linux) with the following commands on the command line:
    wsl --set-default-version 2
    wsl --install -d Ubuntu
    wsl --set-default Ubuntu
  3. Install C-Gate with our C-Gate IoT Hub installer for Windows.

After the installation

The next steps and further information can be found on the C-Gate web interface. You can access this after installation at http://localhost on your server or PC.

From another computer you can reach C-Gate at http://[serverip], where [serverip] is to be replaced by the IP of your server or PC on which C-Gate has been installed.

Frequently asked questions

Where is my C-Gate data stored?

Under Docker, data is usually stored in so-called volumes. C-Gate uses such a volume for the internal directory /data.

How can I create a backup of my C-Gate data?

You can create a backup of your data with the following command. The backup is stored in the folder where the command is executed.

Linux (Docker):
# Create backup
sudo docker run --rm --volumes-from cgate -v $(pwd):/backup ubuntu tar cvzf /backup/cgate-backup.tar.gz /data

# Restore backup
sudo docker run --rm --volumes-from cgate -v $(pwd):/backup ubuntu bash -c "cd /data && tar xvzf /backup/cgate-backup.tar.gz --strip 1"
Windows (WSL Ubuntu Shell):
# Create backup
podman run --rm --volumes-from cgate -v $(pwd):/backup ubuntu tar cvzf /backup/cgate-backup.tar.gz /data

# Restore backup
podman run --rm --volumes-from cgate -v $(pwd):/backup ubuntu bash -c "cd /data && tar xvzf /backup/cgate-backup.tar.gz --strip 1"

For a daily backup, for example, a cron job (Linux) or a scheduled task (Windows) can be used.

For a consistent backup, it is recommended to stop the application briefly (docker stop cgate) and start it again after the backup (docker start cgate).

C-Gate asks me for access data when it starts. What do I have to enter there?

By default, a user with the name admin is created with the installation of C-Gate. The password for this user is generated the first time the Docker Container is started and output on the command line. You can display the output of the Docker Container with the command docker logs cgate. The following command provides you with the output of the password generation:

Linux (Docker):
sudo docker logs cgate | grep UserInitializer
Windows (WSL Ubuntu Shell):
podman logs cgate | grep UserInitializer

With the Windows installation, the access data is also displayed once at the end of the installation.

How can I reset my password?

You can force a new admin password by setting the environment variable APP_ADMIN_PASSWORD='NewPassword' for your C-Gate container. For a Docker installation with Docker Compose, for example, you can set this variable in the file docker-compose.yml below the environment line.

Example:

...
  environment:
    - APP_ADMIN_PASSWORD="MySecretPassword"
...

If you have installed C-Gate with our Windows instructions, you can set the password in the file ~/.config/cgate/cgate.conf within the WSL by entering the following line:

APP_ADMIN_PASSWORD="MySecretPassword"

How do I connect my devices to C-Gate?
  1. First of all, a physical connection should be available. For CLOOS robot systems, this is usually a network cable connected to the robot controller and your company network. QINEO welding units can alternatively be connected via Wifi.
  2. Afterwards, your devices need an IP address and corresponding network settings so that they can be reached from the server or PC on which C-Gate IoT Hub is installed. Please refer to the respective device manual for information on how to adjust the network settings. The network settings should be assigned according to your IT policy. You can check the connection by running a ping on the device IP from the server or PC with C-Gate.
  3. Follow the C-Gate instructions on the C-Gate web interface to activate your licence. You can then configure your devices in the device view on the C-Gate. Enter the corresponding IP addresses of the devices there.

If everything is set up correctly, the devices appear as online in the C-Gate device view.

If you are still unable to connect, please refer to our notes on firewall rules.

Which firewall rules and ports must be observed?

The following ports are relevant for accessing the C-Gate IoT Hub:

Inbound 80 TCP Web interface and API
Inbound 4840 TCP OPC UA server for connecting your MES and ERP systems
Inbound 5679 TCP RPC interface for the C-Gate IoT Connector

Without IoT Connector, the C-Gate IoT Hub additionally establishes connections to the following ports:

Outgoing 48010 TCP Robot systems
Outgoing 52341 TCP Welding equipment
Outgoing 4840 TCP PLCs

With QIROX Legacy Hardware (hardware older than V7) the following additional ports are used:

Inbound 5000 TCP
Inbound 5000 UDP
Inbound 5005 TCP
Inbound 5010 TCP

How can I update C-Gate IoT Hub?

C-Gate can be brought up to date with a new container image.

Linux (Docker-Compose):
cd /opt/cloos/cgate/
docker-compose pull
docker-compose up -d
Windows:

In the start menu under the folder C-Gate there is an update script which carries out an update to the current stable version.

Existing data is automatically migrated by the application when it is updated. Depending on the amount of data, the migration process may delay the start of the new application version by a few minutes. The application is not available during this time.

What is inside the C-Gate container?

The C-Gate IoT Hub container is based on a current official Ubuntu base image and contains the following services. Only services with a corresponding port specification can be accessed from outside the container. Services without port specifications can only be accessed within the container and are thus protected from external access.

  • C-Gate IoT Hub Java Application (Port 4840/tcp, 5000/tcp/udp, 5005/tcp, 5010/tcp)
  • C-Gate IoT Hub NodeJS Graph-Converter Service
  • nginx Webserver (Port 8080/tcp)
  • mongoDB Database

Why does Windows block the execution of the C-Gate installation?

Downloaded .exe files are easily classified as a threat by Windows. The following Powershell command can be used to correct this classification for the file:

cd Downloads
Unblock-File -Confirm:$false '.\C-Gate IoT Hub Setup.exe'

If the installation or execution of included script files is still blocked, please install our Cloos certificate in your system and try again. Please make sure to select "Trusted Root Certification Authorities" as the location for the certificate during installation.

I have installed C-Gate on Windows manually with Docker Desktop. How do I migrate my data to the new version with the C-Gate installer?

The new C-Gate installer for Windows automatically detects a previous installation with Docker Desktop and imports the data during the installation. After the installation, please make sure that your C-Gate installation works as usual. Afterwards, please delete the C-Gate container from Docker Desktop so that it does not start again automatically after a reboot.