Jose Henrique a78ce3591a Install basic CLI tools (git curl wget + nslookup/kubectl) and document chmod
- ESSENTIAL now includes wget.
- Add best-effort CLI tools: htop, fzf, nslookup (dnsutils on Debian,
  bind-tools on Alpine).
- Attempt kubectl only when its package is available in the repos
  (not in default Debian/Alpine repos; install manually otherwise).
- README: add 'chmod +x install.sh' and a single-line
  clone+install+remove one-liner.
2026-07-20 09:26:50 -03:00

dotfiles

Personal and server dotfiles. Kept in two areas:

  • servers/ — a single, generic set of server dotfiles (zsh, vim, bash, htop, neofetch) applied to any homelab server, rather than one folder per host
  • (personal dotfiles live at the repo root, kept separate from servers/)

Layout

servers/
  .zshrc                      zsh config (oh-my-zsh, agnoster theme, kubectl plugin)
  .vimrc                      vim config (dracula + lightline + Vundle)
  .bashrc                     bash config (standard Debian default)
  .config/htop/htoprc         htop config
  .config/neofetch/config.conf neofetch config

These are the common baseline shared across the homelab hosts (iris, vega, nebula, nexus, ...). They were consolidated from the per-host configs into one generic set so a single ./install.sh works on any server.

What is NOT included (and why)

These are intentionally excluded from the repo:

  • .ssh/, .kube/, .docker/, .ansible/ — secrets / infra credentials
  • .zsh_history, .viminfo, .zcompdump*, .netrwhist — ephemeral caches
  • .oh-my-zsh/ — upstream framework; reinstall instead of vendoring
  • .vim/bundle/* — Vundle-managed third-party plugins
  • backup.sh, clean.sh, crontab.bak*, talosctl, places — local utility scripts / binaries specific to each host

Installing on a fresh server

git clone git@git.ivanch.me:ivanch/dotfiles.git
cd dotfiles
chmod +x install.sh
./install.sh            # detects Debian/Alpine, installs pkgs + oh-my-zsh,
                        # deploys servers/ and installs Vim plugins
# optional: ./install.sh --chsh   (set login shell to zsh)
#           ./install.sh --dry-run (preview only)

Or as a single line (clone, install, then remove the folder):

git clone git@git.ivanch.me:ivanch/dotfiles.git /tmp/dotfiles && \
  cd /tmp/dotfiles && chmod +x install.sh && ./install.sh; cd /tmp && rm -rf /tmp/dotfiles

The installer:

  1. Detects the OS / package manager (apt on Debian, apk on Alpine) and installs git curl zsh vim plus htop and fzf.
  2. Installs oh-my-zsh (unattended) + the zsh-autosuggestions plugin.
  3. Copies the servers/ dotfiles into $HOME.
  4. Clones the Vim plugins declared in .vimrc (dracula, lightline, vim-gitbranch) directly — no interactive step required.

It is safe to re-run; every step is idempotent.

Description
No description provided
Readme 73 KiB
Languages
Shell 100%