Skip to main content

Requirements

Hardware and software requirements for installing the ION Guard platform.

Operating system

OSVersionStatus
Ubuntu24.04 LTSRecommended
Ubuntu22.04 LTSSupported

Other Linux distributions with Docker may work, but are not officially supported.

Hardware

Minimum

ResourceSpecification
CPU2 cores
RAM4 GB
Disk20 GB
NetworkAccess to the local network of the BLE gateways
ResourceSpecification
CPU4+ cores
RAM8 GB
Disk50 GB+ (SSD recommended)
NetworkGigabit Ethernet
Sizing

Disk usage grows with data retention. With the defaults (signals: 7 days, locations: 90 days), 50 GB is enough for most scenarios. Adjust RETENTION_SIGNALS_DAYS and RETENTION_LOCATIONS_DAYS as needed.

Sizing by scale

BLE signal processing is predominantly I/O bound — the disk is the main scaling axis (it grows linearly with beacons × retention time), while CPU and RAM stay nearly constant. Use SSD: InfluxDB depends on IOPS.

ProfileCovers up toScenario
2 vCPU + 4 GB RAM~200 signals/sMost customers
4 vCPU + 8 GB RAM~500 signals/sLarger installations
8 vCPU + 16 GB RAMabove thatRarely needed on a single server

Each antenna emits one MQTT packet every 5 seconds; the approximate rate is (antennas × beacons_per_antenna) / 5 signals/s. To size disk/CPU/RAM by the number of antennas, beacons, and sites, see the Server Sizing Guide (internal technical document).

Software

Installed automatically by the bootstrap

SoftwareVersionPurpose
Docker Engine24+Container runtime
Docker Composev2 (plugin)Container orchestration
curlPackage download
jqJSON processing
gnupgPackage decryption
ufwFirewall
logrotateLog rotation

Docker containers (managed by the platform)

ServiceImageVersion
MariaDBmariadb11
Valkey (Redis)valkey8-alpine
InfluxDBinfluxdb2.7
Nginxnginx1.27-alpine
PHP-FPMLocal buildPHP 8.4
Mosquittomosquitto-go-authLatest
No manual installation

All services run in Docker containers. There is no need to install MariaDB, Redis, InfluxDB, or Mosquitto directly on the server.

Network

Required ports

PortProtocolDirectionService
22TCPInboundSSH (administration)
80TCPInboundHTTP (redirect to HTTPS)
443TCPInboundHTTPS (web interface + API)
8883TCPInboundMQTT over TLS (communication with antennas/gateways) — default
9001TCPInboundMQTT WebSocket (browser debug)
Configurable ports

The HTTP/HTTPS and MQTT ports are configurable via .env (HTTP_PORT, HTTPS_PORT, MQTT_EXTERNAL_PORT, MQTT_WEBSOCKET_PORT). Useful when the server hosts other applications.

MQTT over TLS by default

In recent versions, device communication with the broker uses TLS on port 8883 by default (devices must connect via TLS); port 1883 (plaintext) is reserved for isolated development brokers. Open the port defined in MQTT_EXTERNAL_PORT on the firewall according to the mode of your deployment. See Configuration → MQTT broker TLS.

Connectivity

  • BLE antennas must be able to reach the server's MQTT over TLS port (8883)
  • DigiEye gateways must be able to reach MQTT over TLS (8883) on the server
  • Accelero must be able to reach MQTT over TLS (8883) and HTTPS (443) on the server
  • Operators' browsers must be able to reach HTTPS (443)

DNS

Configure a DNS record (A or CNAME) pointing to the server's IP, or use the local hostname directly. The auto-generated SSL certificate includes both the hostname and the IP as SANs.

Root access

Installation requires root or sudo access to:

  • Install system packages
  • Configure Docker and the firewall
  • Create the iongrade user
  • Register systemd services