Prerequisites
1
A host on the same network as your terminals
Anything that runs Docker: a small server, a NUC, a VM. It does not need to be powerful — the connector holds no state and does almost no work.
2
Outbound HTTPS to OnTime
The host must reach
https://app.ontime.hosai.app. Nothing needs to reach in from the internet.3
An inbound TCP port reachable by the terminals
Default
7005. The terminals connect to the connector, so this port must be open on the host’s local network.4
A connector secret
A shared secret that authenticates the connector to OnTime. Ask your OnTime contact to provision one.
Configuration
Four environment variables:Running it
connector/Dockerfile in the OnTime repository as a bundled single-file build.
Pointing terminals at it
On each terminal, set its LogServer configuration:
The exact menu path varies by model — look for “LogServer”, “Server settings” or “Communication” in the device’s admin menu.
Once set, the device opens a persistent connection and starts streaming. It should appear in OnTime’s unclaimed-devices list within a minute.
The timezone assumption
Verifying
1
Check the connector logs
You should see connections from your terminals and acknowledgement lines as messages are forwarded.
2
Check the Devices page
Terminals should appear as unclaimed serials, then flip
Online once registered.3
Run the fake device
To validate the whole path without waiting for a real punch. See Test with a fake device.
Common problems
Terminals connect but nothing reaches OnTime
Terminals connect but nothing reaches OnTime
Check
BACKEND_URL and CONNECTOR_SECRET. A wrong secret means OnTime returns 401, so the connector never acknowledges — and the device correctly keeps retrying. Nothing is lost, but nothing arrives either, and the device’s queue backs up.Terminals cannot connect at all
Terminals cannot connect at all
Firewall on the connector host, or the wrong IP on the device. Confirm the port is reachable from a terminal’s subnet.
Punches arrive at the wrong time
Punches arrive at the wrong time
DEVICE_TZ_OFFSET does not match the terminals’ configured timezone.