Deployment

Requirements & specifications

Not a cloud service#

Pinman is installed on each machine it tracks. There is no cloud backend:

  • All data stays on the machine. Each installation keeps its own local database and configuration under C:\ProgramData\Pinman. Nothing is uploaded anywhere.
  • The web UI is served by the machine itself. Your browser — on the machine, or on any phone or laptop that can reach it over your network — connects directly to that machine at http://<machine>:7466. There is no account and no hosted service in between.
  • Multiple machines are tracked independently. Install Pinman on each one; the browser UI can hold connections to several machines and switch between them.

System requirements#

Operating systemWindows 10 or 11 (64-bit)
InstallStandard installer; requires administrator approval
Data locationC:\ProgramData\Pinman (projects, database, configuration)
Browser clientAny modern browser on the machine or on the same network — nothing to install on phones or laptops
InternetNot required. Pinman is fully offline-capable; internet is only needed to download the installer and kits

Services#

A Pinman installation runs a small set of local services, supervised by the Pinman tray application (the tray icon). The tray starts them at login (when autostart is enabled) and restarts them if they stop.

ServiceRoleWhen it runs
API serverREST API, web UI, and the built-in schedulerWhenever Pinman is in use from a browser, the REST API, or a remote CLI
AudioSystem audio control (volume, mute)Always started by the tray
OverlayOn-screen messages, dimming, and slideshows on the machine's displaysOnly when Operator Mode is enabled
InputsCabinet buttons and key inputOnly when Operator Mode is enabled

Notes:

  • The CLI needs no services. pinman commands work directly against the local data — you can use the CLI with everything else stopped. (The exception is pinman service ... itself, which talks to the tray.)
  • The scheduler is not a separate service. Saved and scheduled Actions run inside the API server, so they run whenever the API server runs.

Network ports#

Pinman uses one network port: TCP 7466, where the API server serves the API and web UI over plain HTTP (see Networking, HTTPS & IT for the security model and HTTPS options). The installer can optionally create a Windows Firewall rule for it so other devices on your network can connect.

The other services also listen on local ports — 7467 (overlay), 7468 (audio), 7469 (inputs) and 7470 (tray) — but these are bound to 127.0.0.1 and are never reachable from the network. They need no firewall rules and nothing opened; they only matter if another program on the machine happens to use the same port. Only port 7466 ever needs to be open.

Moving Pinman to a different port#

Pinman needs all five of those ports, so a clash with any of them — not just 7466 — is a reason to move. Change them with one command:

pinman system port 7500

That sets the base port. The API moves to it and the other services move with it, keeping the same order (7501 overlay, 7502 audio, and so on), so you only ever pick one number — but the whole block moves together, so pick a base with five free ports above it. The setting applies to the whole machine, not to an individual project.

Run pinman system port with no number to see every port and whether it is free, in use by Pinman, or taken by another program — that is the quickest way to confirm a clash. Pinman also checks the ports when it starts and names any that are unavailable rather than just failing to come up.

Two things to know: restart Pinman for the new port to take effect, and re-create the firewall rule, which is tied to the old port — pinman system port prints the exact command. To see the current ports at any time, run pinman system port with no number.

For discovery, the API server also advertises itself on the local network via mDNS (_pinman._tcp), which is how the browser UI finds other Pinman machines automatically.