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
curl—Package download
jq—JSON processing
gnupg—Package decryption
ufw—Firewall
logrotate—Log 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) — Radium Gateway (Iongrade hardware) or Minew MG4C
  • 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