Software Licenses
The Software Licenses page helps you track and manage concurrent software licenses across your cafe. Many games and applications are licensed per-seat, meaning only a limited number of PCs can run them simultaneously. HandyCafe monitors these limits in real time and prevents overuse.
License Fields
Each license record contains the following information:
| Field | Description |
|---|---|
| Name | Descriptive name for the license (e.g., "CS2 Server License") |
| Provider | The vendor or publisher that issued the license |
| License Key | The license key or serial number for reference |
| Type | Category of the software: game, app, etc. |
| Process Name | The executable process name the system monitors (e.g., cs2.exe) |
| Executable Path | Full path to the application executable on client PCs |
| Quantity | Total number of license seats purchased |
| Simultaneous Users | Maximum number of users allowed to run the application at the same time |
| Check Interval (seconds) | How long to wait for a status check before reclaiming the license |
| Expiration Date | When the license expires, if applicable |
How License Tracking Works
HandyCafe uses a checkout/heartbeat/checkin model to track license usage in real time.
Checkout
When a client PC launches a monitored application, the system records a checkout event. This allocates one seat from the available pool. If all seats for simultaneous users are already in use, the system logs a "limit reached" event and can optionally prevent the application from starting.
Heartbeat
While the application is running, the client periodically sends a heartbeat signal to confirm the license is still actively in use. The interval is determined by the license configuration.
Checkin
When the application closes normally, a checkin event is recorded and the license seat is returned to the available pool.
Automatic Recovery
If a client fails to send a heartbeat within the configured check interval (for example, due to a crash or network interruption), the license is automatically recovered. This prevents "stuck" checkouts from permanently reducing the available pool.
Manual Recovery
Administrators can manually recover a license from a specific client if needed, freeing the seat immediately without waiting for an automatic recovery.
Tracked Events
The following events are recorded for each license:
| Event | Description |
|---|---|
checkout |
A client started using the licensed application |
heartbeat |
The client confirmed the application is still running |
checkin |
The application was closed normally |
automatic_recovery |
The license was automatically recovered after a missed heartbeat |
manual_recovery |
An administrator manually freed the license |
limit_reached |
A client attempted to use the application but all seats were occupied |
Expiration Tracking
Licenses with expiration dates are monitored and alerts are generated as the expiration date approaches. This gives administrators advance notice to renew or replace licenses before they expire and disrupt operations.
Managing Licenses
Creating a License
Add a new license by providing the required fields (name, process name, quantity, simultaneous users). The system immediately begins monitoring for the specified process on all connected clients.
Editing a License
Update any license field as needed. Changes to the simultaneous users limit take effect immediately for new checkouts.
Deleting a License
Remove a license record when it is no longer needed. Active checkouts for the deleted license are released.
Use Case
A common scenario is managing limited game server licenses. For example, if your cafe owns 10 concurrent licenses for a multiplayer game but has 30 PCs, HandyCafe ensures that no more than 10 PCs run the game at the same time. The 11th PC that attempts to launch the game will see a "limit reached" notification and the operator can manage the queue accordingly.