Is it possible to use a browsers as GUI on a headless Ubuntu Server?

what would it cost in terms of dependencies, resources...whatever?

is it even possible to show only a fullscreen window, the max size of a sceen, without close buttons etc... that starts on a specific page (http://localhost) where I already wrote my own control system....

I mean with all those technologies like php, javascript, nodejs, canvas, opengl there is no need for a desktop. Media (mp4, mp3), mail, filemanager, documents (pdf, doc, xls), terminal, images) can all be used with a browser styled with nice modern css3.

Keep in mind it's a server, not a workstation.

There would be no need for GUI applications you never use like games etc.

Also a proper browser would allow automatically to use the gpu on some animations of the gui using css3 3d transforms or opengl.

The basic stuff is already manually edited in the various config files...

A simple php/nodejs script could allow me to handle various difficult commands...

Needing only the browser dependencies.

For example:

I just put a headless Wheezy on my Raspberry Pi which has node on it... and I control everything over http.

The headless Wheezy renders low resource intensive html pages with nodejs, websockets, php, keeping the load very low (30-40mb ram total). Those pages allow me to control the server itself (stats, users), other servers (stats, users, on/off with wol) and render the content inside the browser (documents, images, music, videos). Works great on a remote machine... but if I attach a screen to the 1920x1080 capable device I see a black screen. SO:

Putting a real desktop on it would bring me to the limit easily. using all the resources to run the environment.

Starting a session of ONLY the browser with one of those low resource intensive html pages , the overall system usage would be slightly lower then with a real desktop. Theoretically.

Imagine a PictureFrame with touchscreen, that is able to control other devices, while rendering a nice canvas, opengl, css3 3d user interface with realtime stats. With maybe 30-40%? more horsepower.

And not only would the Raspberry Pi take advantage of this but also all other headless servers that are attached to a color monitor.

  • I've heard a lot of people using chromium.org Chromium browser which supports Full screen view on raspberry pies. I am looking into the same thing actually.
    – Radolino
    Mar 30, 2015 at 12:47
  • i think chromium does not support mp4 mp3?? but chrome & aslo firefox support enough... also chromium would be enough just to have a nice GUI
    – cocco
    Mar 30, 2015 at 12:47
  • Your question doesn't make much sense as it stands - you seem to be asking how to use a browser as a replacement for your desktop/window manager/XWindow ("to show only a fullscreen window,the max size of a sceen", "Needing only the browser dependencies"), which sort-of implies the browser running on the machine, but at the same time you mention a "headless server" and "i control everything over http", which I think means you want to run an HTTP server on your machine and be able to access it via a browser running elsewhere. In other words, "GUI" and "headless" contradict each other :)
    – Sergey
    Apr 1, 2015 at 1:04
  • It's simple, i don't want to install unity desktop nor kde and others, but i also don't want to have a black screen with white text (the terminal). As i already wrote many web applications to remotely control my servers, which also are able to render most of the media & documents , i'm curious if there is a way to skip the desktop envoirment and jump directly to the only app i need. A Browser.
    – cocco
    Apr 1, 2015 at 2:37
  • 2
    You surely misunderstood the concept of headless. There's no way to get GUI programs to run in a headless server. Headless is the lack of a GUI. Feb 21, 2016 at 2:44

5 Answers 5


I get what you are asking. You want a browser based GUI without all the added stuff that a typical Desktop Environment provides; however, since it's still a GUI that you are looking for (you will be attaching a monitor and drawing graphics on it, aka a head) you can't call it headless. Maybe call it a "tiny-head" server ;-)

A desktop environment (such as GNOME, KDE) or any other GUI is composed of multiple pieces, here is a quick overview.

I think what you would need is a display server (such as xorg), and possibly a windows manager. Maybe also a display driver and display manager. However you won't need all the other stuff provided by a DE such as taskbar, file manager, etc. since you will be using your browser applications for that.

Anyway, I just realized this question is over a year old so you might have figured this out already.

  • It wouldn't be a bad idea to add a link to a tutorial on just how to add a display server and window manager.
    – anonymous2
    Jun 27, 2016 at 19:52
  • @anonymous2 it's not that simple. There is a whole list of display servers and windows managers that can be used. I'm not sure which ones would work for the OP since I don't know anything about his system. He also didn't ask for specifics just a general "Is it possible" question. However, if you follow the link in my answer, it provides info and links on how to set the various components.
    – Martin K
    Jun 27, 2016 at 21:19
  • 1
    I want to install only the necessary libraries that a webbrowser like chrome/chromium/firefox in fullscreen/kioskmode needs. the whole server is webbased.The same webgui that is used to access the server remotely should appear on the "tiny-head" webbrowser based GUI.Prolly you need something like X but all i want to render is the browser frame and so maybe avoid to install themes,icons,KDE or other based window scripts or apps like nautilus, other gui based apps... whatever.
    – cocco
    Jun 28, 2016 at 22:37

This is easily solved using ssh tunnels.

Assuming the server already has openssh-server installed:

1.) install http proxy application on the headless server - squid works well

    sudo apt-get install squid -y

2.) from your GUI computer connect to your headless server using the ssh -CNT2gL command like this: (3128 is the port number that squid or the http-proxy is running on the headless server)

    ssh -CNT2gL 8080:localhost:3128 username@headless-server -p 22

3.) Now port 8080 on your computer is listening to port 3128 on your headless server.

4.) configure your browser to use localhost:8080 as a proxy server. Now using your web-browser you should be able to connect to any port listening for http/https running on the headless server using the address

    http://localhost:<port number>

obviously substitute "port number" with the actual # of the port


Webmin would provide you with a reasonably full set of management options through a web browser to manage a linux server. If it is a web server hosting multiple sites, you may also want to consider virtualmin for it or if you have multiple non-admin users usermin may be additionally beneficial.


I'd typically recommend away from those tools because they go in and edit text config files and can generally make manually working with the configs more cumbersome. I prefer the CLI, but it does have its place. I'd simply say if you are going that direction stick to one or the other. Mixing can be painful. I haven't used these tools in many years so it could be that they are better about keeping things clean.

Strictly speaking this isn't a GUI, but more of a specialized web-based text editor. Since all this stuff is done in a text world, I don't think you should require special opengl type stuff to do that and therefore your dependencies are basically just running a web server.

  • Read the question again pls. I want to use a browser like firefox or chrome as a Grafic user interface over unity,gnome,kde,xfce,lxde. I'm not asking about web administration tools. "i already wrote my own control system...." <- already exists. 6th line in the question.
    – cocco
    Mar 31, 2015 at 19:31

If the point isn't to manage the server, but to have a computing environment, you may want to look at various "personal cloud" softwares. Here are some options. They vary dramatically in terms of features and capabilities. They typically have mobile features built in to share files and act as a dropbox like service, but some also have custom applications you can run so you can have a mail client, browser, etc.

  • Same as your other answer... has nothing to do with what i am asking.
    – cocco
    Mar 31, 2015 at 19:32

I don't think you understand the concept of headless. Headless systems cannot have a GUI and therefore, no you cannot have a GUI browser on a headless system. Although headless systems CAN have a Text UI as it is just text. If you are looking for a browser that is just a Text UI I would recommend Lynx (sudo apt-get install lynx)

Not the answer you're looking for? Browse other questions tagged or ask your own question.