Files
dotfiles/README.md
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

64 lines
2.3 KiB
Markdown

# 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
```sh
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):
```sh
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.