KioskForge v0.26 Change Log

KioskForge Changes

This document presents the important changes made to each KioskForge release from v0.18 and onwards:

Version 0.26 (2025.11.25)

  1. Fixed bad links to the GitHub repository in the documentation.
  2. Disabled shipping the built executable to my personal web server as we now distribute via GitHub's Releases feature.

Version 0.25 (2025.11.18)

  1. KioskForge now also supports Ubuntu Server 24.04.3 for Raspberry Pis.
  2. A new option, visible, was added that specifies whether or not the kiosk is discoverable by KioskForge itself.
  3. Fixed the broken PipeWire audio subsystem initialization, which was broken by an Ubuntu (kernel?) update.
  4. Renamed the KioskForge apply command to prepare as it really prepares an installation medium for use.
  5. The user's password is now hashed (made unreadable) by KioskForge on the installation medium for security reasons.
  6. The user_name kiosk configuration field has been removed as KioskForge now creates two users: kiosk and shell. The kiosk user is used to launch and run the kiosk. It is not possible to log in via SSH as that user. The shell user is intended for SSH logins to the kiosk, in case you need to inspect or modify the kiosk after it has been deployed.
  7. Upgraded development and embedded Python to v3.13.7.

Version 0.24 (2025.07.16)

  1. Fixed the issue that KioskForge.py crashed if an unknown option was encountered (even if it was known in an earlier version).
  2. Renamed the user_options option to chromium_autoplay to make life simpler for everybody. It enables autoplay in Chromium without user interaction such as clicking the Play button.
  3. KioskForge.py's verify and upgrade commands now takes a file OR a folder. If a folder, all .kiosk files in it are verified or upgraded (recursively). The command will stop on the first failed file encountered.
  4. Upgraded development and embedded Python to v3.13.5.
  5. Updated the documentation to reflect the fact that Tkinter is not going to be used as a GUI for KioskForge. Instead, I'll try out Flet, a Flutter-based UI toolkit for Python, as I am not very fond of Tkinter (after battling it).
  6. Updated the documentation in general, to reflect recent changes, etc.
  7. Added two new links to the Windows Start menu: License and Read me.
  8. Changed the project to use the uv Python package manager instead of pip.
  9. Changed the project to work in a virtual environment instead of installing dependencies globally.

Version 0.23 (2025.07.09)

  1. The very serious snap VFS corruption issue (in long-running kiosks) has now, hopefully, been fixed (I could not recreate the issue despite having both a Pi4B and a Pi5 trying to recreate it for two days, upgrading and rebooting thousand of times).
  2. Fixed an issue with wrong casing of wifi_country values by forcing the value to be written in uppercase only (us => US).
  3. Fixed the issue that KioskUpdate.py did not update Linux kernels as it should. Everything should now be upgraded correctly.
  4. Fixed the issue that the Common Unix Printing System (CUPS) was reinstalled whenever Chromium was upgraded.
  5. KioskForge now waits for at most one minute to provide time to insert the installation medium.
  6. The KioskForge Setup program now creates a Start menu group, which contains links to the various documentation files and to a template kiosk file that can be opened by right-clicking it and selecting Edit, then Save as, when you want to save.
  7. There is intentionally no link to the program as you're supposed to run it by double-clicking a .kiosk file or from the command-line (using CMD.EXE). A TUI version is being worked on, but this is a fairly low priority feature.
  8. If you have an old link to the KioskForge.exe program in your Start menu, you can simply uninstall and reinstall KioskForge, this should remove the stale link. If not, you can delete the link manually (by right-clicking it and selecting Delete).
  9. The kiosk startup process now show even less text (by creating ~/.hushlogin). Thus, SSHing into the kiosk will show nothing.
  10. README.html has been renamed to Manual.html, this only affects those who actually dug out the file from the app folder.
  11. GUIDE.html has been renamed to Guide.html, this only affects those who actually dug out the file from the app folder.
  12. The bug report script KioskZipper.py has been renamed to KioskReport.py.
  13. KioskReport.py now generates a list of system units, and their statuses, for the case that one or more systemd units fail.
  14. The kiosk-disable-wifi-power-saving.sh is no longer generated by the forge process and has been removed. The new script KioskConfig.py now handles the task of setting up the audio system (if enabled) and disabling Wi-Fi power saving if wifi_boost is True. This fixes the issue that Wi-Fi power saving was only disabled during the boot that forged the kiosk, not during subsequent boots.
  15. The KioskSetup.py script now takes an optional one-based step number, rather than the previous zero-based step number.
  16. The kiosk no longer displays its LAN IP address on every boot (only during the first boot while the kiosk is being forged). This is a small security precaution to avoid that kiosk users learn its LAN IP address. Kiosks should be on their own LAN.

