- M.A.R.C.U.S. Cloud is the managed service. It provides the operator portal, telemetry ingest, the alert engine and the Public API, and Involve operates it exclusively in the AWS London region (
eu-west-2). You don’t run any cloud components yourself. - The M.A.R.C.U.S. Collector is one lightweight service that runs on your network. It connects outbound to M.A.R.C.U.S. Cloud on HTTPS 443 and talks to devices on your local network using each device’s native control protocol.
UK-hosted exclusively. All customer data is stored, processed and backed up inside the United Kingdom, including configuration, telemetry, audit records and backups. Where the Collector runs does not change this.
1. Two decisions
How you deploy comes down to two independent choices: where the Collector sits, and how it is packaged. You can mix the answers freely across a single estate.Decision A — Where does the Collector sit?
Decision B — How is the Collector packaged?
For example, you might run the native systemd Collector at your head office, a Docker Compose Collector on a VM at a regional office, and a Kubernetes Collector in your cloud tenant. All three report to the same M.A.R.C.U.S. tenant and appear as three Collectors in the portal.
2. Topology patterns
Four topologies cover almost every real-world deployment. The M.A.R.C.U.S. — Network Flow and Multi-Site Network Flow diagrams illustrate them.2.1 Per-site Collector (the default)
Each site has one Collector on its local AV VLAN, which reaches devices over the LAN. Each site’s firewall allows outbound HTTPS only.2.2 Shared central Collector
One Collector at your head office or in a data centre reaches every site’s AV VLAN over your corporate WAN.2.3 Hybrid
Each major site has its own Collector, and a central Collector serves the smaller regional offices.2.4 Cloud-hosted Collector
The Collector runs in your own cloud tenant (AWS, Azure or Google Cloud) and reaches your sites over your existing private connectivity.3. Packaging options
The Collector is a single static Go binary with no runtime dependencies, interpreter or shared libraries. It ships in the following forms.3.1 Native binary + systemd (Linux)
The Collector installs directly onto a Linux host and runs as a systemd service. Builds are available foramd64 and arm64.
- Installed to:
/usr/local/bin/av-bridge, running as a dedicated non-rootav-bridgesystem user - Configuration:
/etc/av-bridge/config.yamland/etc/av-bridge/env - State and logs:
/var/lib/av-bridge/and/var/log/av-bridge/ - Managed by: systemd (
av-bridge.service)
3.2 Native binary + Windows service
The same Collector, built for Windows and installed as a Windows service.- Installed to:
C:\Program Files\av-bridge\av-bridge.exe - Configuration:
C:\ProgramData\av-bridge\config.yamlandC:\ProgramData\av-bridge\env - Logs:
C:\ProgramData\av-bridge\logs\ - Managed by: the Windows Service Control Manager (service name
av-bridge)
3.3 Container image
A multi-stage build produces a minimalscratch image. It contains only the Collector binary, the TLS certificate-authority bundle and timezone data.
- Configuration: YAML mounted at
/etc/av-bridge/config.yaml - State: a small volume mounted at
/var/lib/av-bridge/ - Ports: TCP 8080 is optional and serves the local API only. The Collector needs no ports for cloud operation.
- Image: Involve provides the registry path and version tag during onboarding.
Deployment (with configuration from a ConfigMap and secrets from a Secret or a Secrets Store CSI driver), or on a managed container platform such as AWS ECS on Fargate, Azure Container Instances or Google Compute Engine with Container-Optimized OS.
One replica per Collector. Each Collector has its own identity and HMAC key. To scale out, add more Collector deployments, each enrolled separately. Don’t add replicas to an existing one.
4. Install steps
Every installation starts in the portal. Go to Collectors → Add Collector, name the Collector, and the portal issues a single-use enrolment token along with a ready-to-paste install command. Values shown in[…] below are placeholders for the values the portal gives you.
4.1 On-premises Linux (systemd)
This is the default install path. Run the command from the portal on your target host:- Checks the host (root access,
curl, systemd). - Redeems the enrolment token with M.A.R.C.U.S. Cloud and receives the Collector’s identity and HMAC key.
- Creates the non-root
av-bridgeservice user and the directories listed in §3.1. - Installs the Collector binary and writes its configuration.
- Registers and starts
av-bridge.service, then waits for the local health check to pass.
journalctl -u av-bridge -f
Typical time to stand up: under 15 minutes end to end.
4.2 On-premises Windows Server
Run the command from the portal in an elevated PowerShell session:C:\Program Files\av-bridge\. It then writes the configuration to C:\ProgramData\av-bridge\, registers and starts the av-bridge Windows service, and waits for the local health check to pass.
Follow the logs: C:\ProgramData\av-bridge\logs\
Restart the service: Restart-Service av-bridge
Typical time to stand up: under 15 minutes end to end.
Tokens are single-use. Re-running the script with a token that has already been redeemed fails safely. To re-enrol a host, issue a new token from the portal.
4.3 Docker Compose on any host
For teams that prefer containers to native services:docker compose up -d. The same image and configuration work with docker run on any Docker host, including a VM in AWS, Azure or Google Cloud.
4.4 Kubernetes (EKS, AKS, GKE or on-premises)
A reference manifest:Secret (as shown) or from a Secrets Store CSI driver backed by your cloud key vault. Don’t use a plain ConfigMap.
- AWS EKS: use IAM Roles for Service Accounts with the Secrets Store CSI driver.
- Azure AKS: use the Azure Key Vault provider for Secrets Store CSI.
- Google GKE: use Secret Manager through the Secrets Store CSI driver.
4.5 Managed container platforms
To run the image without operating a container platform:- AWS ECS on Fargate: a task of 0.5 vCPU and 1 GB runs one Collector. Keep state on Amazon EFS so it survives task replacement. Reference the configuration from AWS Secrets Manager in the task definition’s
secretsblock, and setdesiredCount: 1. - Azure Container Instances: run a single container group with
--restart-policy Always, and mount the configuration from Azure Files. - Google Compute Engine with Container-Optimized OS: run one container per VM with
--container-restart-policy=always.
eu-west-2, Azure UK South, or Google europe-west2) unless your own policy says otherwise. The Collector must also have routed reach into each site’s AV VLAN (see §5.2).
5. Network requirements
These apply to every deployment option.5.1 Egress from the Collector to M.A.R.C.U.S. Cloud
This is the only external firewall rule required. Every connection uses TLS 1.2 or higher. Each request is also signed with an HMAC-SHA256 key unique to the Collector, which authenticates every message independently of the transport.
If your allow-list requires a specific hostname rather than a wildcard, Involve will provide the exact hostnames for your tenant on request.
5.2 Collector to devices
For an on-premises Collector, this is ordinary LAN traffic. A cloud-hosted Collector needs a routed path from your cloud tenant into each site’s AV VLAN, through site-to-site VPN, AWS Direct Connect, Azure ExpressRoute or Google Cloud Interconnect.
5.3 Inbound to the Collector
Nothing inbound is required from the internet. No customer location needs public-facing ports. An optional local-network port is available:
The cloud does not use this port. Allow it only from your internal network.
6. Configuration and secrets
6.1 Configuration files
The enrolment script generates the Collector’s configuration. It holds the cloud endpoint, the Collector’s identity, its HMAC key and the local state path. The files are/etc/av-bridge/config.yaml and /etc/av-bridge/env on Linux, and the equivalent files in C:\ProgramData\av-bridge\ on Windows.
You manage device configuration in the portal, and it syncs to the Collector automatically. The local configuration normally contains no device entries.
6.2 Secret handling
The HMAC key is the Collector’s most important secret. Protect it in the way that suits your platform:
Inside M.A.R.C.U.S. Cloud, every Collector key is encrypted at rest. To rotate a key, re-enrol the Collector with a new token from the portal. This issues a fresh key and retires the old identity.
7. Sizing
Per Collector, on typical host specifications:
Capacity depends on poll rates, WAN latency to each site and the mix of adapters. Involve confirms sizing for your estate during onboarding.
Add another Collector when:
- A single host is serving more than 500 devices.
- A remote site is more than 50 ms away and has dozens of devices.
- You want to isolate business units or environments from each other.
8. Operations
8.1 Updates
Collector releases use semantic version tags. The current cloud release always supports the two most recent Collector minor versions. The portal’s Collectors page shows each Collector’s version, so you can see which ones need updating. The M.A.R.C.U.S. — Release & Upgrade Policy describes the full release policy.
8.2 Health and monitoring
- Local health check:
GET /healthzon port 8080 returns200 OKwhen the Collector is running. - Operational metrics:
GET /metricson the same port, in Prometheus text format. - Cloud view: the portal’s Collectors page shows each Collector’s status, last heartbeat, version and host operating system. If a Collector stops reporting, the portal marks it offline, and every device behind it shows Collector offline instead of a stale status.
8.3 Backup and restore
The Collector keeps only a small amount of local state: last-known device statuses and telemetry waiting for its next push. On a fresh start, it downloads its device list from the cloud and rebuilds current device status within one poll cycle.You don’t need to back up the Collector. Redeploying is safe. The only file worth keeping is the configuration, because it holds the Collector’s identity and HMAC key. If you lose it, re-enrol the Collector with a new token.
8.4 Logging
- Linux: the systemd journal (
journalctl -u av-bridge) and/var/log/av-bridge/. - Windows:
C:\ProgramData\av-bridge\logs\. - Docker and Kubernetes: stdout and stderr. Forward these to your logging platform, such as Amazon CloudWatch Logs, Azure Monitor, Google Cloud Logging or a self-hosted equivalent.
9. Choosing your combination
Answer these three questions in turn. Do you already run workloads in a particular cloud tenant?- Yes: deploy the Collector in that tenant. Use your existing container platform (EKS, AKS or GKE) if you have one; otherwise use the cloud’s managed container option.
- No: deploy on-premises.
- One site, or several sites on a reliable WAN: use a shared central Collector.
- Many sites with separate AV VLANs and no reliable connection between them: use a Collector at each site.
- A mix of both: use the hybrid pattern.
- Yes: deploy the container as a
Deploymentin your cluster. - No, but you run Docker: use Docker Compose or a managed container platform.
- No, and you prefer native services: use systemd on Linux or a Windows service.
Related documents
- M.A.R.C.U.S. — Product Overview: features and business context
- M.A.R.C.U.S. — Datasheet: full technical specifications
- M.A.R.C.U.S. — Security & Trust: security architecture, including how the Collector communicates with the cloud
- M.A.R.C.U.S. — Release & Upgrade Policy: versioning and compatibility commitments
- M.A.R.C.U.S. — Network Flow and Multi-Site Network Flow diagrams: visual reference for the topologies in §2