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:
69
.agents/handoff/2026-06-04-1854-initial-setup.md
Normal file
69
.agents/handoff/2026-06-04-1854-initial-setup.md
Normal 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
|
||||
Reference in New Issue
Block a user