Headless Linux Dev Setup
π§ Headless Linux Dev Setup
After building several developer workstations and CI servers by hand, I finally decided to automate it all.
This project provides a single-command bootstrap for setting up a full developer environment on Linux β tailored for headless systems and terminal-first workflows.
π Repo: https://github.com/justin-napolitano/linux-dev-setup.git
β‘ Overview
This setup automatically detects your distro (apt, dnf, pacman, zypper, or brew) and installs everything needed for a modern developer shell and editor environment.
Itβs especially tuned for servers, VMs, and remote instances where you live inside SSH and want a frictionless setup.
Includes:
zsh+oh-my-zsh+Powerlevel10k(auto-detects Nerd Fonts, ASCII fallback)Neovim+lazy.nvim+ Treesitter, LSP, Telescope, Git integration- CLI favorites:
ripgrep,fd,fzf,bat,eza,jq,yq,direnv,gh - Optional Docker (rootless mode supported)
- Optional SSH hardening,
ufw, andfail2ban
π§ Philosophy
βHeadless doesnβt have to mean basic.β
The goal is a zero-click, idempotent setup:
- Rerunnable safely β existing configs are backed up before updates.
- No GUI dependencies.
- Focused on real-world DevOps and analytics workflows.
- All scripts are plain bash and versionable alongside dotfiles.
π Quick Start
Or, if youβre just fixing an existing machine:
Optional Flags:
NO_ICONS=1 ROOTLESS_DOCKER=1
NO_ICONS=1β ASCII prompt (for terminals without Nerd Fonts)ROOTLESS_DOCKER=1β install Docker rootless modeSKIP_SECURITY=1β skip optional security tweaks
π§© Stack Highlights
π Zsh Shell
- oh-my-zsh framework
- Powerlevel10k theme (auto ASCII fallback)
- Plugins:
git,z,fzf,asdf,colored-man-pages,docker,kubectl,
pluszsh-autosuggestions,zsh-syntax-highlighting, and more.
π Neovim
- Plugin manager: lazy.nvim
- Plugins: Treesitter, Telescope, Gitsigns, LSP, Autopairs, Comment, Which-Key
- Theme: Catppuccin (with Gruvbox available)
- Optimized for SSH β minimal redraw, no GUI dependencies.
βοΈ Headless Tools
ripgrep, fd, fzf, bat, eza, jq, yq, duf, ncdu, btop, lnav, rsync,
direnv, gh, and more.
π³ Containers
- Docker + Compose plugin
- Optional rootless Docker (
ROOTLESS_DOCKER=1)
π Optional Security
- SSH hardening (no root login or password auth)
ufwfirewallfail2ban
π§° Repair Scripts
If your existing environment is half-configured or broken:
Each creates a timestamped backup of your old configs.
π§© Extensible Design
The repo is modular β each layer (shell, editor, headless tools, containers, security) is isolated in its own script under scripts/.
This makes it easy to:
- Add new CLI tools
- Swap out editors
- Customize dotfiles
- Re-run setup safely across multiple servers
π§βπ» Why Build This?
For analysts, engineers, and DevOps folks who frequently spin up new servers, WSL environments, or remote dev containers β this project gives you a consistent, tuned baseline that feels like home the moment you SSH in.
π Project Link
π https://github.com/justin-napolitano/linux-dev-setup.git
π License
MIT β free to use, modify, and share.