Skip to content

VIOSO Cloud

The VIOSO Cloud is the account-side service an Exaplay machine connects to. Pairing a machine once is what turns on every remote capability: alert delivery, health monitoring, remote access, and the shared media library.

There is exactly one connection per machine, and everything rides on it. There are no per-feature logins, no webhook URLs and no recipient lists on the machine itself — Exaplay authenticates once and the Cloud decides who is told what.

Naming: the UI calls it VIOSO Cloud ("Open Cloud Profile"). Configuration keys, log lines and the API paths call the same thing platform (platform.connection_state, platform.control_enabled, …). Cloud and Platform are the same system in Exaplay 3; Exaplay Cloud is narrower — it is the media library that lives inside it.

What one pairing unlocks

CapabilityWhat it doesOwned by
Sentinel alertsDelivers engine.down / engine.crashloop to your Cloud account, which notifies the people you nominatedWatchdog service
Heartbeat monitoringA periodic liveness + telemetry signal, so a machine that goes dark is noticed even when it cannot send an alertWatchdog service
Remote accessAn Open button on the Cloud that tunnels to this machine's local web UIWatchdog service
Exaplay CloudA shared media library you can browse, upload to and download from on the machineWatchdog service

All four are carried by exaplay3-service.exe, the watchdog service — deliberately, because it is the component still running when the engine has crashed. The engine (exaplay3.exe) stays focused on playback.

Pairing a machine

Pairing is a device-code login: the machine never asks for your password. It shows a short code, you confirm it in a browser where you are already signed in, and the Cloud hands back a token bound to that one machine.

  1. Click the account icon (👤) at the top-right of the window, left of the burger menu.
  2. Enter a Site name — the label that identifies this installation on the Cloud and in every alert (e.g. Main Lobby — Acme HQ). This is required; there is no default, because "which machine is this?" is the one thing an alert cannot guess.
  3. Click Connect with VIOSO Platform. A browser window opens for you to confirm the link. If it does not appear, copy the code shown in the dialog and enter it on the Cloud yourself.
  4. Once the badge reads Connected, click Send test alert to prove the whole path works — while you are still on site.

Under the hood: Exaplay asks the Cloud to start a pairing, receives a user code plus a verification link, then polls until you confirm (or until the request is denied or expires). On success the Cloud returns an instance id, a bearer token, the API base URL to use, and optionally a control-channel endpoint.

The token is stored DPAPI-encrypted and machine-scoped at %ProgramData%\VIOSO\Exaplay\Platform\credential.json.dpapi. It never appears in a log — only a redacted suffix does — and it cannot be copied to another machine and reused.

Once connected

Clicking the account icon opens a menu:

  • The status line links to this machine's own page on the Cloud.
  • Open Cloud Profile — your account overview, where all your installations live.
  • Connection details — the read-only view of instance id, site and endpoint.
  • Log out — unpairs this machine. The credential is deleted, heartbeats stop, and alerts stop being delivered.

Unpairing is the only thing that stops the heartbeat. It is not affected by the Sentinel master switch (see Sentinel → Configuration).

Monitoring & the heartbeat

Once paired, the watchdog service sends a heartbeat every 5 minutes (plus a random 0–30 s spread, so a fleet of machines does not all report on the same tick). It carries whether the engine is running, crash counts, uptimes, machine load, and — when the engine is alive and writing — the show name, project path, FPS and GPU usage.

Remote access

The service keeps a persistent outbound WebSocket to the Cloud. The machine always dials out — the Cloud never connects in, and no port has to be opened or forwarded for it — which is what makes remote access work from behind NAT and ordinary firewalls. (Exaplay's own web UI still listens on the LAN as usual; that is unrelated to the Cloud link.)

The Cloud uses that channel to push commands — chiefly open this machine's web UI, which starts a short-lived tunnel to the local interface. The machine advertises which local UIs exist (the Exaplay UI on port 8123 by default, and the service UI on 8124), and the Cloud renders one Open button per entry. Ports are read from this machine's own configuration, so a non-default port is handled automatically.

Remote access can be turned off on its own with platform.control_enabled — the pairing, the heartbeat and alert delivery are unaffected.

Exaplay Cloud (media library)

Exaplay Cloud is the shared media library inside your Cloud account. On the machine it appears as a location in the Filebrowser, labelled Exaplay Cloud, showing the library contents whether or not the files are present locally.

Each asset is in one of four states:

StatusMeaning
online_onlyListed and browsable, with a thumbnail, but the media is not on this machine
downloadingTransfer in progress; downloads are resumable and integrity-checked
downloadedPresent locally and ready to play
failedThe transfer did not complete — retry it

What that gives you in practice: a machine can show the whole library while holding only the media it actually needs. Keep only online releases an asset's local copy but keeps the thumbnail, so it stays browsable and can be fetched again later. Deleting an asset in the Cloud removes the local copy on the next sync, so machines do not silently accumulate media that was retired centrally.

Syncing is both scheduled and pushed: a change in the Cloud (asset added, updated, index changed) is pushed over the control channel and triggers a sync within seconds, while a periodic sync (default every 5 minutes, adjustable 60–3600 s) plus a full filesystem reconcile once every 24 hours catches anything a missed push would have lost.

All network and disk work happens in the watchdog service. The engine only reads the index the service writes and renders it — so a large download cannot stall playback.

Uploading works the other way round: drop files onto the Exaplay Cloud location in the Filebrowser and they are uploaded to the library. This requires an active pairing, like everything else on this page.

What leaves the machine

Worth knowing before pairing a machine on a customer network:

  • All connections are outbound. Nothing listens for the Cloud; no inbound port is opened or forwarded.
  • Alerts carry the event id, severity, a human-readable message, the timestamp, and a device block (instance id, site label, host name, version). No project content and no media.
  • Heartbeats carry the liveness and load figures listed above, plus the show name and project path when the engine is running. Paths are file names, not file contents.
  • Media moves only through Exaplay Cloud, and only for the library you configured — never as a side effect of alerting or monitoring.

Troubleshooting

SymptomCause / fix
Badge stays on PairingThe browser confirmation was not completed, or the code expired. Close the dialog and start again
Badge turns RevokedThe instance was unpaired or deactivated on the Cloud side. Pair the machine again
Connected, but no alerts arriveSentinel's own master switch is off, or the event is disabled. See Sentinel → Setting Up Alerts — the Send test alert button is the fastest check
Alerts arrive late, in a burstNormal after an outage: alerts are queued on disk and flushed on reconnect. The envelope timestamp is when the event happened, not when it was delivered
Machine reported offline after every rebootThe Cloud's offline threshold is tighter than this machine's boot time. Raise it
Cloud media stays online_onlycloud.auto_sync is off — assets download on request. Turn it on to mirror automatically

See also

Exaplay 3 User Documentation