jump to navigation

FullPageOS – Out-Of-The-Box Kiosk mode for the RaspberryPi October 17, 2015

Posted by GuySoft in linux, open source, programming.
Tags: , , , , ,


Hey all,

Today I am announcing a RaspberryPi operating system that addresses a small need we have – Get the RaspberryPi to display a webpage on full screen with no hassle.
The OS is called FullPageOS. And you can download it here.

Why I built it

A friend of mine, Tailor Vijay wanted something to stream video and add titles to it. Also I was looking for a way to start the RaspberryPi with a browser on full screen for a stats screen at work, and apparently the only thing available is complex guides that only partly work on today’s RaspberryPi.

So what I did last weekend is build a distro based off the code of OctoPi, the 3D printer operating system I built. All this distro does is start Chromium at boot on full screen, with a URL of your choice. The url can be changed conveniently from a text file on the /boot FAT folder. So all you have to do is set the wifi and url via text files, boot, and voilร !
Among the minor tweaking is the elusive setting of disabling the screen from blanking.

How to set it up

What’s nice about FullPageOS is that its simple, no need to install packages, just flash it like any distro, set your wifi and URL settings and boot.

  1. Open the FAT filesystem that is mounted as /boot
    on the pi
  2. Set the URL you want in the file fullpageos.txt
  3. If you need to set up wifi, set your wifi settings with the file fullpageos-network.txt or any way you want are used to on the RaspberryPI
  4. Plug to HDMI display, internet and boot

Known issue with black boarders

On some screens I tried FullPageOS I got a black boarder, to fix this, you need to edit config.txt and uncomment the line:


This fixes the issue.

Contribution is appreciated!

FullPageOS works, but its missing the shiny slickness that OctoPi has today. For example if someone wants help me write a nice default boot page that would be great! The current default url is just the github page. So as usual, pull requests are welcome.
The source works just like an OctoPi build, and as a by product I wanted to show how easy it is to create custom distros for the RaspberryPi using this build method. We could, really, build a universal custom distro system based off these things. There is already a variant system that was ported from OctoPi code.

FullPageOS image can be downloaded here


  • Thanks Taior Vijay for inviting me to the Metor hackathon and asking me to set up a webpage in kiosk mode on the Pi.
  • Thank you Doc’s Tech for hosting the image.

Share and enjoy,


1. Jeremy Malcolm - October 19, 2015

Thanks, this would be a good solution for a dedicated Netflix box.

Rick - October 21, 2015

Netflix won’t work on a pi though.

GuySoft - October 21, 2015
2. Justin - November 3, 2015

Handy! We’re trying it out to run a ‘war board’ here in the office to display stats. It would be handy if I could get it to power off/on the monitor/TV on a schedule so it’s not burning away all night! Aside from that, it’s great ๐Ÿ™‚

GuySoft - November 3, 2015

You can try reading about SPMS.
The command you want is:
xset dpms force off
xset dpms force on

Justin - November 24, 2015

Thanks! I ended up updating the firmware of the rpi (sudo rpi-update) and then the “tvservice” command to turn on/off the monitor instead. I did have to use the “chvt” commands to get it to display the full screen site once it came back on though.

We are using a HDMI to DVI adapter.


tvservice -o


sudo tvservice -p && chvt 1 && sudo chvt 7

3. Alberto - November 10, 2015

Great idea!

I’m sure the image doesn’t need to be 1GB though, heck all of ChromeOS fits on 250 MB.

GuySoft - November 10, 2015
4. Riaan Vermeulen - June 30, 2016

Great solution but having some issues. I’m trying to use this in an environment that requires one to access Wifi either using a web login page or using a username and password. The username/password is the preferred option but how can one achieve this in FullpageOS?

GuySoft - June 30, 2016

No way to do this using RaspberryPi that I know. You can try asking on Raspbian

5. Love Aurell - July 29, 2016

Hi, I just tried it out and it works really well. Thanks! Is there any way to hide the tab bar and go pure fullscreen?

GuySoft - July 30, 2016

Yes, please read the documentation on github. You can change the url in /boot/fullpageos.txt

Drew - November 22, 2016

There’s no where in the documentation that shows how to hide the tab bar. Can you either direct me to a link how to do this or just say how to here please.

GuySoft - November 22, 2016

Yes, don’t use FullPageDashboard by setting a different url In /boot/fullpageos.txt.
its in the readme, but I really need help writing more explicit documentation. If you feel like explaining what you did in https://github.com/guysoft/FullPageOS/wiki (just write, ill otgamize it)

6. Jacob Hamman - August 30, 2016

Thanks for this, looks awesome. I really appreciate the feature to boot into fullscreen, but is there still a way to access the terminal so that I can write programs for the GPIO pins?

GuySoft - August 30, 2016

See this issue, I gave 3 different ways to do it:

