Headless machines refer to computers or servers that operate without a graphical user interface (GUI) or a monitor attached to them. These machines are typically managed remotely through command-line interfaces, web-based control panels, or specialized software applications.

I always like setting up all my machines as a headless machines and remote into them via ssh or VNC.

If you’re connecting to a Mac which is setup as a headless machine, the resolution is not great. Use a HDMI dummy plug (such as this) to force the Mac to think it is connected to a display.

Picking a Distro

The main question is, which linux distro do you choose? There are so many of them. Just searching for “minimal linux distro” gives you tons of options.

I went with Ubuntu Server. It gives me the flexibility of making the server minimal or bulky depending on my needs. I’ve used Ubuntu, almost all packages support Ubuntu, and I like the aptitude package manager.

How to install

  • Pick a USB which is at least 4GB
  • Download the server from ubuntu downloads
  • Download Etcher which is used to flash the OS image into the USB
  • Flash Ubuntu Server image into the USB.

Now you have a live ubuntu server USB. For the first time setup, you will need to connect the machine to a monitor (only for setup), ethernet cable (wifi is not detected correctly for Mac hardware), wired keyboard.

  • Plug in the live USB and boot into it (depending on the hardware it would be pressing different keys on the keyboard. For a Mac with intel chip, press and hold the Option (Alt) key on the keyboard when the machine starts)
  • Go through the installation process (make sure you setup and enable SSH server)

Now you can keep the machine anywhere with a wired connection, and ssh into it to manage!