wiki-vault/Sources/Homelab/cli-standardization.md
Travis Herbranson 34a268d8dc migration: copy 62 notes from pbs-projects and homelab-projects
Two-layer structure: Sources (raw notes) + Wiki (compile output)
Four domains: Dev (40), Venture (3), Homelab (23), Reference (0)
Includes CLAUDE.md spec, index pages at all levels, compile log

Co-Authored-By: Lovebug <lovebug@herbylab.dev>
2026-05-08 17:21:13 -04:00

3.0 KiB

created path project status tags type updated
2026-04-23 Sources/Homelab cli-standardization active
pbs
tech-setup
automation
project-plan 2026-04-23

CLI Standardization: Fish, Starship & Cross-Node Sync

Standardize the terminal experience across the Manjaro dev rig, Proxmox nodes, and Ubuntu NAS. This project moves away from manual "server pet" configuration in favor of an automated, immutable CLI environment.

Objectives

  • Deploy Fish 4.x+ and Starship to all primary nodes via Ansible.
  • Establish a single source of truth for dotfiles using Chezmoi.
  • Implement the docker debug protocol to avoid shell-bloat in containers.

Phase 1: Host Automation (Ansible) — COMPLETE

  • Create Ansible role cli_modern to install fish, starship, fzf, zoxide, bat, eza, fd, ripgrep, fastfetch.
  • Handle Fish PPA for Ubuntu/Debian to get 4.x.
  • Add task to set Fish as the default shell for the primary user.
  • Deploy Fisher plugin manager with fzf.fish, z, sponge, autopair.
  • Write Fish config template (aliases, env vars, fastfetch on login).
  • Write Starship config template (git, Python/Go/Node, SSH hostname).
  • Support both Arch (Manjaro) and Debian (Ubuntu/Proxmox) via OS detection.
  • Pass ansible-lint at production profile.
  • Fill in inventory with actual hosts.
  • Deploy role to Proxmox cluster and Ubuntu NAS.

Phase 2: Dotfile Orchestration (Chezmoi) — COMPLETE (placeholders)

  • Initialize dotfiles Git repository with Chezmoi structure.
  • Create placeholder configs: Fish, Starship, Ghostty, Zellij.
  • Machine-type awareness (.chezmoiignore skips Ghostty/Zellij on servers).
  • Add Chezmoi install + apply tasks to cli_modern role (opt-in).
  • Configure fish_plugins file for Fisher automated plugin sync.
  • Replace placeholder configs with real dotfiles from Manjaro rig.
  • Push dotfiles repo to Gitea.
  • Test chezmoi apply workflow on Manjaro rig.

Phase 3: Container Workflow

  • Verify docker debug binary availability on nodes.
  • Create an alias/function for ddebug that defaults to the Fish shell.
  • Document the VS Code Dev Container configuration for consistent project-level shells.

Repos

Repo Location Purpose
cli-standardization /opt/projects/pbs-workshop/cli-standardization/ Ansible project with cli_modern role
dotfiles /opt/projects/pbs-workshop/dotfiles/ Chezmoi-managed dotfiles (push to Gitea)

Tools Installed

Tool Purpose Arch pkg Ubuntu pkg
Fish Shell fish fish (PPA)
Starship Prompt binary binary
fzf Fuzzy finder fzf fzf
zoxide Smart cd zoxide zoxide
bat cat++ bat bat/batcat
eza ls++ eza eza
fd find++ fd fd-find
ripgrep grep++ ripgrep ripgrep
fastfetch System info fastfetch fastfetch
Fisher Fish plugins via script via script
Chezmoi Dotfiles chezmoi binary