I Installed Omakub Five Times So You Can Do It Just Once
TL;DR Omakub is a tool to turn a fresh installation of Ubuntu 24.04 into a friendly system for developers new to Linux. Install it with: wget -qO- https://omakub.org/install | bash and reap the benefits! Optional directions are included for setting up VNC to connect to a remote desktop in the cloud. Linux and Me I have used Linux for over twenty years. I've run many distributions, including Ubuntu, Debian, Fedora, CentOS, and Arch. There are many reasons why I enjoy Linux such as package management, openness to modification, and philosophy. But this is not about me; it's about you! Linux and You Linux is a great system. Ubuntu is a fantastic distribution to start with because of its ease to install and setup. It's also intuitive and easy to use, especially when coming from Windows or MacOS. It is a free (as in speech) and open-source system that keeps you out of the grips of Microsoft or Apple. In particular, it's great for developers and especially for web development -- since your web app is likely also running on Linux. If you are a Linux aficionado with a highly-prized Arch setup, this tutorial is not for you. This article is intended for developers new to Linux who would like to try it out using a bootstrapped setup to get up and running quickly and decide if Linux is for them. Creating a New Server in Hetzner I don't have a spare computer to install Ubuntu and Omakub on, so I chose to do this in the cloud with Hetzner. To allow for the desktop to be usable, I also setup a VNC server using TigerVNC. You can follow this setup with any cloud provider. Just make sure you are using an image that is Ubuntu 24.04 or higher using x86_64 architecture. Also, make sure you have port 22 open for SSH and port 5901 open for VNC. However, you will likely want to install this on your local computer. If you are installing this on your local machine, install Ubuntu 24.04 and then skip to the Installing Omakub section. Since this was an experiment, I chose a server with a shared CPU, using x86_64. I chose the Ubuntu 24.04 image and the following server specs: 4 VCPU 8 GB RAM 160 GB SSD Additionally, I created an SSH key and added firewall rules to open ports for IPv4 and IPv6 for TCP for ports 22 and 5901. If you are planning to create this in the cloud, you may want to consider using a dedicated VCPU with enough RAM and disk space to support your needs. You may also choose to forward the port for VNC, rather than opening the port in your cloud provider because it is more secure. Note: If you would like to forward the port, you can do so like this: ssh -L 5901:localhost:5901 @ Again, you will likely want to install this on your local machine. If that's what you are doing, skip to the Installing Omakub section. Initial System Setup Connect to the remote server. ssh -i ~/.ssh/ root@ Update packages on the server. apt update && apt upgrade -y Install Gnome and friends on the server. apt install ubuntu-gnome-desktop gnome-session gnome-terminal gnome-tweaks gnome-shell-extensions zsh git curl dbus-x11 -y Why do we have to install all these extra things? The reason for this is that Gnome uses Wayland by default. Unfortunately, TigerVNC only supports X11 so we have to install these packages and add some extra configuration to ensure that Gnome uses X11 instead. Create your new user and add sudo privileges. adduser usermod -aG sudo Installing and Configuring TigerVNC Install TigerVNC on the server. apt install tigervnc-standalone-server tigervnc-xorg-extension tigervnc-viewer -y Switch to your new user. su Set the VNC password. vncpasswd Open the VNC port. sudo ufw allow 5901/tcp Create the VNC server startup file. cd ~ vim ~/.vnc/xstartup Insert the following text into the ~/.vnc/xstartup file. If you are new to Vim, press i, then paste in the following text: #!/bin/sh unset SESSION_MANAGER unset DBUS_SESSION_BUS_ADDRESS export XDG_SESSION_TYPE=x11 export GDK_BACKEND=x11 [ -r $HOME/.Xresources ] && xrdb $HOME/.Xresources export XDG_RUNTIME_DIR="/run/user/$(id -u)" dbus-launch --exit-with-session gnome-session Then press and type :wq. Create a script to start the VNC server. vim ~/start-vnc.sh Insert the following text into the ~/start-vnc.sh file. Again, press i, then paste in the following text: #!/bin/bash sudo mkdir -p /run/user/$UID sudo chown $UID:$UID /run/user/$UID vncserver -localhost no :1 Then press and type :wq. Make both scripts executable. chmod +x ~/.vnc/xstartup chmod +x ~/start-vnc.sh To start the VNC server: cd ~ ./start-vnc.sh Connecting to the VNC Server There are several options for connecting to the VNC server. The one I chose was Jump Desktop since I'm on a Mac. Jump Desktop does cost money. Alternative VNC clients that are free (as in beer) you can use include:

TL;DR
Omakub is a tool to turn a fresh installation of Ubuntu 24.04 into a friendly system for developers new to Linux. Install it with:
wget -qO- https://omakub.org/install | bash
and reap the benefits!
Optional directions are included for setting up VNC to connect to a remote desktop in the cloud.
Linux and Me
I have used Linux for over twenty years. I've run many distributions, including Ubuntu, Debian, Fedora, CentOS, and Arch. There are many reasons why I enjoy Linux such as package management, openness to modification, and philosophy. But this is not about me; it's about you!
Linux and You
Linux is a great system. Ubuntu is a fantastic distribution to start with because of its ease to install and setup. It's also intuitive and easy to use, especially when coming from Windows or MacOS. It is a free (as in speech) and open-source system that keeps you out of the grips of Microsoft or Apple. In particular, it's great for developers and especially for web development -- since your web app is likely also running on Linux.
If you are a Linux aficionado with a highly-prized Arch setup, this tutorial is not for you. This article is intended for developers new to Linux who would like to try it out using a bootstrapped setup to get up and running quickly and decide if Linux is for them.
Creating a New Server in Hetzner
I don't have a spare computer to install Ubuntu and Omakub on, so I chose to do this in the cloud with Hetzner. To allow for the desktop to be usable, I also setup a VNC server using TigerVNC. You can follow this setup with any cloud provider. Just make sure you are using an image that is Ubuntu 24.04 or higher using x86_64 architecture. Also, make sure you have port 22 open for SSH and port 5901 open for VNC.
However, you will likely want to install this on your local computer. If you are installing this on your local machine, install Ubuntu 24.04 and then skip to the Installing Omakub section.
Since this was an experiment, I chose a server with a shared CPU, using x86_64. I chose the Ubuntu 24.04 image and the following server specs:
- 4 VCPU
- 8 GB RAM
- 160 GB SSD
Additionally, I created an SSH key and added firewall rules to open ports for IPv4 and IPv6 for TCP for ports 22 and 5901.
If you are planning to create this in the cloud, you may want to consider using a dedicated VCPU with enough RAM and disk space to support your needs. You may also choose to forward the port for VNC, rather than opening the port in your cloud provider because it is more secure.
Note: If you would like to forward the port, you can do so like this:
ssh -L 5901:localhost:5901 @
Again, you will likely want to install this on your local machine. If that's what you are doing, skip to the Installing Omakub section.
Initial System Setup
Connect to the remote server.
ssh -i ~/.ssh/ root@
Update packages on the server.
apt update && apt upgrade -y
Install Gnome and friends on the server.
apt install ubuntu-gnome-desktop gnome-session gnome-terminal gnome-tweaks gnome-shell-extensions zsh git curl dbus-x11 -y
Why do we have to install all these extra things? The reason for this is that Gnome uses Wayland by default. Unfortunately, TigerVNC only supports X11 so we have to install these packages and add some extra configuration to ensure that Gnome uses X11 instead.
Create your new user and add sudo privileges.
adduser
usermod -aG sudo
Installing and Configuring TigerVNC
Install TigerVNC on the server.
apt install tigervnc-standalone-server tigervnc-xorg-extension tigervnc-viewer -y
Switch to your new user.
su
Set the VNC password.
vncpasswd
Open the VNC port.
sudo ufw allow 5901/tcp
Create the VNC server startup file.
cd ~
vim ~/.vnc/xstartup
Insert the following text into the ~/.vnc/xstartup
file. If you are new to Vim, press i
, then paste in the following text:
#!/bin/sh
unset SESSION_MANAGER
unset DBUS_SESSION_BUS_ADDRESS
export XDG_SESSION_TYPE=x11
export GDK_BACKEND=x11
[ -r $HOME/.Xresources ] && xrdb $HOME/.Xresources
export XDG_RUNTIME_DIR="/run/user/$(id -u)"
dbus-launch --exit-with-session gnome-session
Then press
and type :wq
.
Create a script to start the VNC server.
vim ~/start-vnc.sh
Insert the following text into the ~/start-vnc.sh
file. Again, press i
, then paste in the following text:
#!/bin/bash
sudo mkdir -p /run/user/$UID
sudo chown $UID:$UID /run/user/$UID
vncserver -localhost no :1
Then press
and type :wq
.
Make both scripts executable.
chmod +x ~/.vnc/xstartup
chmod +x ~/start-vnc.sh
To start the VNC server:
cd ~
./start-vnc.sh
Connecting to the VNC Server
There are several options for connecting to the VNC server. The one I chose was Jump Desktop since I'm on a Mac. Jump Desktop does cost money. Alternative VNC clients that are free (as in beer) you can use include:
There are also additional clients for specific operating systems, but these two are available for Windows, MacOS, and Linux.
Connect to your VNC server using this as a target:
vnc://:5901
If you forwarded the port, use this instead:
vnc://localhost:5901
You will be prompted for the VNC password. Enter it and you should be logged into your user.
Installing Omakub
Installing Omakub is easy! Just run this single command:
wget -qO- https://omakub.org/install | bash
If you are very new to Linux, you'll want to run this command in the Terminal application.
The command will prompt you to make some choices for your preferred tools and setup.
And you're done! To see your updated system, you'll have to log out and back in again.
Using the System
The best way to understand to how get started with using Omakub is to watch the video from DHH on the Omakub website. If you prefer a text version, check out The Omakub Manual.
Conclusion
Omakub is an easy way to bootstrap a fresh installation of Ubuntu 24.04. If you want to try out Linux but don't want to waste time setting up tools and configuration to use it quickly and evaluate if it's right for you, I highly suggest trying Omakub.