7. Ivan - September 13, 2016

Hi how do I tweak the refresh rate so it reloads the page every minute

GuySoft - September 13, 2016
8. Steven - October 6, 2016

Hi, this is just great and exactly what i was looking for… One question though… If i change/update the online presentation, what is the refresh rate of the kiosk or how can this be manipulated/forced?

GuySoft - October 6, 2016

Its a feature we just had no time to work on (people contribution is welcome!).
There are sevral work arounds, see: https://github.com/guysoft/FullPageOS/issues/11

9. Martin - November 16, 2016

Is there a way to just use it without wifi?

And also remove the tabs of the page?

And thanks a lot for developing it! ๐Ÿ™‚

GuySoft - November 16, 2016

Yes, thes are both regular behaviors

10. Trab - November 20, 2016

Would this work for web based employment application? I have done all of the hard work that you have put into one simple approach. The problem is access to shortcut keys, etc as the user has to have access to the keyboard to complete the application.

GuySoft - November 20, 2016

You can attach a keyboard to the PI, even aa wireless one ๐Ÿ˜‰

11. Ion Bordian - December 5, 2016

Hello, great software ๐Ÿ˜‰
We’re trying to show some date/time information on our website, but fullpageos displays the utc value of hours; How can we set the time zone from the configuration files?
Thank you very much!

GuySoft - December 5, 2016

Yes, FullpageOS is based on Debian, so you can edit it.
Here is a guide how to do that.
Also you can post issues on the github issue page

12. rui - December 17, 2016

This system is sooooooooo goodddddddd …thanksssssss

13. Akฤฑn Evren ร–zsu - January 8, 2017

Did not worked for me, only black screen and mouse cursor appears ? i am using raspberry B+ and raspberry pi 3.

What could be the reason?

GuySoft - January 8, 2017

1. what version.
2. Please open an issue on the github page https://github.com/guysoft/FullPageOS/issues

14. Roderik - January 30, 2017

Hi Guy,

Love the OS, exactly what I was looking for!

Is there any way to remove the ‘under voltage’ image? It now displays the ‘rainbow image’ from the Raspberry boot screen in the upper right corner.

GuySoft - January 31, 2017

Yes, use more voltage.
(Aka a power supply with at least 2A and a good non-cheap USB cable)

15. YuppieScum - March 20, 2017

Just wondering if this OS can be used for network boot? Does it require any writable storage for itself?

GuySoft - March 20, 2017

I don’t know how to do network boot for a raspberrypi, how do you even do that?

YuppieScum - March 20, 2017

Well, it only works for the 3, and it’s documented here : https://www.raspberrypi.org/documentation/hardware/raspberrypi/bootmodes/net_tutorial.md

My thinking/hoping was a read-only boot image and using local RAMdisk for any needed temp storage, so no need for a microSD in each “client”…

GuySoft - March 20, 2017

If you go though that tutorial it should work, yes

16. mhorn103 - March 30, 2017

This is awesome, thanks for all of your work! I’m having trouble changing the Dashboard, though. plus and delete are not working…

Can you advise on what I’m doing wrong?

mhorn103 - March 30, 2017

Never mind – a reboot fixed that. Next question: is there a possibility to do a split screen dashboard?

GuySoft - March 30, 2017

No, the developer of FullPageDashoard had stopped maintaining the project. Unless someone picks it up those kind of features will not enter the dashboard.

17. Martin - April 3, 2017

Aren’t you the dev GuySoft?

GuySoft - April 3, 2017

No, I am his evil twin ๐Ÿ˜‰
Yes, that is me.

18. Martin - May 5, 2017

sooooo.. you stopped maintaining it?

GuySoft - May 5, 2017

Maintenance is still going at: https://github.com/guysoft/FullPageOS

Its going slow because I also have a day job, and this is volunteer work (with no one else helping). The main effort I have now is merging the code with a new system that would build FullPageOS, OctoPi and new distros.

rui - May 5, 2017

Thank you for all that you have been able to do so far, it has been a tremendous help to many of us,
Whenever you can, your help will always be welcome.
I think I speak for many of us ๐Ÿ™‚

19. Chris - June 8, 2017

Hello GuySoft, thank you so much for working on this. I have a Raspberry 3 and loaded the image and it works if you hard-wire the unit but when I go to Wifi the SSIDs are first shown and then they go away when I try to connect to one. Do you have any recommendations on what I should try so this could be wireless? Thank you!

20. Klaus - September 26, 2017

Hi GuySoft. Thanks for sharing. I just want to mention that we have setup a great looking System Monitoring Dashboard using FullPageOs in less than an hours work. It displays performance graphs for our IT operations using Grafana which eliminates the need for cyclic reload.

21. Vins - December 10, 2017

Iโ€™m french.
how to perform a fullpageos update?
Thank you


