---
title: ControlCom Edge Solution
description: Deploy the ControlCom Edge Server with Docker, onboard it as a gateway, and read data from your equipment over Modbus, OPC UA, BACnet or EtherNet/IP.
source: https://documentation.controlcomtech.com/build/getting-started/first-steps/edge-solution
---

# ControlCom Edge Solution

The Edge Solution is the path for equipment that speaks an industrial protocol: PLCs, meters, building controllers and drives on your local network. You run the ControlCom Edge Server in a Docker container next to that equipment, onboard it to the platform, and configure clients that poll the devices and publish their values. No code is written.

> **Workflow Stage: Connect & Collect**

## Overview

ControlCom Connect has two ways to get data in. [Bring Your Own Device](https://documentation.controlcomtech.com/build/getting-started/first-steps/byod) is for hardware or software you already control: your own code connects to the platform and publishes over MQTT or HTTP. The Edge Solution is for equipment you cannot or do not want to reprogram. The Edge Server handles the protocol conversation with the device, the secure connection to the platform, buffering during outages and reconnection.

The steps are: install Docker, run the Edge Server and onboard it, define a Variable for each value you want to collect, then add a protocol client that maps device registers or tags onto those Variables.

## Prerequisites

You need a ControlCom Connect account with an Organization you can add devices to. If you do not have one, create it at [console.controlcomtech.com](https://console.controlcomtech.com).

You also need a machine on the same network as your equipment that can run Docker: Docker Engine on a Linux server, or Docker Desktop on a macOS, Windows or Linux workstation. See [Get Docker](https://docs.docker.com/get-started/get-docker/) for the installer for your platform. The Edge Server on its own needs about 384 MB of memory and 250 MB of disk. The machine must reach both your devices and the ControlCom Connect platform; nothing needs to be reachable from the internet.

## Setting Up the Edge Server

The Edge Server ships as a container image. The quickest way to see it running is a single command:

```bash
docker run -p 3041:3041 public.ecr.aws/controlcomtech/edge-server:latest
```

The web interface is then available at `https://localhost:3041`. This form does not persist data across restarts, so for anything beyond a first look use the Docker Compose setup. The getting started guide covers both, along with data volumes, environment variables and the onboarding flow that registers the Edge Server as a ControlCom Gateway in your Organization and installs its certificates in one step.

[Edge Server Getting Started](https://documentation.controlcomtech.com/build/edge-server/getting-started)

## Defining Variables

A Variable is where a collected value lands. Each register, tag or object you want to read needs a Variable on the gateway device, and the client you configure in the next step maps onto the Variable's **Topic Property**. Create the Variables first: the client editor selects from existing Topic Properties and will not create them for you.

Variables are created on the device's **Variables** tab. [Creating a Variable](https://documentation.controlcomtech.com/build/edge-server/creating-a-variable) walks through the steps for a gateway device, and the [Variables](https://documentation.controlcomtech.com/platform/variables#creating-a-variable) page describes the data types and the **Store Data** setting that controls whether history is kept.

[Creating a Variable](https://documentation.controlcomtech.com/build/edge-server/creating-a-variable)

## Configuring Data Collection

With the Edge Server onboarded and Variables in place, open the device's **Edge Server** tab and add a client for the protocol your equipment speaks. Each client holds the connection details (address, port, unit or node identifiers, poll interval) and a list of items that pair a register or tag on the device with a Topic Property on the platform. Deploying the configuration pushes it to the Edge Server, which starts polling.

The Modbus guide is the reference walkthrough. The same pattern applies to the other clients: [OPC UA](https://documentation.controlcomtech.com/build/edge-server/clients/opc-ua), [BACnet](https://documentation.controlcomtech.com/build/edge-server/clients/bacnet) and [EtherNet/IP](https://documentation.controlcomtech.com/build/edge-server/clients/ethernet-ip).

[Reading Modbus Data](https://documentation.controlcomtech.com/build/edge-server/clients/modbus)

[OPC UA](https://documentation.controlcomtech.com/build/edge-server/clients/opc-ua)

[BACnet](https://documentation.controlcomtech.com/build/edge-server/clients/bacnet)

[EtherNet/IP](https://documentation.controlcomtech.com/build/edge-server/clients/ethernet-ip)

Once the client is deployed, the Variable's current value updates on the device's **Variables** tab. The Edge Server's own web interface at port 3041 has a [Health](https://documentation.controlcomtech.com/build/edge-server/web-interface/health) section that shows live values and per-client connection state if a value does not arrive.

## Next Steps

Your equipment is now part of the Connect and Collect stages. To see its values on a screen, create a dashboard in the Visualize stage, or open a Variable in Platform Explorer to query its history in the Analyze stage. For processing at the edge (scaling, computed values, triggers) see [Data Processors](https://documentation.controlcomtech.com/build/edge-server/data-processors).

[Creating Dashboards](https://documentation.controlcomtech.com/platform/dashboards/creating)
