Add a Linux runner via Runners

<< Click to Display Table of Contents >>

Raynet One > 2026.2 > User Guide > Start your journey now! > Add a new runner 

Add a Linux runner via Runners

We provide the Linux variant of the runner as a Docker image. Using a dedicated Docker Compose file you can link the runner into your own Docker-powered infrastructure. The runner can be configured using environment variables in the same way as the Windows variant.

 

Some functionality tied to the Windows operating system may not be available in the Linux variant.

 

Basic Linux runner Docker compose template

services:
  rno-runner:
    container_name: rno-runner
    hostname: runner.rno
    image: raynetgmbh/raynet-one-runner:latest
    restart: always
    volumes:
      - rno_runner_data:/app/data
    environment:
      RunnerDatabaseConfig__Location: /app/data/runner.db
      Logging__LogLevel__Default: Information
      ServiceSettings__BackendServerApiUrl: [BACKENDURL]
      ServiceSettings__EnrollmentToken: [TOKEN]
      ServiceSettings__HearBeatDelaySeconds: 20
      HttpProxySettings__IsEnabled: false
      HttpProxySettings__Address: http://proxy.url/
      HttpProxySettings__Port: 3128
      HttpProxySettings__BypassProxyOnLocal: false
      HttpProxySettings__UseDefaultCredentials: false
      HttpProxySettings__UseCredentials: false
      HttpProxySettings__UserName: user
      HttpProxySettings__Password: password
      HttpProxySettings__DisableSslVerification: true
      Messaging__Configuration__Protocol: [PROTOCOL]
    sysctls:
      net.ipv4.ping_group_range: "0 2147483647"
      net.ipv4.ip_unprivileged_port_start: 591
    cap_add:
      - NET_RAW
      - NET_BIND_SERVICE
    networks:
      - rno_runner_isolation
 
networks:
  rno_runner_isolation:
 
volumes:
  rno_runner_data:

 

Copy the above template into a new Docker Compose file (named for example docker-compose.yaml) in a dedicated separate directory. Before execution using docker compose up, you need to configure it.

 

If you already have a Docker Compose file and want to extend it with the runner, copy & paste the rno-runner service entry into the service list, the rno_runner_data volume entry into the volume list and the rno_runner_isolation network into the networks list of your own file.

 

The hostname of the rno-runner container should be set to not conflict with other containers. If you already have another container using that hostname, please resolve the conflict by choosing appropriate hostnames. The runner does share its configured hostname with the system to aid configuration by placeholder.

 

It is a good idea to isolate the network traffic of the runner. That is why the runner has been assigned its own Docker network (rno_runner_isolation).

 

Important runner configuration parameters

We support the adjustment of the following configuration parameters to set-up and maintain your runner. The parameter key is in environment variable notation.

 

Parameter Key

Parameter Value

ServiceSettings__BackendServerApiUrl

The URL to the main command & control server, the backend of the Raynet One system. The default port of the backend if 38080.

 

Example: http://raynet.contoso.com:38080

ServiceSettings__EnrollmentToken

The enrollment token used to authenticate the runner to a valid runner entry in the system. Use a different enrollment token for each separate runner instance. Each enrollment token is valid only once. You can generate new enrollment tokens by adding runners in the web interface.

Messaging__Configuration__Protocol

The protocol used for communication with the backend server. The protocols vary in performance and abstraction. AMQP focuses on performance while STOMP uses the popular HTTP as backbone.

 

Valid options: AMQP, STOMP

HttpProxySettings__IsEnabled

Used to turn on or off the HTTP proxy feature.

HttpProxySettings__Address

The endpoint URL used for HTTP proxy requests. The communication to the backend server is tunneled through it.

HttpProxySettings__Port

The TCP port used for HTTP proxy networking.

HttpProxySettings__BypassProxyOnLocal

Maps to the .NET WebProxy.BypassProxyOnLocal property. If it is set to true, local addresses are not tunneled through the HTTP proxy.

HttpProxySettings__UseDefaultCredentials

Maps to the .NET WebProxy.UseDefaultCredentials property. If it is set to true, the application credentials are used as proxy credentials.

HttpProxySettings__UseCredentials

If true, then credentials are sent as part of HTTP proxy communication. The used credentials have to be specified.

HttpProxySettings__UserName

The username that should be used in the HTTP proxy credentials.

HttpProxySettings__Password

The password that should be used in the HTTP proxy credentials. The raw password is encoded in UTF-8. This UTF-8 string is then encoded as base64. You put this base64 string as value to this parameter.

HttpProxySettings__DisableSslVerification

If true, then no PKI trust check is performed on the public certificates received from SSL / TLS connection endpoints. See Appendix A for further details.

 

Required Linux capabilities for network operations

If the runner is intended to perform network discovery or inventory operations (for example, ping-based network scans or RVIA data uploads), the container must be granted the following Linux kernel capabilities. These are already included in the Docker Compose template above.

 

Capability

Purpose

NET_RAW

Allows the runner to send raw ICMP packets (ping) required for network discovery and inventory scans.

NET_BIND_SERVICE

Allows the runner to bind to port 591 (the RVIA Data Service port) as a non-root user.

 

In addition to cap_add, the sysctls entries in the template configure the kernel to permit ICMP from unprivileged processes and allow the non-root process to bind to port 591. If you do not plan to use network discovery or the RVIA Data Service, these entries are optional.

 

Preparing the compose file for the RVIA Data Service

If you plan to run the RVIA Data Service on this Linux runner, the service port must be mapped from the Docker container to the host machine. Without this port mapping, RVIA clients located outside of the Docker network cannot reach the runner's data service endpoint to upload discovery and inventory files (.ndi, .mmi).

 

Add a ports entry to the rno-runner service in your Docker Compose file to expose the RVIA Data Service port:

 

    ports:
      - "[RVIAPORT]:[RVIAPORT]"

 

Replace [RVIAPORT] with the port number you configure in the RVIA Data Service wizard. The default port value is 591.

 

In addition to the Docker port mapping, verify that the host system's firewall permits inbound TCP traffic on the selected port from the IP addresses of all RVIA client devices that will connect to this runner. See the RVIA Data Service chapter for full configuration details and network requirements.

 

Adding transport encryption security certificate authorities to the runner container

If your runner needs to connect to secure local network endpoints that use a private or corporate CA certificate, you must configure certificate trust using OpenSSL environment variables. Because the runner container runs as a non-root user, it cannot write to system certificate directories at runtime. No custom entrypoint is required.

 

Place your CA certificate file in a certs/ directory next to the Docker Compose file. Then extend the rno-runner service definition with the following volume mount and environment variable:

 

    volumes:
      - rno_runner_data:/app/data
      - ./certs:/certs:ro
    environment:
      ...
      SSL_CERT_FILE: /certs/rootCA.crt

 

Use SSL_CERT_FILE to point OpenSSL to a single PEM file containing one or more trusted CA certificates. To trust multiple CA certificates stored as individual files in the certs/ directory, use SSL_CERT_DIR instead:

 

      SSL_CERT_DIR: /certs

 

Note: The SSL_CERT_FILE and SSL_CERT_DIR environment variables are recognized by OpenSSL on Linux and take effect at process startup without any entrypoint customization. They apply to all HTTPS connections made by the runner, including connections to the Raynet One backend. For additional details about the certificate volume-mount approach and troubleshooting, refer to the Installation Guide section Migrating Certificate Installation to Rootless Containers.