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: '3.4'
services:
cloudmanager:
image: containerstore.capture-vintecc.com/capture-edge/cloudmanager:${CAPTURE_DOCKER_TAG:-latest}
container_name: cloudmanager
ports:
- '5004:5004'
volumes:
- capture_etc:/etc/capture
- capture_ca_certs:/usr/local/share/ca-certificates/
privileged: true
environment:
- IS_RUNNING_IN_DOCKER=true
# - CAPTURE_COMPANY=YourCompany
# - CAPTURE_SERVER_BASE_URL=http://1.2.3.4
depends_on:
- influxdb
networks:
- CaptureNetwork
restart: always
syncer:
image: containerstore.capture-vintecc.com/capture-edge/syncer:${CAPTURE_DOCKER_TAG:-latest}
container_name: syncer
ports:
- '5001:5001'
volumes:
- capture_etc:/etc/capture
- capture_ca_certs:/usr/local/share/ca-certificates/
networks:
- CaptureNetwork
environment:
- IS_RUNNING_IN_DOCKER=true
depends_on:
- cloudmanager
restart: always
collector:
image: containerstore.capture-vintecc.com/capture-edge/collector:${CAPTURE_DOCKER_TAG:-latest}
container_name: collector
ports:
- '5002:5002'
volumes:
- capture_etc:/etc/capture
# devices:
# - /dev/ttyACM0:/dev/ttyACM0
# network_mode: "host"
networks:
- CaptureNetwork
environment:
- IS_RUNNING_IN_DOCKER=true
depends_on:
- cloudmanager
restart: always
analytics:
image: containerstore.capture-vintecc.com/capture-edge/analytics:${CAPTURE_DOCKER_TAG:-latest}
container_name: analytics
ports:
- '5003:5003'
volumes:
- capture_etc:/etc/capture
# network_mode: "host"
networks:
- CaptureNetwork
environment:
- IS_RUNNING_IN_DOCKER=true
depends_on:
- cloudmanager
restart: always
influxdb:
image: "influxdb:1.8.10"
container_name: influxdb
ports:
- "8086:8086"
- "8088:8088"
volumes:
- influxdb_data:/var/lib/influxdb
- influxdb_config:/etc/influxdb/
networks:
- CaptureNetwork
environment:
- IS_RUNNING_IN_DOCKER=true
restart: always
# redis:
# image: redis:6.2-alpine
# container_name: redis
# ports:
# - '6380:6379'
# command: redis-server --loglevel warning
# networks:
# - CaptureNetwork
# restart: always
volumes:
capture_etc:
capture_ca_certs:
influxdb_data:
influxdb_config:
interact-data:
redis-data:
networks:
CaptureNetwork:
driver: bridge