# How do I create a kiosk in Balena?

**URL:** <https://forums.balena.io/t/how-do-i-create-a-kiosk-in-balena/378029>\
**Category:** Project help\
**Created:** [May 29, 2026, 3:18pm UTC](https://forums.balena.io/t/how-do-i-create-a-kiosk-in-balena/378029 "2026-05-29T15:18:41Z")\
**Posts on this page:** 11\
**Page:** 1

<div class="post-metadata">

**Author:** ![leejenson](https://avatars.discourse-cdn.com/v4/letter/l/58f4c7/32.png) [@leejenson](https://forums.balena.io/u/leejenson)\
**Post date:** [May 29, 2026, 3:18pm UTC](https://forums.balena.io/t/how-do-i-create-a-kiosk-in-balena/378029/1 "2026-05-29T15:18:41Z")

</div>

Hi, I’d like to create x1 Pi kiosk / public display with all the available security settings enabled via Balena. How do I do this?

I have a Raspberry Pi 4.

Thanks Lee

---

<div class="post-metadata">

**Author:** ![mani13jha](https://avatars.discourse-cdn.com/v4/letter/m/c6cbf5/32.png) [@mani13jha](https://forums.balena.io/u/mani13jha)\
**Post date:** [May 29, 2026, 6:00pm UTC](https://forums.balena.io/t/how-do-i-create-a-kiosk-in-balena/378029/2 "2026-05-29T18:00:45Z")

</div>

You can check out the [Balena Browser](https://github.com/balena-io-experimental/browser) project.

---

<div class="post-metadata">

**Author:** ![leejenson](https://avatars.discourse-cdn.com/v4/letter/l/58f4c7/32.png) [@leejenson](https://forums.balena.io/u/leejenson)\
**Post date:** [May 29, 2026, 6:01pm UTC](https://forums.balena.io/t/how-do-i-create-a-kiosk-in-balena/378029/3 "2026-05-29T18:01:21Z")

</div>

Thank you.

🙂

---

<div class="post-metadata">

**Author:** ![leejenson](https://avatars.discourse-cdn.com/v4/letter/l/58f4c7/32.png) [@leejenson](https://forums.balena.io/u/leejenson)\
**Post date:** [June 7, 2026, 2:21pm UTC](https://forums.balena.io/t/how-do-i-create-a-kiosk-in-balena/378029/4 "2026-06-07T14:21:45Z")

</div>

Will this support multiple URLs to display? I only see one URL variable.

---

<div class="post-metadata">

**Author:** ![alanb128](https://sea2.discourse-cdn.com/balena/user_avatar/forums.balena.io/alanb128/32/2839_2.png) [@alanb128](https://forums.balena.io/u/alanb128)\
**Post date:** [June 12, 2026, 6:38pm UTC](https://forums.balena.io/t/how-do-i-create-a-kiosk-in-balena/378029/5 "2026-06-12T18:38:51Z")

</div>

The balena browser block will follow any link in your page that is clicked on if you have a mouse connected or are using a touch screen. You could also manipulate the displayed URL from your own code or application using the API: [GitHub - balena-io-experimental/browser: A drop-in web browser block · GitHub](https://github.com/balena-io-experimental/browser#post-url)

---

<div class="post-metadata">

**Author:** ![leejenson](https://avatars.discourse-cdn.com/v4/letter/l/58f4c7/32.png) [@leejenson](https://forums.balena.io/u/leejenson)\
**Post date:** [June 12, 2026, 7:06pm UTC](https://forums.balena.io/t/how-do-i-create-a-kiosk-in-balena/378029/6 "2026-06-12T19:06:37Z")

</div>

Hi,

I want to rotate 3 URLs. No user interaction. On a large display.

Can Balena do this ? As I’d like to keep Balena as central management as we already have a Pi for other reasons.

I’m not a developer, so I need to avoid too much code if I can.

---

<div class="post-metadata">

**Author:** ![mani13jha](https://avatars.discourse-cdn.com/v4/letter/m/c6cbf5/32.png) [@mani13jha](https://forums.balena.io/u/mani13jha)\
**Post date:** [June 12, 2026, 10:18pm UTC](https://forums.balena.io/t/how-do-i-create-a-kiosk-in-balena/378029/7 "2026-06-12T22:18:24Z")

</div>

Let’s say you have a 3 different html files with it’s corresponding css and js files for example:-

1. page1.html, page1.css, page1.js
2. page2.html, page2.css, page3.js
3. page3.html, page3.css, page3.js

when the browser container opens the provided url it will load page1.html, page1.css, page1.js → inside your page1.js file you can implement a setTimeout() feature of JavaScript. Inside the setTimeout features callback function you can use window.location.href to set the page url of the current tab and given that your RPI is connected to internet this will load your provided function. Something like this  
setTimeout(() =\> {  
window.location.href = “https://www.url\_to\_page2.com/”;  
}, 10000);

This function is inside your page1.js file

setTimeout(() =\> {  
window.location.href = “https://www.url\_to\_page3.com/”;  
}, 10000);

This function is inside your page2.js file

setTimeout(() =\> {  
window.location.href = “https://www.url\_to\_page1.com/”;  
}, 10000);

This function is inside your page3.js file  
Here 10000 is time in milli-second.

---

<div class="post-metadata">

**Author:** ![leejenson](https://avatars.discourse-cdn.com/v4/letter/l/58f4c7/32.png) [@leejenson](https://forums.balena.io/u/leejenson)\
**Post date:** [June 12, 2026, 10:27pm UTC](https://forums.balena.io/t/how-do-i-create-a-kiosk-in-balena/378029/8 "2026-06-12T22:27:49Z")

</div>

That’s great. Can I use my local html files in localhost with this method?

This solves my other display project. Which means I can have all 3 of my Pi’s in Balena and it be easier for updates and maintenance. I’ll do this and update you later.

---

<div class="post-metadata">

**Author:** ![mani13jha](https://avatars.discourse-cdn.com/v4/letter/m/c6cbf5/32.png) [@mani13jha](https://forums.balena.io/u/mani13jha)\
**Post date:** [June 16, 2026, 10:37am UTC](https://forums.balena.io/t/how-do-i-create-a-kiosk-in-balena/378029/9 "2026-06-16T10:37:16Z")

</div>

Yes, you can use your local HTML files in localhost.

---

<div class="post-metadata">

**Author:** ![marketta\_robinson62](https://avatars.discourse-cdn.com/v4/letter/m/eb9ed0/32.png) [@marketta\_robinson62](https://forums.balena.io/u/marketta_robinson62)\
**Post date:** [July 23, 2026, 10:42pm UTC](https://forums.balena.io/t/how-do-i-create-a-kiosk-in-balena/378029/10 "2026-07-23T22:42:59Z")

</div>

Worth checking whether the browser block has security settings baked in, or if you need to handle kiosk lockdown separately. What are you looking to restrict?

---

<div class="post-metadata">

**Author:** ![leejenson](https://avatars.discourse-cdn.com/v4/letter/l/58f4c7/32.png) [@leejenson](https://forums.balena.io/u/leejenson)\
**Post date:** [July 24, 2026, 6:25am UTC](https://forums.balena.io/t/how-do-i-create-a-kiosk-in-balena/378029/11 "2026-07-24T06:25:54Z")

</div>

Thanks for your reply. I was just using the defaults. It’s not a public kiosk, it’s just inside the office. I can be flexible with settings, but I also don’t want to expose it remotely.

What specifically should I check?
