HandyCafe Docs
owner it-admin

Client Updates

Client PCs get new HandyCafe versions from your own server over the local network. They never download updates from the internet themselves. Most of the time this happens on its own. When you need to install a specific build on one or more computers, you can push the package by hand from the Computers page.

On Windows, a background service installs the update and keeps the client running. It also brings the client back if a customer closes or kills it.


Automatic Updates

The server checks the HandyCafe update catalog every five minutes. It also checks when the HandyCafe cloud announces a new release. The catalog it reads matches the server's own release channel: a beta server follows beta releases and a stable server follows stable releases.

When a newer client version is published:

  1. A connected computer reports its client version to the server as part of its regular status updates.
  2. If that computer has no session running and its version is older than the published one, the server downloads the package for that computer's operating system. The download happens once and is cached on the server.
  3. The server offers the update to the computer. The computer downloads the package from the server over the local network and checks its SHA-256 checksum.
  4. The client installs the update and restarts itself.

A computer with a session running is never offered an update. The client also refuses an offer if a session has started in the meantime. The update waits until the computer is free again.

Each computer is offered a given version at most once every five minutes. A computer that missed the offer receives it again on a later check.

To see the newest published client version, open Settings, then About. The Client row under Version shows the latest published version. It reads Catalog unavailable when the server cannot reach the update catalog.


Pushing an Update by Hand

Use a manual update to install a specific package that you have on disk. The server verifies the package and shows you what it found before anything is sent.

Where to find it

On the Computers page:

  • One computer. Click the computer card to open its details panel. Under Remote Actions, press Update client.
  • Several computers. Select them, then press Update client in the command bar under the filter toolbar. The button is available only when every selected computer is connected.
  • The same Update client command is also in the computer card's action menu.

Accepted packages

Platform Package
Windows The setup installer (.exe). A matching .sig signature file must sit next to it.
Linux .AppImage
macOS .app.tar.gz

.msi, .deb and .dmg files are not accepted. The client cannot install them silently.

The package can be up to 500 MB.

Windows installs a signed package only. Put the signature file with the same name plus .sig in the same folder as the installer. For example, HandyCafe Client_5.1.0_x64-setup.exe.sig goes next to HandyCafe Client_5.1.0_x64-setup.exe. Without it, sending is blocked before any computer starts downloading.

What the confirmation screen shows

After you pick a file, the server reads and hashes it. The Client update dialog then shows:

Field Meaning
File name The package you picked.
Checksum (SHA-256) The fingerprint of the package. The computer checks the download against it.
Version Read from the file name. Shown as unknown when the name carries no version, which is normal for macOS packages.
Size The package size.
Installed version The client version currently on the computer (single computer).

For several computers, a table lists each Computer, its Installed version and its State:

State Meaning
Ready Will receive the update.
Already up to date Will receive the package. It is not newer than what is installed.
In session Skipped. A session is running on this computer.
Offline Skipped. The computer is not connected.
Runs (platform) Skipped. The package is for a different operating system.

Computers that will be skipped are listed first. A summary shows how many computers will be updated and how many are skipped.

A package that does not suit some computers does not block the others. In a cafe with Windows and Linux computers, a Windows package simply skips the Linux ones.

Step by step

  1. On the Computers page, open the details panel of the computer or select several computers.
  2. Press Update client.
  3. Pick the package file. Cancel the file picker to stop without sending anything.
  4. Wait for Verifying the package to finish.
  5. Check the file name, version and target list.
  6. Press Send update for one computer. For several computers the button reads Send to followed by the number of computers.

The server checks every target again at the moment of sending. A computer where a session started after the confirmation screen appeared is skipped.

After sending, a message confirms how many computers received the update. Each computer downloads and installs the package, then restarts itself.


The Windows Updater Service

On Windows, the client installs a service named HandyCafe Client Updater. It runs as SYSTEM and starts automatically with Windows.

The service has two jobs.

Installing updates

The client downloads and checks the package. It then hands the installer to the service and closes. The service checks the release signature before it installs anything. It rejects an unsigned or wrongly signed package. After the installation it starts the new client.

Keeping the client running

While a user is signed in to Windows, the service checks about once a second that the client is running. If the client is gone, the service starts it again in the signed-in user's own session with that user's normal rights. A customer with a standard Windows account cannot stop a SYSTEM service. Closing both the client and its watchdog at once therefore does not leave the computer unlocked.

A client that crashes right after it starts is not restarted in a tight loop. A client that dies within 15 seconds of starting counts as a failed start. The wait before the next attempt grows with each failed start in a row: 1, 2, 5, 10 and then 30 seconds. A run that stays up for 30 seconds resets the count.

The service does not restart the client after an authorised exit:

  • An admin exit on the client
  • Exit Client sent from the server
  • Uninstalling the client

In those cases the client tells the service to stand down before it closes. Supervision resumes when the client is started again. It also resumes at the next Windows sign-in. If the client is still running 10 seconds after such a request, the exit is treated as cancelled and supervision resumes. This covers an uninstall that was cancelled at the Windows permission prompt, for example.

While an update is being installed, the service leaves stopping and starting the client to the update process.


Permissions

Pushing an update by hand needs the File transfer permission. Set it in Settings, then Staff, then Roles & Permissions. See Cashier Roles.

Automatic updates need no permission. They run in the background whenever the server is running.


Troubleshooting and Notes

A computer never updates automatically. Automatic offers go only to connected computers without a session. A computer that is always in use receives the update the next time it is free. Check that the server can reach the update catalog under Settings, then About.

"Windows installs a signed package only." The .sig file is missing or empty. Copy the signature file that came with the installer into the same folder, then pick the installer again.

"This package is built for ... and this computer runs ...". The package is for a different operating system. Pick the matching package.

"This computer has a session on it." Updates are sent only while the computer is waiting at the lock screen. End the session first. You can also send the update later.

"The version in this package is not newer than the one installed." This is a warning, not a block. Sending it reinstalls the same or an older build.

"None of these computers can take this package right now." Every selected computer is offline, in session or on another platform.

The client keeps coming back after I close it on a Windows computer. This is the updater service doing its job. Use the admin exit on the client or Exit Client from the server. Both are treated as authorised and the service stands down.