Add server CLI tools installer for Ubuntu/Debian servers

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.
This commit is contained in:
2026-06-04 20:52:54 +02:00
commit 6fe8529d10
14 changed files with 1258 additions and 0 deletions

View File

@@ -0,0 +1,69 @@
# 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](https://github.com/neurobrko/dotfiles), 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.sh` passes; `./install.sh --help` works
## 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 completion
- `configs/custom_tools/backup_dotfiles.sh` — backup conflicting dotfiles
- `configs/custom_tools/get_ip.sh` — get+copy interface IP
- `configs/custom_tools/strip_file.sh` — strip comments/blanks from configs
- `configs/bat/config` — bat theme (base16)
- `configs/yazi/yazi.toml` — yazi file manager config
- `configs/zsh/zhann-elvis.zsh-theme` — custom git-aware zsh prompt
- `configs/zshrc` — .zshrc with oh-my-zsh, plugins, fzf integration
- `README.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 `nv` with `${EDITOR:-nano}`, removed `fuzzy_nvim`, `activate_poetry_env`
- Changed `py` alias from `python3.12` to `python3`
- Created `.zshrc` with portable fzf sourcing (tries multiple paths)
- Built interactive installer with toggle menu, `--all` mode, 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
1. Create initial commit
2. Set up remote (Gitea at git.mpx.sk or GitHub) and push
3. Test on a fresh server (e.g. Hetzner VPS from the re_kit project)
4. Consider: add `uninstall.sh` or `--uninstall` flag?
5. Consider: add `update.sh` to 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 to `main`
- **yazi installation**: currently only installs config; consider adding cargo-based yazi install to the script
## Gotchas
- The `eza` package 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 `bat` binary is `batcat` on Debian/Ubuntu — the installer creates a symlink at `/usr/local/bin/bat`.
- The `.zshrc` sets `EDITOR=nano` by default since this is server-only (no neovim).
- `fzf` shell integration varies across distro versions — the zshrc tries both the packaged path and `fzf --zsh`.
## Suggested skills
- `create-commit-message` — for the initial commit
- `copy-to-clipboard` — if user wants to copy commands for server testing