Skip to main content
Version: V3.2

Capture Edge on Docker

We recommend to install Capture Edge using Docker and Docker Compose on Linux. If you already have Docker and Docker-compose installed you can start Capture Edge by unzipping the zip file and running the following command in the extracted directory:

docker compose up -d

If you don't have Docker yet, you can extract the zip file and run Install.sh. This will install all required dependencies and start Capture Edge.

Versioning

By default, the latest released version will be used. To stay on a specific version, edit docker-compose.yml and change the latest tag to the desired version for each component. You can use a version in major.minor format, or major.minor.patch, for example 2.2 or 2.1.6. If no patch is defined (the last number), the latest patch of that version will be used.

Configuring Capture Edge with Docker Networking

This section explains how to configure Capture Edge to work correctly within a Docker network. By default, Docker containers use their own internal network and won't be able to connect to services on the host machine (your computer) using localhost or 127.0.0.1.

Database Connections

Capture Edge uses databases like InfluxDB and potentially Redis (if uncommented in docker-compose.yml) to store captured data. Here's how to adjust the configuration for these services:

  • InfluxDB:

    Within the Capture Edge user interface, navigate to Advanced settings > local database > address. Change the address from 127.0.0.1 to influxdb. This tells Capture Edge to connect to the InfluxDB service running in a separate Docker container named influxdb.

  • Redis (if applicable):

    The redis service is currently commented out in the provided docker-compose.yml. If you plan to use Redis, uncomment the entire redis service section. Then, follow similar steps as InfluxDB to update the address within Capture Edge settings, changing it from 127.0.0.1 to redis.

Important Note

Avoid using 127.0.0.1 for any connections within the Docker network. Instead, use the service names of the relevant containers (e.g., influxdb). This ensures proper communication between Capture Edge components and database services.

docker-compose.yml

# Set the environment variable CAPTURE_DOCKER_TAG to use a different tag than 'latest'.
# Example with sudo: sudo CAPTURE_DOCKER_TAG=develop docker compose up -d

version: "2"

services:
# Capture Stack
cloudmanager:
image: harbor.mgmt.vintecc.cloud/capture-edge/cloudmanager:${CAPTURE_DOCKER_TAG:-latest}
container_name: cloudmanager
ports:
- "5004:5004"
# - '80:5004' # Use this instead of the above line if you want to access the cloudmanager on port 80 => useful for Balena
volumes:
- capture_etc:/etc/capture
# privileged: true # Required for CAN bus access
environment:
# COLLECTOR_URL: http://172.17.0.1:5002 # Required for CAN bus access
IS_RUNNING_IN_DOCKER: "true"
# CAPTURE_SERVER_BASE_URL: https://portal.captureplatform.com # You can change this to place this device on another Capture server (e.g. https://testserver.capture-vintecc.com), default is 'https://portal.captureplatform.com'.
# CAPTURE_COMPANY: Vintecc # On provisioning of the device, it will be available under this company. Default is 'Vintecc'.
# CAPTURE_LOGS_DIR: /opt/capture/CloudManager/logs # Set the directory where logs will be stored. Default is /opt/capture/CloudManager/logs.
# CAPTURE_SEPARATE_ERROR_LOG: true # Set the boolean to also write error logs to a different file. Default is true.
# CAPTURE_LOGS_MAX_SIZE: 104857600 # Set the maximum size for logs IN BYTES. Default is 104857600 (100MB).
# CAPTURE_LOG_FILE_COUNT_LIMIT: 14 # Set the number of log files to keep. Default is 14.
# CAPTURE_LOG_ERROR_FILE_COUNT_LIMIT: 30 # Set the number of error log files to keep. Default is 30.
restart: unless-stopped

syncer:
image: harbor.mgmt.vintecc.cloud/capture-edge/syncer:${CAPTURE_DOCKER_TAG:-latest}
container_name: syncer
ports:
- "5001:5001"
volumes:
- capture_etc:/etc/capture
environment:
IS_RUNNING_IN_DOCKER: "true"
# CAPTURE_LOGS_DIR: /opt/capture/Syncer/logs # Set the directory where logs will be stored. Default is /opt/capture/Syncer/logs.
# CAPTURE_SEPARATE_ERROR_LOG: true # Set the boolean to also write error logs to a different file. Default is true.
# CAPTURE_LOGS_MAX_SIZE: 104857600 # Set the maximum size for logs IN BYTES. Default is 104857600 (100MB).
# CAPTURE_LOG_FILE_COUNT_LIMIT: 14 # Set the number of log files to keep. Default is 14.
# CAPTURE_LOG_ERROR_FILE_COUNT_LIMIT: 30 # Set the number of error log files to keep. Default is 30.
depends_on:
- cloudmanager
restart: unless-stopped

collector:
image: harbor.mgmt.vintecc.cloud/capture-edge/collector:${CAPTURE_DOCKER_TAG:-latest}
container_name: collector
# privileged: true # Required for CAN bus access
# network_mode: host # Required for CAN bus access
ports:
- "5002:5002"
# - "4840:4840"
# - "48898:48898"
volumes:
- capture_etc:/etc/capture
environment:
# CLOUDMANAGER_URL: http://localhost:80 # Required for CAN bus access
IS_RUNNING_IN_DOCKER: "true"
# CAPTURE_LOGS_DIR: /opt/capture/Collector/logs # Set the directory where logs will be stored. Default is /opt/capture/Collector/logs.
# CAPTURE_SEPARATE_ERROR_LOG: true # Set the boolean to also write error logs to a different file. Default is true.
# CAPTURE_LOGS_MAX_SIZE: 104857600 # Set the maximum size for logs IN BYTES. Default is 104857600 (100MB).
# CAPTURE_LOG_FILE_COUNT_LIMIT: 14 # Set the number of log files to keep. Default is 14.
# CAPTURE_LOG_ERROR_FILE_COUNT_LIMIT: 30 # Set the number of error log files to keep. Default is 30.
depends_on:
- cloudmanager
restart: unless-stopped

analytics:
image: harbor.mgmt.vintecc.cloud/capture-edge/analytics:${CAPTURE_DOCKER_TAG:-latest}
container_name: analytics
ports:
- "5003:5003"
volumes:
- capture_etc:/etc/capture
environment:
IS_RUNNING_IN_DOCKER: "true"
# CAPTURE_LOGS_DIR: /opt/capture/Analytics/logs # Set the directory where logs will be stored. Default is /opt/capture/Analytics/logs.
# CAPTURE_SEPARATE_ERROR_LOG: true # Set the boolean to also write error logs to a different file. Default is true.
# CAPTURE_LOGS_MAX_SIZE: 104857600 # Set the maximum size for logs IN BYTES. Default is 104857600 (100MB).
# CAPTURE_LOG_FILE_COUNT_LIMIT: 14 # Set the number of log files to keep. Default is 14.
# CAPTURE_LOG_ERROR_FILE_COUNT_LIMIT: 30 # Set the number of error log files to keep. Default is 30.
depends_on:
- cloudmanager
restart: unless-stopped

# Storage
influxdb:
image: harbor.mgmt.vintecc.cloud/vintecc/influxdb1:latest
container_name: influxdb
privileged: true
ports:
- "8086:8086"
- "8088:8088"
volumes:
- influxdb_config:/etc/influxdb/
# environment:
# DEVICE: /dev/sda
# ID_FS_TYPE: ext4
# MOUNT_POINT: /var/lib/influxdb
restart: unless-stopped

volumes:
capture_etc:
influxdb_config: