Consolidated server/<host>/ into one generic servers/ set applied to any host. Baseline chosen as the superset of the per-host configs: .zshrc (agnoster + kubectl), identical .vimrc, standard .bashrc, fuller htoprc, and the shared neofetch config. install.sh now deploys servers/ unconditionally (no hostname matching); removed the --host flag. README updated accordingly.
2.1 KiB
2.1 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 pluginsbackup.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
./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)
The installer:
- Detects the OS / package manager (
apton Debian,apkon Alpine) and installsgit curl zsh vimplushtopandfzf. - Installs oh-my-zsh (unattended) + the
zsh-autosuggestionsplugin. - Copies the
servers/dotfiles into$HOME. - 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.