If you're used to a UI-based workflow, being suddenly confronted with a VPS server's black screen filled with commands can be intimidating. Of course, we do recommend that you stick it out – you'll soon realize that the command line isn't just useful in hacker movies.

However, there are some tasks where using a GUI just makes sense (good luck editing images in the command line, for example). We're going to show you how to install a GUI on your Ubuntu VPS so that you can get back to familiar functioning.

A note on BitLaunch server options

Before we start with the guide, it's worth mentioning that BitLaunch already offers servers that come with a pre-installed GUI. You'll see the option displayed as "Ubuntu Desktop" when you launch a server in your control panel.

This is ideal if you have not made much progress on your server yet, as you won't be able to upgrade existing servers from a non-GUI plan to a GUI one.

How to install a GUI on an Ubuntu server

The first thing to understand before starting on this journey is that servers aren't typically bundled with a GUI for a reason. GUIs require a lot more processing power to perform the same tasks as a command line, and they can introduce new routes for the security of your server to be compromised (you can't click a phishing link if you can't see it).

If you decide to go down this route anyway, make sure you have a server that is at the very least 2GB/2CPU, preferably 4 or higher. The resources you need will vary quite a bit depending on the choice of GUI and the resolution you are running at.

Getting started

Before we do anything else, it's a good idea to update your packages. This will ensure you get the latest, most stable version of the desktop environment you choose to install. To do so, run:

sudo apt update && sudo apt upgrade

It may take a couple of minutes for the process to complete.

With that done, you will want to decide which GUI to install. Some choices include:

  • GNOME: used by default in Ubuntu desktop. Stable and pretty with a lot of features, but is more resource intensive than the other options here.
  • KDE Plasma: Simple, lightweight, easy to use, and visually appealing, with a high degree of customization.
  • MATE: Very lightweight and time-tested, with a Windows-like design.
  • Xfce: Perhaps even more lightweight than MATE, though it's graphics tend to be less flashy, it is a great choice for VPS servers where that does not matter as much.

Installing GNOME on an Ubuntu Server

Installing GNOME on an Ubuntu server is very easy - we can just install Ubuntu desktop:

sudo apt install ubuntu-desktop

This process will take a little while and may require you to provide user input occasionally. Once it finishes, however, you'll have everything you need and can continue to the next section.

Installing KDE Plasma on Ubuntu Server

You can install KDE Plasma through the command line in much the same way as  GNOME:

sudo apt install kde-plasma-desktop

You can continue to display manager setup once the process is complete.

Installing MATE on Ubuntu Server

The command to install MATE on your Ubuntu desktop server is:

sudo apt install ubuntu-mate-core -y

Installing Xfce on Ubuntu Server

You have two choices when it comes to installing Xfce - the base install and Xubuntu. Xbuntu contains additional packages and customizations to make Xfce more rich, but may come with a small hit to performance and will use more storgae space.

To install just Xfce, run:

sudo apt install xfce4 slim -y

Or, to install Xubuntu, use:

sudo apt install xubuntu-core -y

Choosing your display manager

Display managers, as you might expect, manage the graphics of a desktop environment. There are various choices, with some better suited to certain desktops than others, as well as having feature and performance differences.

The best and most lightweight options are SliM, followed by LightDM. Choose either and install them with one of these commands:

sudo apt install slim -y
sudo apt install lightdm -y

If you already have a display manager installed, such as the less performant SSDM, you'll get the option to choose which one you want as your default.

Using your GUI with xRDP

You may have noticed after installing your GUI and display manager that nothing has changed. While technically you can allow x11 forwarding via SSH and access the GUIs of your applications that way, in our opinion the best way to get a full desktop experience is via Microsoft's RDP protocol.  While you can use VNC and have a good experience, RDP offers better security at the time of writing due to the maximum VNC password length of 8 characters.

You can install xrdp using:

sudo apt install xrdp

You'll may also need to add the xrdp user to the ssl-cert group so that xrdp can access the keyfile in /etc/ssl/private.

sudo adduser xrdp ssl-cert

After doing so, restart xrdp with sudo systemctl restart xrdp.

Firewall configuration

If you're running a firewall (which we highly recommend), you'll need to allow RDP traffic through it by opening the RDP port. This can be performed on an IP/IP range level or on a global level. The latter is not a good idea for security reasons, so we instead recommend you run the command:

sudo ufw allow from your.ip.address to any port 3389

Or, even better, only allow xRDP to communicate via localhost and set up an SSH tunnel.

Connecting to your server via xRDP

Now all that's left is to connect to your server and use your shiny new GUI. To do so, open an RDP client on your local PC (Remote Desktop Connection on Windows or Remmina on Linux ) and enter your server's IP address.

You will be asked to provide your credentials, after which point you should be able to see your desktop and use it as you would any other.