The Losant Gateway Edge Agent is a service that’s installed on every Losant Edge Compute device to manage the deployment and execution of edge workflows.
2.5.0, 2.5, 2, latest
2.5.0-amd64, 2.5-amd64, 2-amd64, latest-amd64
2.5.0-arm64, 2.5-arm64, 2-arm64, latest-arm64
2.5.0-alpine, 2.5-alpine, 2-alpine, latest-alpine
2.5.0-alpine-amd64, 2.5-alpine-amd64, 2-alpine-amd64, latest-alpine-amd64
2.5.0-alpine-arm64, 2.5-alpine-arm64, 2-alpine-arm64, latest-alpine-arm64
Where to get help:
Losant Gateway Edge Agent Installation Tutorial
Losant Gateway Edge Agent Usage Tutorial
Losant Documentation
Losant Forums
Maintained by:
Losant
Supported architectures:
amd64, arm64
For help installing Docker and pulling this image, check out the installation instructions. You can also find a quick run down on using Docker commands to manage the Agent.
docker run -d --name myAgent \
-e 'DEVICE_ID=<your-device-id>' \
-e 'ACCESS_KEY=<your-access-key>' \
-e 'ACCESS_SECRET=<your-access-secret>' \
losant/edge-agent
docker run -d --name myAgent \
-e 'DEVICE_ID=<your-device-id>' \
-e 'ACCESS_KEY=<your-access-key>' \
-e 'ACCESS_SECRET=<your-access-secret>' \
-v /docker/host/dir:/data \
losant/edge-agent
By default, persistent data is stored in the VOLUME /data, which can be used with --volumes-from some-volume-container or -v /docker/host/dir:/data (see docs.docker volumes).
docker run -d --name myAgent \
-e 'DEVICE_ID=<your-device-id>' \
-e 'ACCESS_KEY=<your-access-key>' \
-e 'ACCESS_SECRET=<your-access-secret>' \
-p <host port>:8080 \
losant/edge-agent
By default, the Losant Agent exposes HTTP endpoint at port 8080, which can be exposed to a local host port using -p (see exposing ports).
You can mount in your own config file like the following:
docker run -d --name myAgent \
-v /host/dir/custom-config.toml:/etc/losant/losant-edge-agent-config.toml \
losant/edge-agent
The file at /etc/losant/losant-edge-agent-config.toml is an example agent config file; it is a great starting place for creating your own agent config file.
Most options can be set through environment variables (most common for Docker), the configuration file, or command line flags. You can see the details for each option below this table. If an option is set multiple ways, the command line flag is used first, followed by the environment variable, and then finally falling back to the configuration file.
| Environment Variable | Configuration File Option | Command Line Flag |
|---|---|---|
CONF_PATH | N/A | -f <path> or --conf-path <path> |
DEVICE_ID | gateway.id | --device-id <your-device-id> |
ACCESS_KEY | gateway.key | --access-key <your-access-key> |
ACCESS_SECRET | gateway.secret | --access-secret <your-access-secret> |
LOGGER_OUT | logger.out | --logger-out <destination> |
LOGGER_LEVEL | logger.level | --logger-level <level> |
STORE_PATH | store.path | --store-path <path> |
BROKER_HOST | gateway.host | N/A |
BROKER_PROTOCOL | gateway.protocol | N/A |
BROKER_CLIENT_SSL_KEY_PATH | gateway.clientSsl.keyPath | N/A |
BROKER_CLIENT_SSL_KEY | N/A | N/A |
BROKER_CLIENT_SSL_CERT_PATH | gateway.clientSsl.certificatePath | N/A |
BROKER_CLIENT_SSL_CERT | N/A | N/A |
WORKFLOW_DIRECTORY | workflow.directory | --workflow-directory <path> |
UDP_ADDRESS | udp.address | --udp-address <ip-address> |
QUEUE_OFFLINE_MESSAGES | gateway.queueOfflineMessages | --queue-offline-messages <true,false> |
OFFLINE_MESSAGE_REPLAY_ORDER | gateway.offlineMessageReplayOrder | --offline-message-replay-order <oldestFirst,newestFirst> |
SUBSCRIBE_TO_PERIPHERAL_UPDATES | gateway.subscribeToPeripheralUpdates | --subscribe-to-peripheral-updates <true,false,floating,peripheral> |
WEBSERVER_ENABLED | webserver.enabled | --webserver-enabled <true,false> |
WEBSERVER_PORT | webserver.port | --webserver-port <port> |
WEBSERVER_ADDRESS | webserver.address | --webserver-address <ip-address> |
WEBSERVER_USERNAME | webserver.username | --webserver-username <username> |
WEBSERVER_PASSWORD | webserver.password | --webserver-password <password> |
WEBSERVER_SSL_KEY_PATH | webserver.ssl.keyPath | --webserver-ssl-key-path <path> |
WEBSERVER_SSL_KEY | N/A | N/A |
WEBSERVER_SSL_CERT_PATH | webserver.ssl.certificatePath | --webserver-ssl-cert-path <path> |
WEBSERVER_SSL_CERT | N/A | N/A |
WEBSERVER_SSL_BUNDLE_PATH | webserver.ssl.bundlePath | --webserver-ssl-bundle-path <path> |
WEBSERVER_SSL_BUNDLE | N/A | N/A |
LOCAL_BROKER_ENABLED | localBroker.enabled | --local-broker-enabled <true,false> |
LOCAL_BROKER_PORT | localBroker.port | --local-broker-port <port> |
LOCAL_BROKER_ADDRESS | localBroker.address | --local-broker-address <address> |
LOCAL_BROKER_USERNAME | localBroker.username | --local-broker-username <username> |
LOCAL_BROKER_PASSWORD | localBroker.password | --local-broker-password <password> |
LOCAL_BROKER_SSL_KEY_PATH | localBroker.ssl.keyPath | --local-broker-key-path <path> |
LOCAL_BROKER_SSL_KEY | N/A | N/A |
LOCAL_BROKER_SSL_CERT_PATH | localBroker.ssl.certificatePath | --local-broker-ssl-key-path <path> |
LOCAL_BROKER_SSL_CERT | N/A | N/A |
LOCAL_BROKER_SSL_BUNDLE_PATH | localBroker.ssl.bundlePath | --local-broker-ssl-cert-path <path> |
LOCAL_BROKER_SSL_BUNDLE | N/A | --local-broker-ssl-bundle-path <path> |
HEALTH_CHECK_ENABLED | healthCheck.enabled | N/A |
HEALTH_CHECK_PORT | healthCheck.port | N/A |
HEALTH_CHECK_ADDRESS | healthCheck.address | N/A |
HEALTH_CHECK_OFFLINE_IS_UNHEALTHY | healthCheck.offlineIsUnhealthy | N/A |
| N/A | N/A | -V or --version |
| N/A | N/A | -h |
CONF_PATH:/etc/losant/losant-edge-agent-config.toml, which is also the example configuration file.DEVICE_ID: REQUIREDACCESS_KEY: REQUIREDACCESS_SECRET: REQUIRED
Losant Access Secret to use for the agent. This should be the secret part of a Device Access Key that can be used for the given Device ID.LOGGER_OUT:console or a file path. Defaults to console.LOGGER_LEVEL:error, warn, info, or verbose. Defaults to info.STORE_PATH:/data/losant-edge-agent-store.db.BROKER_HOST:broker.losant.com.BROKER_PROTOCOL:mqtts.BROKER_SSL_KEY_PATH:BROKER_SSL_KEY:BROKER_SSL_KEY_PATH.BROKER_SSL_CERT_PATH:BROKER_SSL_CERT:BROKER_SSL_CERT_PATH.WORKFLOW_DIRECTORY:/data/workflows.UDP_ADDRESS:0.0.0.0, which means to bind to all interfaces on the machine.QUEUE_OFFLINE_MESSAGES:SUBSCRIBE_TO_PERIPHERAL_UPDATES:true (subscribe to all updates), false (subscribe to no updates), floating (subscribe to only floating peripheral updates), or peripheral (subscribe to only peripheral updates that have this device as their gateway). Defaults to true.WEBSERVER_ENABLED:true).WEBSERVER_PORT:8080.WEBSERVER_ADDRESS:0.0.0.0, which means to bind to all interfaces on the machine.WEBSERVER_USERNAME:WEBSERVER_PASSWORD:WEBSERVER_SSL_KEY_PATH:WEBSERVER_SSL_KEY:WEBSERVER_SSL_KEY_PATH.WEBSERVER_SSL_CERT_PATH:WEBSERVER_SSL_CERT:WEBSERVER_SSL_CERT_PATH.WEBSERVER_SSL_BUNDLE_PATH:WEBSERVER_SSL_BUNDLE:WEBSERVER_SSL_BUNDLE_PATH.LOCAL_BROKER_ENABLED:false).LOCAL_BROKER_PORT:1883.LOCAL_BROKER_ADDRESS:0.0.0.0, which means to bind to all interfaces on the machine.LOCAL_BROKER_USERNAME:LOCAL_BROKER_PASSWORD:LOCAL_BROKER_SSL_KEY_PATH:LOCAL_BROKER_SSL_KEY:LOCAL_BROKER_SSL_KEY_PATH.LOCAL_BROKER_SSL_CERT_PATH:LOCAL_BROKER_SSL_CERT:LOCAL_BROKER_SSL_CERT_PATH.LOCAL_BROKER_SSL_BUNDLE_PATH:LOCAL_BROKER_SSL_BUNDLE:LOCAL_BROKER_SSL_BUNDLE_PATH.HEALTH_CHECK_ENABLED:true).HEALTH_CHECK_PORT:8010.HEALTH_CHECK_ADDRESS:127.0.0.1. Set to 0.0.0.0 to bind to all interfaces, which is required when the endpoint must be reachable from outside the container (for example, Kubernetes liveness/readiness probes).HEALTH_CHECK_OFFLINE_IS_UNHEALTHY:false.-V, --version:-h:Copyright (c) 2026 SUSE
Content type
Image
Digest
sha256:35f93617a…
Size
659.5 MB
Last updated
about 1 month ago
docker pull losant/edge-agent