Free and open source

Kiosk

Turn a Linux computer into a TV player for one web address, such as a Signage Player URL. It starts on power-up, fills the screen, recovers on its own, and needs no keyboard or mouse once it's set up.

Features

  • One command to install

    Paste one line and answer a few questions. Press Enter to keep what's shown; a mistyped answer is simply asked again. Run it again later to change a setting.

  • Starts on power-up

    Turn the computer on and the address fills the screen, with no desktop, login, first-run screens, "Restore pages?" bubbles or update nags.

  • Recovers on its own

    If the browser closes, it's back within seconds. At start-up it waits for the address to answer, and a nightly restart keeps it fresh.

  • Plays offline with Signage

    The browser's storage survives restarts, so a Signage TV that's turned on with no network still plays its slides, even on an http:// test server.

  • Screen off at night

    Turn the screen off and on at set times each day, which sends most TVs and monitors to sleep. Rotate the picture for portrait screens, or set the resolution.

  • Keeps itself up to date

    Automatic security updates where the distribution has them, a daily browser update from Flathub, and sudo kiosk update for Kiosk itself.

  • Any hardware

    An Intel or AMD mini PC, an old desktop or laptop, or a Raspberry Pi 5. Kiosk uses the distribution's own drivers and isn't tied to any device.

  • Managed by Rock (optional)

    With the Kiosk Manager plugin for Rock RMS (coming soon), see every kiosk's health in Rock, change what it shows, and restart or reboot it. Rock never connects to the kiosk; the kiosk asks Rock each minute.

  • Free and open

    MIT licensed. Every line is on GitHub, and sudo kiosk uninstall removes everything it added.

Install

  1. Install a Linux distribution

    Any of those under What you need. The server or "lite" edition is best; Kiosk turns off a desktop's login screen if there is one.

  2. Connect it to the network, log in and run

    curl -fsSL https://worksinallthings.com/kiosk/install.sh | bash

    It asks for your password (with sudo). No curl? Use wget -qO- https://worksinallthings.com/kiosk/install.sh | bash. You can read the script first.

  3. Answer the questions

    The address to show (paste the Player URL), the time zone, the screen rotation, when to turn the screen off and on (optional) and when to restart each night (3:30 am unless you change it).

  4. Restart

    From then on the computer shows the address whenever it's turned on.

Without questions

Pass the answers, for example to set up many kiosks the same way:

curl -fsSL https://worksinallthings.com/kiosk/install.sh | bash -s -- --url https://rock.example.org/signage/tv/AbCdE --timezone central --yes --reboot

What you need

Any 64-bit computer that runs Linux. NVIDIA graphics work, but videos are decoded by the processor, so pair them with a fast one. Some Wi-Fi cards need the distribution's non-free firmware.

Hardware
MinimumBetter
Processor64-bit Intel/AMD, or a Raspberry Pi 4 or 5Intel N100 or newer, or a Raspberry Pi 5
Memory4 GB8 GB
Storage16 GB (32 GB if the browser comes from Flathub)64 GB SSD
GraphicsIntel, AMD or Raspberry PiIntel (smooth video with very little CPU)
Distributions and browsers
DistributionBrowser
Debian 12 or 13Debian's Chromium
Raspberry Pi OS Lite (64-bit)Raspberry Pi's Chromium
Ubuntu 24.04 LTS or later, and Ubuntu-based ones (Linux Mint, Pop!_OS…)Chromium from Flathub on Ubuntu; the distribution's Chromium on Mint
Fedora 41 or laterChromium from Flathub
Arch Linux, and Arch-based onesArch's Chromium
openSUSE Tumbleweed or LeapChromium from Flathub

It needs systemd and the apt, dnf, pacman or zypper package manager, so it doesn't run on image-based systems (Fedora Silverblue, SteamOS, Ubuntu Core) or on Alpine, Void or Gentoo. Tested on Ubuntu 26.04; the others are being tested.

Commands

To use these on a running kiosk, plug in a keyboard and press Ctrl+Alt+F2 for a login prompt (Ctrl+Alt+F1 goes back), or connect over SSH if you've set it up.

Settings are kept in /etc/kiosk/kiosk.conf. Running the installer again changes them and keeps anything you don't change.

Uninstall

sudo kiosk uninstall removes Kiosk's files, settings, timers and the kiosk user, and turns the console login (and any desktop login screen) back on. Packages it installed, such as cage and Chromium, are left in place.

Kiosk commands
kiosk statusShow what the kiosk is doing
sudo kiosk url <address>Show a different address
sudo kiosk rotate 90Turn the picture for portrait (0, 90, 180 or 270)
sudo kiosk resolution 1920x1080Set the resolution (auto for the screen's own best)
sudo kiosk screen offTurn the screen off (or on) now
sudo kiosk screen schedule 22:00 06:00Turn the screen off and on at these times each day
sudo kiosk restart-time 03:30Restart the computer each night (or off)
sudo kiosk restartRestart the browser
sudo kiosk logsShow recent messages
sudo kiosk updateUpdate Kiosk to the latest release
sudo kiosk uninstallRemove Kiosk

Troubleshooting

The screen is black

Run kiosk status and sudo kiosk logs, and check the address opens in a normal browser.

Black bars, or a blurry or slow picture

The screen's resolution isn't 16:9, or is higher than the computer needs. Run sudo kiosk resolution 1920x1080 (auto goes back). This also suits 4K TVs on small computers, and virtual machines such as Proxmox. For Signage, the display group's Fill the Screen setting fills the screen instead, trimming the edges.

How do I change the Wi-Fi?

Use the distribution's own tool, such as sudo nmtui where NetworkManager is installed, or sudo raspi-config on a Raspberry Pi. Kiosk leaves the network settings alone.

There's no sound

Sound goes to the HDMI output the system picks. Check the TV's volume and input. Videos play with sound without a click.

The install stopped with an error

The end of /var/log/kiosk-install.log is shown; the whole log has more. Running the installer again is safe.

Does it run Rock check-in?

No. Kiosk shows one web address, such as a Signage Player URL or a Parent Page number board. It isn't a check-in kiosk and has nothing to do with Rock's check-in devices.

Questions or problems?

Kiosk is free, so help is best-effort. Report a problem on GitHub with the output of kiosk status, your distribution and computer, or email us.