docs
/
Device Hub

Setting up a hub

Create the hub, install the agent on a venue box, and pair it with your organization.

A hub is a small agent running on a computer inside your venue. It holds one outbound connection to Appmint and carries out commands against the hardware plugged into it.

The order matters: create the hub record first, then install the agent, because the installer asks for a key that only exists once the record does.

1. Pick a box

Anything from the last decade with USB and a network port. It is an idle background service — around 80 MB of memory, no disk hot path. 2 GB of memory and 8 GB free disk is plenty. Node 18 or later.

ClassNotes
Mini PCRecommended for a permanent install. Solid storage, real power supply, runs indefinitely
A computer you already ownCheapest path. If node --version works, the agent works
Single-board computerInexpensive, but memory cards wear out under constant writes — boot from an SSD

Put it where the hardware is. USB cable length is the real constraint, not CPU.

2. Create the hub

In BusinessMade, go to Operations → Hubs and choose Add hub.

FieldNotes
Name (ID)URL-safe identifier. This is the hub's auth handle — the agent authenticates with it
Display nameWhat you see in lists
DescriptionWorth filling in. "Mini PC under the bar — thermal printer + scanner + drawer" is the kind of note that saves someone a trip
LocationWhich business location the hub belongs to

Saving mints an API key. Copy it now — you paste it into the installer, and it cannot be read back afterwards.

3. Install the agent

One command. It works out which platform it is on and fetches the right installer, so there is a single URL to remember.

Linux and macOS — run as root:

curl -sSL https://web.appmint.space/hub-agent/install | sudo bash

Windows — in PowerShell as Administrator:

irm https://web.appmint.space/hub-agent/install.ps1 | iex
Pipe it to `sudo bash`, not `bash`

The installer needs root to register a service. Running it unprivileged stops with a message telling you the same thing. Windows needs an elevated PowerShell for the same reason.

The installer bootstraps Node if it is missing, downloads the release, installs to a standard location, registers a service that starts on boot, runs the setup wizard, and starts the service.

Node 18 or later is required; the installer fetches it via the platform's package manager if it is absent — apt on Debian and Ubuntu, Homebrew on macOS, winget or Chocolatey on Windows. If Node is already present, none of those are needed.

The setup wizard

It asks for the hub name, the API key, your organization and the server URL, then writes the config.

To re-run it later — after regenerating a key, for instance:

sudo hub-agent setup

Where things land

LinuxmacOSWindows
Install/opt/appmint-hub/opt/appmint-hub%ProgramFiles%\AppmintHub
Config/etc/appmint-hub/config.json/etc/appmint-hub/config.json%ProgramData%\AppmintHub\config.json
Serviceappmint-hub.serviceio.appmint.hubAppmintHub
Logsjournalctl -u appmint-hub -ftail -f /var/log/appmint-hub.out.logEvent Viewer → AppmintHub

Verifying the download

Each release publishes its metadata alongside the tarball:

https://web.appmint.space/hub-agent/<version>/release.json

It carries the version, tarball name, size, SHA-256 and publish time. At 1.0.3 the tarball is 73 KB with checksum:

a650fa337d0918c5d99f9b63edc6b3ad00a9aa3afcafd4e20515df123eb04b5c

The bootstrap is pinned to a release, so the script and the agent it installs always come from the same build.

4. Confirm it connected

Back on the Hubs tab, the hub shows three badges once it is working:

BadgeMeaning
API key · mintedA key exists for this hub
Online · connectedThe agent is connected and heartbeating
Peripherals · N reportedThe agent found N devices on the box

The card also shows the agent version and when it was last seen.

If Peripherals reads 0 but the hub is online, the agent connected but found no hardware — check cables and power before anything else.

How it connects

The agent opens an outbound WebSocket and keeps it open, authenticating with its hub name, key and organization on the handshake.

No inbound ports, no port forwarding

Because the connection is made outward from your venue, nothing needs exposing to the internet and no firewall rules are required. The one thing to allow is outbound WebSocket on 443 — guest and captive-portal networks commonly block it.

Next