Home > Ubuntu, Ubuntu Server > The server GUI dilemma

The server GUI dilemma

Among the many comments on my last article there were calls for a graphical administration interface, i.e. providing by default a desktop environment on the server (like Microsoft or Redhat do) or some web-based admin application. This is an often required feature, and so far we stood firm on the desktop environment part, and did not really invest in integrating a specific web-based admin tool by default.

The reason behind this is that we think the command-line interface is great. We want everyone to use it. CLI is good for you: it allows easier reproduction (I can remember snapshotting every tab of Windows GUI tools to document the changes necessary on a Windows server), it allows scripting. SSH and screen are great. That’s the way things should be done. Most of all, it allows to keep the server stack focused on what it has to do (serve) rather than spending resources running a desktop environment. That’s key to performance and security, and fits well in a growing virtual machines world.

Why do people want admin GUIs ? I hope it’s not to open Firefox on the server console. I guess it’s not to have multiple windows. To get notifications without having to check the logs for events ? That makes sense, but we can still address that in the CLI, as evidenced by Dustin Kirkland’s work on screen-profiles. Status dashboards ? I agree with that. Colorful graphical reports do indeed convey better information than a text-only report. But I think what people are really after is an easier learning curve.

The learning curve for Ubuntu Server is quite steep. Even if most packages come with sane defaults, setting them up usually requires reading a good HOWTO, if you can find one. And for customizing what the server will really do, in most cases our Server Guide won’t go deep enough in the subject, while the upstream documentation might go too much in details.

I think the missing link is discoverability. GUI admin tools allow to play around with the interface and discover what it can do. And it’s true that it’s quite easy to setup Microsoft SQL Server by just exploring the GUI, right clicking on some node items on its admin interface. But it’s also true that when this interface will show its limits those same users will probably have to call Microsoft consultants for help.

Our challenge here is to provide discoverability while not shielding away the users from the CLI tools. Have an easier learning curve while still teaching the user the right way. How can it be done ? For example by providing a task-oriented CLI tool that will show you what you should have executed in the CLI to get the same result. Next time, type this directly. To automate that, just put that line in a script. That’s what SMIT did in AIX. Trying to educate the user while providing an accessible admin tool.

You might reply that you don’t really care, you don’t want to learn stuff, you just want an appliance with limited predetermined choices on a web interface that “just works”. I see value in that, and I wouldn’t prevent such interfaces from running on top of Ubuntu Server. But making it the default, primary way of administering Ubuntu Server ? No. I prefer the server platform to empower our users, rather than limiting their options.

