Back to Blog
Linux

Omakub: DHH's Linux Setup for Developers — What It Is and How to Use It

Vajo Lukic
June 20, 2026
6 min read
Omakub: DHH's Linux Setup for Developers — What It Is and How to Use It

David Heinemeier Hansson's Omakub turns a fresh Ubuntu install into a fully configured developer workstation with a single command. It's fast, opinionated, and increasingly popular among developers switching to Linux.

This post explains exactly what Omakub is, what it installs, how to customise it, and when it makes sense to use it.

What Is Omakub?

Omakub (short for Opinionated Makefile for Ubuntu) is DHH's curated setup script for Ubuntu. One curl-pipe-bash command later, your machine has the tools, themes, and workflows that DHH uses at 37signals.

Install command:

wget -qO- https://omakub.org/install | bash

That script pulls down and runs a set of Ansible playbooks that handle the entire installation — no manual package hunting required.

What Omakub Installs

Omakub installs a complete developer environment, not just individual tools. Here's what you get:

Terminal and Shell

  • Alacritty — GPU-accelerated terminal emulator
  • Zsh with plugins (zsh-autosuggestions, zsh-syntax-highlighting)
  • Oh My Zsh framework with custom theme

Editor

  • Neovim with a curated plugin configuration (LSP, Treesitter, fuzzy finder)
  • Pre-configured for Ruby, JavaScript, and general development

Languages and Runtimes

  • mise (formerly rtx) for managing multiple language versions
  • Node.js (LTS), Ruby (latest stable), Python 3
  • Go and Rust toolchains

Containers and Virtualisation

  • Docker with Docker Compose
  • distrobox for running other Linux distros inside containers

Desktop and UI

  • GNOME tweaks and extensions for a refined desktop experience
  • Catppuccin colour theme across terminal, editor, and system
  • Custom Nerd Fonts for icon support in the terminal

CLI Utilities

  • ripgrep, fd, bat, eza — modern replacements for grep, find, cat, ls
  • fzf — fuzzy finder for files and command history
  • lazygit — terminal Git UI
  • htop, btop — system and process monitoring

How to Install Omakub

Omakub requires Ubuntu 24.04 LTS (or later). It does not support other distributions.

# Step 1 — run on a fresh Ubuntu 24.04 system
wget -qO- https://omakub.org/install | bash

# Step 2 — log out and back in for shell changes to take effect

# Step 3 — open Alacritty and run the Omakub menu to configure further
omakub

The omakub command opens an interactive menu where you can install optional apps (1Password, Spotify, Zoom), set your theme variant, and configure your Git identity. Installation takes 10–20 minutes depending on internet speed.

How to Customise Omakub

Omakub is intentionally opinionated — but customisation is expected and supported.

Dotfiles

All configuration lives in ~/.config/:

~/.config/
  alacritty/      # terminal settings (TOML)
  nvim/           # Neovim config (Lua)
  zsh/            # shell aliases and functions

To customise Neovim, edit files in ~/.config/nvim/. Omakub uses lazy.nvim as the plugin manager — add plugins in ~/.config/nvim/lua/plugins/.

Shell Aliases

Omakub adds many aliases to ~/.zshrc. View them all with:

alias | grep <keyword>

Add your own aliases to ~/.zshrc after the Omakub-managed section. For cleaner separation, create ~/.zshrc.local and source it at the bottom of .zshrc:

# at the bottom of ~/.zshrc
[[ -f ~/.zshrc.local ]] && source ~/.zshrc.local

Themes

Omakub ships Catppuccin Mocha (dark) by default. To switch themes:

omakub
# Navigate to: Themes → choose a variant

Available variants: Latte (light), Frappé, Macchiato, and Mocha.

Omakub vs Vanilla Ubuntu: What's the Difference?

