Introduce a self-contained repo with an interactive install.sh that provisions zsh, oh-my-zsh, aliases, bat/yazi configs, docker shortcuts, and git-delta pager setup. Configs are adapted from dotfiles for SSH-only servers — no desktop or neovim dependencies. Installer supports --all, --update (git pull + re-run), and --uninstall with backup restore. Core packages include vim (default editor), yazi via apt, and idempotent apt installs with warnings for eza and git-delta when repos lack them.
3.9 KiB
3.9 KiB
Handoff: Server CLI Tools — initial setup complete
Date: 2026-06-04T18:54+02:00 Focus for next session: Initial commit, push to remote, and any refinements to the installer or configs.
Context
Standalone repo for provisioning Ubuntu/Debian servers with a consistent CLI environment — zsh, aliases, git config, Docker shortcuts, and core tools. Extracted and adapted from the user's personal dotfiles repo, stripped of desktop/neovim/GUI items to be server-SSH-only.
Current state
- Working directory:
/home/elvis/code/server_cli_tools - Branch / commit:
master— repo initialized, all files staged, no commits yet - Last action taken:
git init && git add . - Build/test status:
bash -n install.shpasses;./install.sh --helpworks
Artifacts
Key files
install.sh— main installer (6 components, interactive menu or--all)configs/aliases/.aliases— general aliases (server-adapted, no neovim/opencode/SyncSuite)configs/aliases/.functions.sh— helper functions, alias help system, uses${EDITOR:-nano}configs/aliases/.git_aliases— git shortcuts (removed lazygit, hardcoded gp path)configs/aliases/.docker_aliases— docker management (unchanged from dotfiles)configs/aliases/.git_bash_autocomplete— bash git completionconfigs/custom_tools/backup_dotfiles.sh— backup conflicting dotfilesconfigs/custom_tools/get_ip.sh— get+copy interface IPconfigs/custom_tools/strip_file.sh— strip comments/blanks from configsconfigs/bat/config— bat theme (base16)configs/yazi/yazi.toml— yazi file manager configconfigs/zsh/zhann-elvis.zsh-theme— custom git-aware zsh promptconfigs/zshrc— .zshrc with oh-my-zsh, plugins, fzf integrationREADME.md— repo documentation.gitignore— swap files, DS_Store
Uncommitted changes
Everything is staged (git add .), awaiting initial commit. 15 files total.
What's done
- Analyzed dotfiles repo structure and identified server-relevant components
- Created self-contained repo with all configs bundled (no dependency on dotfiles repo)
- Adapted aliases: removed
nv,noc,fnv,nvc,oc,rtr,rfm,gp,lg,xc,dot,ape - Adapted functions: replaced
nvwith${EDITOR:-nano}, removedfuzzy_nvim,activate_poetry_env - Changed
pyalias frompython3.12topython3 - Created
.zshrcwith portable fzf sourcing (tries multiple paths) - Built interactive installer with toggle menu,
--allmode, backup system, idempotent checks - Installer components: core packages, zsh+oh-my-zsh, aliases+tools, terminal configs (bat/yazi), docker aliases, git config (delta)
What's next
- Create initial commit
- Set up remote (Gitea at git.mpx.sk or GitHub) and push
- Test on a fresh server (e.g. Hetzner VPS from the re_kit project)
- Consider: add
uninstall.shor--uninstallflag? - Consider: add
update.shto pull latest and re-run selective installs?
Open questions / decisions pending
- Remote location: where to host this repo (Gitea vs GitHub)
- Branch name: currently
master(git default), may want to rename tomain - yazi installation: currently only installs config; consider adding cargo-based yazi install to the script
Gotchas
- The
ezapackage is not available in all Ubuntu versions (e.g. older than 24.04). The installer warns and suggests manual install. - Same for
git-delta— not in all apt repos. Falls back to a warning with a link. - The
batbinary isbatcaton Debian/Ubuntu — the installer creates a symlink at/usr/local/bin/bat. - The
.zshrcsetsEDITOR=nanoby default since this is server-only (no neovim). fzfshell integration varies across distro versions — the zshrc tries both the packaged path andfzf --zsh.
Suggested skills
create-commit-message— for the initial commitcopy-to-clipboard— if user wants to copy commands for server testing