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.
- The browser and operating system setup, which opens Profinity fullscreen.
Kiosk Mode 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. The browser fails to connect if Profinity is not already running (refer to Run Profinity 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 Kiosk Mode).
- A licence that includes the Profinity Server licensed feature, to create that user. Kiosk Mode is available in every edition, but the kiosk user must be a user account, and Users & Groups creates user accounts only with that feature. For a Windows desktop installation without a Server licence, refer to Choosing the kiosk user. Licensing lists the features of each edition.
Configure Kiosk Mode in Profinity
Kiosk Mode is configured per profile. It authenticates the browser automatically as the configured kiosk user, so 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. The list shows all enabled users, and anyone at the display acts as the user you choose, so choose a dedicated user with minimal permissions.
- Save the profile settings.
- Make this profile 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. Profinity must start automatically as a service or in Docker, and the browser must start after it, with 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 use 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, and typeshell:startup. The startup folder opens. - Copy the shortcut to the startup folder.
Linux
-
Create a systemd service with
sudo nano /etc/systemd/system/profinity-kiosk.service, and add this 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.
- Add the kiosk application.
Hide the side menu
Profinity pages that a dashboard renders 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.
Add ?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 it always shows 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 in this guide does this with Restart=always.
A kiosk session expires under the normal token expiry policy, and Kiosk Mode describes how a display that runs unattended for months avoids this.
Test Kiosk Mode
- Restart the system.
- Confirm that Profinity starts automatically.
- Confirm that the browser opens fullscreen and loads the correct profile.
- Confirm that the browser 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 Run Profinity as a service.
If the login page is shown, or the display shows the wrong profile, refer to Kiosk Mode.
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. Monitor system resources, and simplify the dashboard.