Fresh Ubuntu 24.04 Ubuntu + Omakub
Default shell Bash Zsh + Oh My Zsh
Default editor Gedit (GUI) Neovim
Terminal GNOME Terminal Alacritty
File listing ls eza (aliased to ls)
Text search grep ripgrep (aliased to grep)
Language version mgmt Manual via apt mise
Containers Not installed Docker + Compose
Setup time Hours of config ~20 minutes

The core Ubuntu underneath is identical — same apt package manager, same kernel, same security updates. Omakub adds a curated developer tooling layer on top without modifying the OS itself.

When Should You Use Omakub?

Good fit if:

  • You want a working dev environment quickly without days of configuration
  • You primarily work with Ruby, JavaScript, or Node.js (DHH's stack)
  • You're willing to learn Neovim and a Zsh-based workflow
  • You want a coherent, curated setup rather than assembling one yourself

Not a good fit if:

  • You need a specific Linux distro — Omakub is Ubuntu-only
  • You prefer VS Code or a GUI editor over terminal Neovim
  • You want full control over every tool choice from the start
  • Your team uses a standardised environment that differs from Omakub's choices

What You Still Need to Know

Omakub handles the setup — it doesn't teach you the underlying system. When something breaks (and it will), you'll need to understand:

  • File permissionschmod, chown, why scripts need execute permission
  • Process managementps, kill, why a service won't start
  • Package managementapt install, apt update, managing PPAs alongside Omakub
  • Networking — diagnosing Docker network issues, SSH configuration
  • Shell scripting — reading the aliases Omakub installs, writing your own

These aren't Omakub-specific skills — they're Linux fundamentals that make every tool on your system understandable and fixable.

Learn Linux file permissions
Understand process management
Master package management
Linux networking basics

Keeping Omakub Updated

Omakub doesn't auto-update. To pull new Omakub configuration versions:

omakub
# Navigate to: Update Omakub

For system packages, use standard apt:

sudo apt update && sudo apt upgrade

Language versions managed by mise update independently:

mise upgrade   # upgrade all managed language versions

Summary

Omakub is a well-maintained Ubuntu setup script that gives you DHH's developer environment in about 20 minutes. The tools it bundles — Neovim, Alacritty, Docker, mise, ripgrep — are genuinely excellent choices. If you'd assemble a similar setup yourself, Omakub just saved you a week.

The one thing it can't give you is understanding. For that, you need to learn the Linux fundamentals that sit underneath every tool it installs.

The Practical Linux Handbook covers those fundamentals — file systems, permissions, processes, networking, and shell scripting — with real-world examples for developers making the move to Linux.

Get The Practical Linux Handbook
Read a free sample chapter
Explore all Linux topics

#omakub#ubuntu#linux-fundamentals#dhh#linux-basics#system-administration#terminal

Enjoyed this article? Share it!

About the Author

VL

Vajo Lukic

Vajo Lukic is a technology leader with 20+ years of experience in software development and system administration. Author of The Practical Linux Handbook, he shares practical, field-tested knowledge to help developers and IT professionals master Linux fundamentals.

Read more about Vajo

Related Articles

10 Essential Linux Commands Every Developer Should Know

10 Essential Linux Commands Every Developer Should Know

Learn these 10 fundamental Linux commands and transform your productivity. From file navigation to system monitoring, discover the tools that every developer needs in their arsenal.

Read more →
apt vs yum vs dnf: Which Linux Package Manager Should You Use?

apt vs yum vs dnf: Which Linux Package Manager Should You Use?

apt, yum, and dnf all install packages — but they work on different distros and have different syntax. Here's when to use each and how they compare.

Read more →
Linux Process Management: A Complete Guide to ps, top, kill, and htop

Linux Process Management: A Complete Guide to ps, top, kill, and htop

Learn to list, monitor, and control Linux processes with ps, top, htop, and kill. Fix runaway processes, manage background jobs, and understand process states.

Read more →

Ready to Transform Your Life?

Get the complete guide to personal transformation and start your journey today.

Get the Book