Version 0.22 (2025.06.25)

  1. The option user_options has been added. This allows the user to specify additional options to Google Chrome. The most interesting option to add to Chrome is --autoplay-policy=no-user-gesture-required, which allows starting a video automatically when a given web page is loaded (normally this requires user-interaction before the video can play). This is for making single video VideoLooper style kiosks on Pi5, something which VideoLooper does not yet support.
  2. Various internal changes of no importance to the end-user.

Version 0.21 (2025.05.15)

  1. The daily upgrade process has been enhanced significantly as snap likes to keep many large files around forever. These files are now removed on a daily basis, if the kiosk has internet access, so that they don't grow to 5-10 gigabytes in size.
  2. The daily kiosk upgrade process is now a bit more graceful as Chromium is stopped before the upgrade process starts.
  3. This release contains many small internal changes due to a major code cleanup, which should not affect the product in any way.

Version 0.20 (2025.05.05)

  1. A new option, wifi_country, was added because Wi-Fi 5G networks mostly worked, but not always. This option is used to specify the host country that the kiosk is placed in. It is a two-letter abbreviation ("us" = the US, "dk" = Denmark", etc.).
  2. A new option, wifi_hidden, was added because Linux likes to know this beforehand, so that it can scan quickly or more slowly, depending on whether or not the Wi-Fi network is visible or not.
  3. A problem was fixed in KioskForge verify Example.kiosk because it did not report missing options, which basically meant that KioskForge verify accepted kiosks that were invalid as they lacked one or more fields aka options.
  4. Various cosmetic changes.

Version 0.19 (2025.05.03)

  1. A new option, upgrade_post, which can be either reboot or poweroff, has been added. This option controls what the kiosk does when it has successfully performed maintenance: reboot or poweroff.
  2. KioskForge.exe now supports four "subcommands". They are: apply, create, upgrade, and verify. These commands are currently only usable when invoking KioskForge from the command-line so users who launch it by double-clicking a kiosk file in Windows Explorer do not need to worry about the new subcommands (double-clicking a kiosk file amounts to apply). The features offered by the new subcommands will eventually make their way to the work-in-progress GUI version of KioskForge.
  3. KioskForge.exe now also reports missing options when loading a kiosk. This is particularly important when loading a kiosk file created in an earlier version of KioskForge. All errors need to be corrected before the kiosk can be applied and then forged.
  4. The help embedded in each kiosk file has been greatly expanded and hopefully made significantly better.
  5. The README.html file has been expanded with the chapter Synopsis and also revised a number of times.
  6. The host name on the kiosk is now set before the forge process begins to avoid making a mess of the system log.

Version 0.18 (2025.04.28)

  1. Initial support for the Raspberry Pi 5 has been added. Sound support on the Pi 5 has not been tested yet, though.
  2. The KioskForge setup program now includes a change log of changes made to KioskForge, which can be shown by the installer.
  3. The built-in editor and menu has been removed: KioskForge can now only be used to prepare a kiosk installation medium.
  4. A new file type, KioskForge Kiosk, has been added to the Windows Explorer New menu. Use this to create a new kiosk.
  5. The cleaning of logs on the target kiosk machine now actually works (a lowercase 'm' was changed to an uppercase ditto).
  6. The cpu_boost option is now honored properly. Previously, all kiosks were created as if cpu_boost was always disabled.
  7. KioskForge now reports all detected issues and exits gracefully if you open an invalid .kiosk file in the program.
  8. The HTML documentation in C:\Program Files\KioskForge is now much prettier than before.
  9. Added detection of, but not support for, Ubuntu Desktop and Server 25.04 so that KioskForge gracefully fails on these.