Ubuntu: A browser as GUI on a headless server


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... (php,javascript,nodejs,canvas,opengl) there is no need for a desktop.

(Media(mp4,mp3),mail,filemanager,documents(pdf,doc,xls),terminal,images).all possible with a browser styled with nice modern css3.

keep in mind it's a server... not a workstation..

there would be no need for alot of different gui's you never use... like all the 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.)

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

btw also a simple php/nodejs script could allow me to handle various difficult commands...

Needing only the browser dependencies.


I just put a headless wheezy on my reaspberry pi wich has node on it... and i control everything over http.


looks like the question is not clear

I just put a headless wheezy on my reaspberry pi wich 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-40m 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 at the limit easely.using all the resources to run the envoirement.

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 the raspberry PI would take advantage of this but also all other headless servers that are attached to a color monitor.


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.


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.


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.


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)

Note:If u also have question or solution just comment us below or mail us on toontricks1994@gmail.com
Next Post »