Categories: Ubuntu, Ubuntu Server
  1. March 27, 2009 at 10:52

    good point you have.

    I have to agree not to make GUI as default interface for Ubuntu Server.

    Ubuntu Server need simplicity yet powerful UI which CLI already gave us.

  2. Pepijn
    March 27, 2009 at 10:54

    I agree with this article. I recently installed CentOS in a VM and was amazed at what was possible by using just the GUI. However, once I figured out the possibilities I quickly switched to CLI to do the same things without having to run the graphical bloat.

    Having a CLI based tool to setup (for example) VM’s and other servers like ftp, email, firewall, etc might be a great benefit to Ubuntu Server. Currently setting up a good working server is very daunting for new users.

    An idea: if a tool could install the default config for a server, and then walk through the settings with added explanation what they do (and maybe change config lines which relate to the one you are changing at that moment to make sure it all stays working) it would be a great benefit to server administration imho. Something like the text-based Ubuntu installer for example, or what dpkg-reconfigure sometimes shows for certain packages.

    My 2 cents worth 🙂

  3. Alecs Jonson
    March 27, 2009 at 11:24

    First, yes i am MCSE and i’m used to graphical interface. So i do belong to spieces of “homo graphicus administratiolis” 🙂

    Well as an example, look at Exchange 2007 and Windows Server 2008, both rely on being administered by GUI. But, as you go deeper into them and if you want to do something special, you have to move onto their powershell.

    Basically, it is nice to have graphical interface for basic standard settings for your server, especially when you are setting up some internal LAN servers which do not need to be tightened as ones located on internet.

    And, yes, i do belong to these “move your right wrist and click with your fingers” lazy admins 🙂


  4. Adam
    March 27, 2009 at 11:28

    I like the sound of this tool, I don’t think it should run on the server though, it should be a helper app which accesses the server via ssh. That would also allow for easy management of multiple machines simultaneously. Perhaps have an option to run it on the same machine but discourage it by default.

  5. Thomas
    March 27, 2009 at 11:31

    > I think the missing link is discoverability.

    Absolutely. Recoverability is the key to GUIs – otherwise we would still be working with 2400 bps text terminals :-). In a GUI, everything is linked (or should be), and you can explore the options bit by bit. You also have instant feedback whether the options make sense – whereas finding the syntax error for a config file can be a bit difficult.

  6. Stoffe
    March 27, 2009 at 11:45

    Well, duh. 🙂 The point was NOT to make it deafult. Not even running GUIs (or Firefox) on the server. But rather, to make hooks for external tools, and the tools themselves. No reason to run them on the server. No reason the external tools can’t update 10 (identical) machines simultaneously either.

    But there is no need for the big defense speech for CLI, the GUIs should and would be a great addon, that’s how everybody wants it.

  7. March 27, 2009 at 12:25

    Those are good and valid points for CLI.

    But by that logic (security, usability, speed) we’d still be running WordPerfect by default then have the choice to run a GUI word processor. I have no problem with those who still use WordPerfect…

    I don’t think anyone has a problem with putting emphasis on efficient, easy, discoverable CLI interfaces, however the way you put it I feel deep resistance against even welcoming any graphical tools.

    And let’s face it, missing documentation goes way up in my list. Discoverability starts with good documentation, which historically goes last in many projects priorities list. I can also understand when you’re a sysadmin the extra time required to clean up your notes and properly put them out there as documentation is not always something time permits.

    Perhaps making Ubuntu docs a bit more “social” will help, and on the server side of things I already see some push for new community resources. As a relatively newcomer to server “stuff” I hope I can bring my inexperience and wall-face-planting experience 🙂

  8. Ross Peoples
    March 27, 2009 at 12:57

    I’m going to toss in my two cents:

    A Desktop Environment (Gnome, KDE, Xfce) is meant to be used in the way the name describes….on the desktop. However, web-based GUI tools do not bring the same bloat. They only tie up resources when they are being used. KDE and Gnome, on the other hand, tie up resources even when the GUI isn’t being used…that’s why they are called Desktop environments, not Server environments.

    So, I would really like to see a default web-based GUI that is easy to turn off (for the hard-core CLI users). Using eBox, for example, I was able to set a firewall/gateway/http proxy with all of the company’s requirements in minutes. Yes, I could have done the same thing with the CLI, but time is money.

    Another point I would like to make is that not all admins are *nix gurus. Ubuntu is making a strong push into the server market and Windows admins hate linux servers because they don’t want to spend a lifetime learning the CLI. This is especially true when they want to make a small change (add user, change firewall port forwarding, etc).

    Windows admins would know what they are looking for and if they had a GUI, they could easily find it and make that change. When they use the CLI, they have to go out to the internet, Google it, hope it works for the current version of Ubuntu, try it, screw it up, post a thread to the forum about what’s going on, get a short “RTFM” or “Google it” answer (regardless of the Ubuntu CoC, this happens all too often), get pissed off that linux sucks so hard (in their eyes at this point) and everyone on the forums is a jerk, because all they wanted to do was make one small change.

    I have seen this happen SO MANY TIMES it’s not even funny. Admins get scared off by the CLI when all they wanted was to make a small change to the server. Then, they have a horrible taste in their mouths about linux for the next 5 years and they actually PREFER to deal with the crashes and problems with Windows servers rather than go through the whole CLI mess with linux, even knowing that linux is a better server.

  9. Al
    March 27, 2009 at 12:58

    Linux world needs to understand that for everyday administrative tasks, GUI are really usefull… Not everyone can/have time to understand the .conf files of a LDAP server…

    Use FreeNX by default ! GUI are runs client side but not on the server. This is the best solution.


  10. March 27, 2009 at 13:37

    @Fabian Rodriguez: WordPerfect is a GUI word processor!

  11. March 27, 2009 at 14:19

    Hey, I agree with almost everything you said in this article.

    But I still disagree in two points:
    1- You don’t need to provide a GUI by default… but I don’t see even an option. Today, if I decide to install a GUI, I have to connect the server to Internet, which is safeless and gives me too much work.
    2- You, people who just don’t want GUI on servers, always talk about system resources. You shouldn’t forget about simple servers for small companies and even for home users (why not?). These resources can be not too much comparing to the time spent with small fixes.

    I have to say I’m not a IT professional, but some times I have to deal with some IT tasks. I don’t need to be an expert in IT issues, I can call a professional when the work is too hard for me, but a server with a GUI could help me very much.

    You don’t need to teach anybody (not this way). You don’t have to force people learn. People will learn if they need/want to learn. I see this issue from the opposite point of view. GUI can help people to search and find features. Of course it has limits, but for most tasks it is enough. When a good professional reach the GUI limits, he still can use command line. Actually, he still can use command line, even before touch the GUI. I see no reason to give not the option (at least).

    P.S. Sorry, I didn’t read all comments before mine.

  12. Tom Mann
    March 27, 2009 at 14:50

    I have to add to this… There’s two ways this could be done.

    1) Create a TUI… a textual user interface that links with screen and gives full management @ the console

    2) Open a remote port and offer remote configuration. (SSH?)

    Ubuntu Server should will be best if it stays without GUI, but that’s not to say there shouldn’t be GUI tools for it 🙂

  13. Tom Mann
    March 27, 2009 at 14:50

    Sorry – forgot to subscribe to responses 🙂

  14. m.gruys
    March 27, 2009 at 14:59

    @Flimm: not the 5.1 DOS version:

  15. Martin
    March 27, 2009 at 15:01

    I don’t think there’s really a place for a desktop environment on a server – many servers are not physically accessible anyway, and this would add considerable bloat.

    However I am a fan of administrative web frontends, and use them for many things on my servers – such as CUPS, apcupsd (UPS monitoring). SWAT is a good frontend for Samba, and I’m sure there are many other examples. It would be really nice if such a thing existed for Ubuntu Server as a whole.

  16. March 27, 2009 at 15:10

    @Flimm: It didn’t used to be!

    @Al: “Not everyone can/have time to understand the .conf files of a LDAP server”

    “I think I’ll use LDAP.” Now you have two problems. LDAP, with it’s wierd IDs for everything is a pain to set up anyway (yes, I’ve set up a couple LDAP servers in my day). GUIs can help, but there is such a steep learning curve for LDAP anyway, I’m not sure that’s a good example. 🙂 Apache is a tool that lends itself well to a GUI config: well documented options, very sequential, easy to break into sections (Documents, Location, Virtual Server, etc).

  17. fmo
    March 27, 2009 at 15:36

    I think that keeping the server GUI free is a great idea, having it as lean as possible leave less surface for an exploit.


    Having GUI admin tool to manage the servers remotely is I believe a must have. That way you could just have GUI admin tool running of an Ubuntu Desktop, I truly believe that it would help with the adoption as it would make seem look easier to your average admin.

  18. Michael Fletcher
    March 27, 2009 at 15:45

    I 100% agree that the problem with CLI’s is they cannot be discovered or introspected.

    I think a gui overtop of a powerful configuration management tool like puppet would be awesome!

  19. jimcooncat
    March 27, 2009 at 16:56

    I’d like a GUI console with training wheels for my desktop, and ssh/screen into the servers. The console would help me look up commands with their arguments, and suggest things I might try.

    It would be nice to easily access man pages (nicely formatted by Yelp) in a way that doesn’t overlap the console I’m entering commands on.

    A little command builder application would be welcome, too. Tab-completion on steroids.

  20. oatworm
    March 27, 2009 at 17:15

    I use Ubuntu on my laptop. It works great. I love it. However, when it came time to set up a web server at work, I didn’t use Ubuntu Server – instead, I used OpenSuSE. Why? One word: YaST. Even in a purely text-driven environment, which is what my server is presently running on, it has a nice ncurses-based front end that allows me to search through various options so I can figure out what I need to do without much effort.

    It’s absolutely true that CLIs are great for repetitive tasks. Where CLIs tend to fail is for those one-off tasks that you don’t have muscle memory for. If you’re setting up 100 identical Apache boxes, sure, grep and cat and awk your way to victory. If you’re only setting one up every two or three years, though, now what? Do you even remember where the configuration files are kept? Do you know what files override the base configuration files and what the order of precedence is? Do you know all of the options available to you? Probably not – you just don’t have the muscle memory for it. This is where GUIs come in handy – you have a nice, intuitive interface that lets the computer remember everything for you, instead of you having to remember everything yourself. Samba setups would be another great example where the bevy of command-line options can absolutely hurt you if you don’t deal with them very often.

    Now, as for default “GUIs”, I could see an ncurses-based UI that’s similar to YaST and a more robust web-based admin console that can be turned on as part of the installation process as suitable compromises to the whole CLI-vs.-GUI issue. Alternatively, Xfce is light enough where it probably won’t use much in the way of resources. Another alternative might be to have a third branch (Ubuntu “Small Business Server”?) that’s more server-oriented than the Desktop release but is a little more approachable than the Server release. Indeed, repurposing XUbuntu for this might not be a bad idea – technically, except for a few kernel tweaks, Ubuntu Desktop Edition can be used as a multipurpose Linux-based server just as well as an actual Ubuntu Server Edition system. It’s not like Windows where you have the XP/Vista/etc. 10 connection limit or anything like that.

  21. Maki
    March 27, 2009 at 20:16

    Gui’s suck for servers, IMHO an nice web interface would be far more better than an GUI

  22. March 28, 2009 at 07:46

    Note to the LDAP scared people:

    Since 8.10 (iirc) Ubuntu ships LDAP with configuration stored in LDAP tree. When combined with Apache Directory Studio (http://directory.apache.org/studio/) you get an easy to use environment for configuring LDAP and managing the actual data.

  23. March 28, 2009 at 09:25

    I agree that a server doesn’t need a gui, but I think a unified management tool would help administrators that are new to Ubuntu.

    Novell has YAST which works at console or gui, and a new admin can do a fair amount on his system quite easily. Granted, if its a complex configuration, you will need to fall back to the cli.

    With all the MCSE’s around, Ubuntu needs to make it easier for them as administrators to run an Ubuntu webserver, dhcp or mysql database server – I believe a ‘YAST’ like took would help with this.

  24. carl
    March 29, 2009 at 09:12

    I think there is a tendency for more novice users setting up home servers and that we will se this more in the future. The reasons for this is storing the family’s media files and documents so that they are accessible by all computers in the home and specifically by the mediaplayers connected to the TV’s. Also the more thin client-like computers by the likes of Asus makes me believe this is the way it will go. Computers are more of a personal gadget rather than a family one nowadays.

    So to make Ubuntu Server a viable option (instead of WHS) there needs to be a GUI – atleast as an option during the install. Perhaps a XFCE-based one on the server (which after basic configuration can be removed) and a webbased one to maintain it when it is running. I have seen a lot of How-to’s that use Ubuntu desktop to setup a home server because it’s easier.

    Of course I could be wrong, but I still believe it we want Ubuntu to be Linux for humans Ubuntu Server also needs to be more human-friendly and specifically novice-friendly.

    • Ian
      December 11, 2009 at 14:05

      Reply to carl

      Absolutely correct! When I wanted a Home Server I looked to Linux, having read (so MANY times) how easy, user-friendly, powerful, wonderful, etc, etc, Linux is.

      I duly downloaded Ubuntu Server, installed…and that was The End for me. I went down the tried-and-tested route, and purchased Windows Home Server – which has been an absolute pleasure to work with ever since.

      Ubuntu is supposedly “Linux for Humans”, but Ubuntu Server fails miserably on this count. Microsoft got it absolutely right when they talked about Total Cost of Ownership. Linux is just too expensive!

      Some people argue here that I simply *have to* learn the CLI. Well…er…No! A simple Cost-Benefit analysis leaves me in no doubt whatsoever that Microsoft has nothing to fear from Linux.

  25. nnonix
    March 29, 2009 at 18:36

    I hate to say it, but those arguing for a GUI just have more to learn. It’s a sharp and sometimes painful learning curve but once complete you’ll find yourself dropping to a terminal to do things on your workstations. Ultimately it’s easier, quicker and more reliable.

    Second, asking Ubuntu Server to provide a GUI is simply invalid. Until the creators of Server Applications start including GUIs for their software, there is no point in having a GUI for Ubuntu Server.

  26. March 30, 2009 at 04:54

    I agree that server must be built as thin as possible. I don’t like the idea of having megs of RAM just for GUI. But, I think the web interface is a good idea for remote administration and my fellow friends do enjoy using it. OpenSUSE have a CLI menu-based administration that resemble its GUI part, you might want to explore that.

    As for myself, as long as /usr/share/doc have decent examples on the subject, it does great job.

  27. hax
    April 2, 2009 at 10:58

    I agree the CLI should remain the default for server. The curve can be steep, but, if you persevere you will understand a lot more about what’s going on with your box. I also agree that this empowers admins, and if empowering means you install X and GUI tools then go for it.

  28. April 23, 2009 at 19:26

    @Alecs Jonson: “homo graphicus administratiolis” … brilliant!

    Ignoring the fact that the more software/apps on the server == more security vectors, anyone could simply install a web-based front end like eBox (as mentioned by Ross), or, as in my case, Webmin.

    Of course, I find Webmin very cumbersome & timeconsuming compared to CLI, but it’s a great tool as a fallback.

    @ Márcio Vinícius Pinheiro: prehaps if you read all the comments prior to posting, you would have seen Ross’s noted exisiting Ubuntu-included solution.

    @ oatworm: Very eloquent, but I’m looking for a lean & mean distro, not a “freeware” version of MS Small Business Server.

    IMHO, those proposing server GUIs are simply afraid to give up hand-holding & bad habits.

    ps/ I’ve been using GNU/Linux since Oct-2008, Ubuntu for less than 5 months.

  29. Scaine
    April 23, 2009 at 19:57

    I can’t believe that no-one has mentioned webmin yet on an article like this. I set up a Squid proxy a couple of days ago using a stock Ubuntu server image and all I had to do was install webmin (using wget, then dpkg -i), and then click on the “Squid” server and ask webmin to install it for me. Then I used the webmin Squid module to configure the ACLs and proxy restrictions and I was done.

    Sure, there isn’t a module for every piece of server software you might install (could use one for LikeWise Open for example), but it’s a massive boon to the admin who’s asked to do something new and do it quickly.

  30. Ross Peoples
    April 24, 2009 at 12:32

    The problem with Webmin is that Ubuntu recommends against using it. Don’t believe me? Walk into a Ubuntu IRC room and mention the word “webmin” and you’ll get hit by bot after bot telling you not to use it and to use something like eBox instead.

    At first I thought they were just smug about using eBox until I realized that the problem I was having at the time was being caused by Webmin. One morning, my PostgreSQL server refused to start and could find no log or error telling me why. I scoured Google and that’s when I went into the IRC room and was told to remove webmin. So I uninstalled Webmin and magically it started working again. Just for giggles, I re-installed Webmin, rebooted the machine and again, PostgreSQL refused to start.

    Supposedly, there are quite a few of those weird issues that plague the webmin + ubuntu combination. Personally, I like webmin and wish they could make it play nicely with Ubuntu. Webmin can simply handle MUCH more than eBox. The upside of it was that I figured out how to use the eBox templates to my advantage so that I could include features that eBox didn’t already have and it turns out that eBox is pretty cool once you figure out the templates.

  31. May 11, 2009 at 16:40

    @Ross Peoples

    Could you post the version #’s of Server, Webmin & PostgreSQL? Prehaps you could e-mail me a list of your installed packages (“dpgk -l > server_installed_packages.txt” IIRC).

    I’d like to try replicating the issue in a VM. Have your reported this to Webmin?

  32. Ross Peoples
    May 11, 2009 at 16:50

    I’ve tried to report it to Ubuntu, Webmin, and PostgreSQL. They all tell me that I’m crazy. I have since rebuilt one of the machines that was giving me the problem, however, the other is a production machine, so it’s got a bunch of stuff on it (eBox, LAMP, OpenFire, PostgreSQL) and I guess I should mention that it’s the Hardy version of all the packages.

    I have the “server_installed_packages.txt” file, but it’s 526 lines, so I put it up on pastbin: http://pastebin.com/f21441d2b

  33. Jeema
    July 16, 2009 at 15:07

    In my opinion, CLIs do not offer enough flagrant loss of usability for marginal security/performance concerns. For that reason it’s imperative that we get rid of these newfangled ‘monitors’ and ‘keyboards’ and only use punch cards, switches, and flashing lights. Obviously, that’s the only real solution for a truly secure system. Now if you’ll excuse me I have a call from 1975 that I have to take…

  34. July 19, 2009 at 21:08

    Good post.

    I agree that an optional GUI or web interface for server admin would be desirable, especially for home users and those who set up small business systems now and then, as well as begining sysad pros, including those converting to linux.

    I have just been trying to get FTP w/SSL TLS working with proftpd. The docs on the web that come to hand first are for old versions of Ubuntu and following the instructions for 8.10 leads to errors with 9.04, but the alternative — reading and digesting the docs for proftpd is not something most home server users are EVER going to do. I am simply not interested in such an overwhelming tome. I know what I want and I was able to do it on Windows using Xlight FTP server (free for personal use) in minutes using a GUI.

    I’ve used webmin (which doesn’t help at all in this case) and I think it badly needs 2 or 3 levels of interface simplification.

    Secure remote access to a home server isn’t something weird. (SSH is not appropriate for the people I want to give secure FTP access to.)

    How hard should this be?

    When Ubuntu works it’s terrific but when I find myself Googling for information that gui would offer and I still can’t get things working because of version differences, out of date procedures etc. it really does get old quickly. Most people will not have the time or patience for this.

    Belatedly I found this: http://doc.ubuntu.com/ubuntu/serverguide/C/ftp-server.html and will probably change FTP server just because I can’t spend any more time on this.

    • The Doctor
      September 8, 2009 at 04:44

      Well, hate to mention this after you’ve fought thru the steps to an FTP service running *but* perhaps it’ll help someone else:

      Just use SFTP.

      Apart of the OpenSSH suite, any modern FTP client software (WS_FTP, FireFTP, CuteFTP, etc.) have the capability to login to SSH servers. If you have an SSH server enabled, you’re set.

      Just setup “username” & some space for “/home/username” (man adduser) (also look into the “quota” package… you don’t want your users to eat up all of your /home partition!).

      You can even get more creative when giving your client machines “ExpanDrive”

  35. July 20, 2009 at 08:25

    OK, in this case it was my fault (blush!), and I may stick with proftpd but who has not struggled when trying to install apps with docs for an earlier linux release? That may seem a separate issue but I believe a gui could constrain some of the opportunities to get configurations wrong.

  36. July 20, 2009 at 15:36

    clarification: this was my fault because I found reports that this did NOT work as advertised.

  37. newbie
    February 6, 2010 at 19:19

    Server GUI?
    Well, you see!
    Ebox http://www.ebox-platform.com/
    I think that is very legitimate, such a solution. addition, the CLI

  38. April 4, 2010 at 14:07

    The advantage of a GUI is not just i9n the direct control of a server, but also in the ancillary tools that a gui makes available. Things like text modern editors, compare vi with gedit, think about editing of config files like postfix main or master, amavisd-new.
    The problem with things like ebox, is that they are aimed at installations with hundreds of users, where the home users is looking at tens and the small business is looking at scores (probable max of 50).
    the extra load of the GUI is probably more than offset by not running a SQL server, when not really needed.

  1. June 8, 2009 at 18:28
  2. July 21, 2009 at 16:42

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 )

Google+ photo

You are commenting using your Google+ 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