Going Headless

03 Feb, 2023

What is headless? According to Wikipedia:

A headless computer is a computer system or device that has been configured to operate without a monitor (the missing "head"), keyboard, and mouse. A headless system is typically controlled over a network connection, although some headless system devices require a serial connection to be made over RS-232 for administration of the device. Headless operation of a server is typically employed to reduce operating costs.

I was recently using a linux desktop for a file server and was using a free service for remote access. This remote software couldn't connect and needed to turn off wayland and restart the machine or the gdm3 service then it would work. So the remote connection worked great, but the site didn't have a monitor and just wanted to leave the server in a corner.

I looked for a linux driver just to trick the machine that there was a monitor connected. This did not work either, and then I found dummy display adapters. These have quite a few other users too, but found something similar to this HDMI Dummy Plug.

These dummy displays are available for all monitor connections. They have just enough of a device that the motherboard thinks there is a display and then can continue to boot or render graphics the way it should normally. Since this was a way to cut costs and store a machine away in a corner it can take up less resources and power.

When I started with Docker to build my minetest and Nextcloud servers, the machine I was using needed a monitor to configure it which was fine. Once the configuration was done, I no longer needed a monitor but would like to remote into the machine.

Currently my remote access tool of choice is RustDesk and works on all my systems the way I like and able connect. There is no support for wayland yet, so I had to disable wayland following these steps

sudo gedit /etc/gdm3/custom.conf

Find the line that talks about uncommenting the line to force the login to use Xorg. Line starting with # are comments.

# Change the following from


# To the following

Now we need to restart our display manager, and log back in.

sudo systemctl restart gdm3

After these steps I could then use RustDesk to connect and work on my new server while away from home and keep it in the corner. I do something similar with VirtualBox, as you can start a VM in Headless mode as well. This allows a VM to start with out the main window as the display and if you need to let your VM run in the background, you don't need the window open all the time then for the VM to be powered on.

For VirtualBox, I made a simple batch file to start my VM in a headless state upon startup of the host machine

@echo off
cd "c:\Program Files\Oracle\VirtualBox"
VBoxManage.exe startvm "Ubuntu" --type headless

Getting more of my selfhost / homelab setup and going. This was a simple solution for what could be a complicated issue and hardware too.

I'm publishing this as part of 100 Days To Offload. You can join in yourself by visiting 100DaysToOffload.com.

Tags: selfhost, linux, windows, 100DaysToOffload


If there are replies, they will show below.

Found an issue? Edit on Github

← Back home