How to set up Profinity as a kiosk application
Configure Profinity to run as a kiosk application that launches in fullscreen mode when the display starts. Two parts are involved: Kiosk Mode in Profinity, which signs the display in automatically as a chosen user, and the browser and operating system setup, which opens Profinity fullscreen. The Kiosk Mode page is the full reference, including how to choose the kiosk user and manage its token.
Before you start, you need:
- Profinity 2.3 installed as a service or in Docker with automatic start enabled, and running, because the browser fails to connect if Profinity is not already running (refer to Running as a Service).
- Administrator access to the system.
- A profile configured and ready to display, and the Modify profiles permission to change its settings. Profiles describes the profile settings, including Kiosk Mode.
- An enabled user to act as the kiosk user, holding only the permissions the display needs (refer to Choosing the Kiosk User).
- A licence that includes the Profinity Server feature, to create that user. Kiosk Mode is available in every edition, but the kiosk user must be a user account, and user accounts are created in Users & Groups, which needs the Profinity Server feature (Server and Enterprise editions). Without it there are no user accounts, so a Desktop installation has no user to select (refer to Licensing).
Configure Kiosk Mode in Profinity
Kiosk Mode is configured per profile, and it authenticates the browser automatically as the configured kiosk user so that no login page is shown.
- Select ADMIN in the side menu, then Profile.
- Select or create the profile to display, and open its profile settings.
- Enable Kiosk Mode.
- Select a Kiosk Mode User from the dropdown. All enabled users are listed, so choose one with minimal permissions.
- Save the profile settings.
- Ensure this profile is the active profile, because Kiosk Mode applies only to the active profile.
Configure the browser for fullscreen display
Start Profinity before the browser
The browser fails to connect if Profinity is not already running, so Profinity must start automatically as a service or in Docker, and the browser must start after it, allowing time for Profinity to finish starting.
The browser's own --kiosk switch provides the fullscreen display, and Profinity does not read query parameters that request fullscreen.
The steps for each operating system follow, and each uses http://localhost:18080, the default Profinity web address.
Windows
The example assumes that Google Chrome is installed.
- Create a desktop shortcut for the browser.
- Right-click the shortcut and select Properties.
-
In Target, add
--kiosk http://localhost:18080, for example: -
Press
Win + R, typeshell:startup, and copy the shortcut to the startup folder that opens.
Linux
-
Create a systemd service with
sudo nano /etc/systemd/system/profinity-kiosk.serviceand add the following unit: -
Enable the service with
sudo systemctl enable profinity-kiosk.service. - Start the service with
sudo systemctl start profinity-kiosk.service.
macOS
- Open Automator and create a new Application.
- Add a Run Shell Script action and enter the script
/Applications/Google\ Chrome.app/Contents/MacOS/Google\ Chrome --kiosk http://localhost:18080. - Save it as an application.
- Open System Settings (System Preferences on older versions of macOS), select Users & Groups, then Login Items, and add the kiosk application.
Hide the side menu
Profinity pages that are rendered from a dashboard accept the noMenu=true query parameter, which hides the side menu so that only the dashboard is shown.
Append it to the address of the dashboard page that the browser opens, as ?noMenu=true after the page path (or &noMenu=true where the address already has a query string).
Profinity does not read query parameters that select a profile, so the profile that is shown is always the active profile.
Lock down the display
The browser's --kiosk switch fills the screen but does not disable operating system shortcuts such as Alt+F4 or Ctrl+Alt+Del.
Lock the system down with the operating system's own facilities, for example Windows Group Policy, hide the taskbar and system tray, and configure the system to restart the browser when it exits (the Linux unit above does this with Restart=always).
Anyone at the display inherits the kiosk user's permissions
Confirm that the kiosk user holds only the permissions the display needs, for example a read-only role built from view permissions only, because anyone at the display inherits them.
A kiosk session expires under the normal token expiry policy, so a display that runs for months without attention can use a kiosk user marked as a service account, as described in Kiosk Mode. A chart that polls for data at a fixed interval is set in the dashboard, as described in Charts.
Test Kiosk Mode
- Restart the system.
- Confirm that Profinity starts automatically.
- Confirm that the browser opens fullscreen, loads the correct profile and signs in automatically without the login page.
Troubleshooting
The browser does not start
A browser that does not open after a restart usually starts before Profinity or before the display is ready. Check the startup order and service dependencies so that the browser starts after Profinity. To run Profinity as a service, refer to Running as a Service.
The login page is shown
A login page that appears instead of the dashboard means Kiosk Mode is off for the active profile, or the kiosk user is missing or disabled. Verify that Kiosk Mode is enabled for the active profile and that a valid kiosk user is selected. Refer to Kiosk Mode for the other causes.
The wrong profile is shown
Kiosk Mode shows the active profile only, so make the intended profile the active profile.
The display or performance is poor
A blank, cropped, or slow display usually comes from the display resolution settings or a dashboard that is too complex for the machine. Check the display configuration and resolution settings, and monitor system resources and simplify the dashboard.