Files
dotfiles/README.md
Jose Henrique 69ca75e528 Add NFS client packages (nfs-common on Debian, nfs-utils on Alpine)
Needed for NFS mounts. Included in the best-effort CLI tools list so a
missing/conflicting package never aborts the bootstrap. README + header
updated.
2026-07-20 09:30:55 -03:00

2.5 KiB

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 wget zsh vim, plus CLI tools htop, fzf, nslookup (dnsutils/bind-tools) and the NFS client (nfs-common/nfs-utils for NFS mounts). kubectl is installed if available in the repos.
  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.