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 permissions —
chmod,chown, why scripts need execute permission - Process management —
ps,kill, why a service won't start - Package management —
apt 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
Enjoyed this article? Share it!
About the Author
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 VajoRelated Articles

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, 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
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