GuySoft - December 10, 2017

Hey, like any raapbian distro. You can get more detail on the project github

Vins - December 10, 2017

I’m using your version 0.7 image and I want to upgrade to a more stable version.
thank you

22. TargetCrafter - January 19, 2018

I love the software! I was just wondering if there was a way to have a โ€œscreen saver pageโ€ for when a store touch screen is not in use for a while..


GuySoft - January 20, 2018
23. Joshua Clinard (@echopulse) - January 25, 2018

Hey, I love this idea. I want to use it in our school libraries, to search the book catalog. Works fine, except I canโ€™t get it to display a address or bookmark bar. I edited fullpageos.txt with multiple links, and only first one works.Iโ€™m trying to use it without the dashboard.


GuySoft - January 26, 2018

Remove “–KIOSK“ in this file

24. Joshua Clinard (@echopulse) - January 26, 2018

I don’t see that file on the SD card, when mounted to my PC.

GuySoft - January 26, 2018

The file is located on the ext4 mount. You will not see it using windows.

25. Joshua Clinard (@echopulse) - January 26, 2018

I saw something about using VNC? will that work? Or do I have to mount it using linux?

GuySoft - January 26, 2018

You can ssh to it.
But I really can’t teach you how to access basic Linux commands.

26. Yaroslav - March 5, 2018

Great build !
Thank you very much for the working display driver waveshare and waveshare touch.
My “1024ร—600, 7 inch Capacitive Touch Screen LCD, HDMI interface” works fine.
Installed a lot of additional packages, but Phpmyadmin did not start.
Also, the chromium, in the kiosk mode, does not block the keyboard shortcuts Ctrl + T, Ctrl + N and others.
I solved the problem by installing the application Kiosk from Chrome Web Store.
Added to the script “start_chromium_browser” the line “–app-id = afhcomalholahplbjhnmahkoekoijban” and everything worked.
It would not be bad to add the ability to run custom scripts as it’s done in the diet-pi “ะutostart” option.
You can, if possible, integrate “webmin” directly into the starting assembly, it would be great.


GuySoft - March 5, 2018

Pull requests are welcome. I have no time to implement this.
You could build FullPageOS using diet-pi as a base image, and inherent its functionality.

27. Aaron Gwaltney - July 3, 2018

Great Kiosk!

My only issue is After a couple days the page becomes locked up. Is there a way to auto reboot at a designated time? and can you custom update the splash screen to disable loading information?

Thank you for your work!

GuySoft - July 3, 2018

Reguarding auto reboot:
a. Add a cron script that reboots the Pi.
b. What you should really do is add to /home/pi/scripts/start_chromium_browser the flag –enable-logging –v=1 which would write a log to /home/pi/.config/chromium/chrome_debug.log . There you will find the error that makes your browser crash.

Regarding chancing the splash, there are plenty of guides online how to do this. I would welcome a pull request module for CustomPiOS for this.

28. Brian Duffy - September 4, 2018

Is there any way of navigating the links on the page with a remote control? I have someone with a visual impairment who wants to navigate a Kiosk Iโ€™ve built using FullPageOS and I have pages talking when loading using Responsivevoice within WordPress.

Fantastic OS you built Mr GuySoft

GuySoft - September 4, 2018

Hey, how does he/sge usually navigate with this disability?
Are you using FullPageOS for a project to help people with a disability?

bboy12sBrian Duffy - June 26, 2019

Apologies for not getting back to you. Yes I have deployed approx 30 kiosks using your build across a number of settings โ€“ mostly older people, but some people with visual impairments, learning disabilities are also making use of the kiosks. They are primarily used to provide information about local activities, transport etc

29. nazcanitram - October 13, 2018

Hello! from Chile, I am trying to mount the image in a raspberry pi 3 b + and only appears a rainbow colored image … what can I owe?

GuySoft - October 13, 2018

Please check out the issue tracker at http://github.com/guysoft/FullPageOS/issues . Comments here are not the place to debug issues.

30. Hans - January 20, 2019

Hi, can you help me if I want to add a script to shutdown the Pi by using physical pin on the hardware? Because I want to build the automatic shutdown and startup for the Pi

31. Klaus-Dieter - May 15, 2019

Hello, unfortunately I donโ€™t succeed in installing a ftp server. Proftpd or vsftpd donโ€™t give access to /var/www. Any one any ideas ?

GuySoft - May 15, 2019

If you are using a single-user FTP server on a Pi, you can just use something simple like this: https://github.com/giampaolo/pyftpdlib

32. Robert Bull - October 30, 2019

I am problems with the mouse freezing after an hours running, the scrolling using the Keyboard also stops. This is on a Pi 4 using Buster-lite-0.11.0. Any ideas on what this may be?

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

Connecting to %s

%d bloggers like this: