feat: retool setup scripts as Debian 13-first (keep Fedora support)

- main-setup.sh: sudo/root preflight for fresh Debian installs; offer
  distro-agnostic 03-dotnet-setup.sh on all supported distros
- 01-package-install.sh: Debian package renames (bind9-dnsutils), batcat
  symlink, libvirt/QEMU stack; vendor repos for gh/terraform/kubectl +
  k9s/minikube binaries (not in Debian main); keep dnf path for Fedora
- 02-dev-tools-setup.sh: PEP 668 fallback for pynvim pip install
- 03-fedora-dotnet-setup.sh -> 03-dotnet-setup.sh: .NET SDK via official
  dotnet-install.sh (no MS repo), PostgreSQL + Podman/podman-docker
- zshrc: purge dead oh-my-zsh references (prompt is Oh-My-Posh)
- README: Debian 13 first-class; docs: record decisions + status
This commit is contained in:
Blake Ridgway
2026-09-02 16:27:02 -05:00
parent e2bb3a956a
commit e885584f71
8 changed files with 412 additions and 307 deletions

View File

@@ -10,51 +10,51 @@ Run the main setup script to install software, configure development tools, and
./main-setup.sh
```
The script will automatically detect your Linux distribution (Fedora, Ubuntu, Debian, etc.) and use the appropriate package manager.
The script will automatically detect your Linux distribution (Debian 13 "trixie" is the primary target; Ubuntu and Fedora also work) and use the appropriate package manager (`apt` or `dnf`).
## What Gets Installed
### Core Packages
- Development tools: `git`, `gh`, `curl`, `wget`, `ripgrep`, `fd-find`
- System utilities: `btop`, `fastfetch`, `zsh`, `flatpak`
- Virtualization: `virt-manager`
### Core Packages (distro packages)
- Development tools: `git`, `curl`, `wget`, `ripgrep`, `fd-find`, `bat`, `eza`
- System utilities: `btop`, `zsh`, `tmux`, `fzf`, `zoxide`, `flatpak`
- Virtualization (KVM): `virt-manager` + libvirt/QEMU stack
- Python: `python3`, `python3-pip`
- Networking: `nmap`, `mtr`, `tcpdump`, `socat`, `whois`, `iperf3`, `traceroute`
- Cloud / DevOps: `kubectl`, `k9s`, `minikube`, `terraform`, `helm`, `direnv`
- HTTP: `curl`, `httpie`
- Networking: `nmap`, `mtr`, `tcpdump`, `socat`, `whois`, `iperf3`, `traceroute`, `bind9-dnsutils`
- HTTP: `httpie`
- DevOps helpers: `ansible`, `direnv`, `jq`, `tldr`, `unzip`
### Development Environment
- **Neovim** (latest version from GitHub)
- **Hack Nerd Font** for terminal
- **Oh My Zsh** shell framework
- **Starship** prompt
### Upstream Tooling (installed by 01)
`gh` (GitHub CLI), `terraform`, `kubectl`, `k9s` and `minikube` are **not packaged in Debian**, so `01-package-install.sh` adds the official vendor apt repositories (GitHub CLI, HashiCorp, `pkgs.k8s.io`) and installs `k9s`/`minikube` from upstream binaries. On Fedora these are a best-effort `dnf` install (usually COPR/manual).
### Development Environment (02)
- **Neovim** (latest from GitHub, installed to `/opt/nvim`)
- **Hack Nerd Font** for terminals
- **Go** toolchain (`/usr/local/go`)
- **Rust** toolchain via rustup
- **Oh-My-Posh** prompt (`~/.local/bin`)
- **Helm**, **kubectx/kubens**, **stern**, **dive**, **trivy**, **AWS CLI v2**
### Fedora-Specific (.NET Development)
On Fedora systems, additional packages are installed:
- **Visual Studio Code**
- **.NET SDK** (with Microsoft repository)
### .NET / Backend Services (03, optional)
Distro-agnostic .NET development environment:
- **.NET SDK** via the official `dotnet-install.sh` (no vendor repository needed)
- **PostgreSQL** server and tools
- **Docker** (moby-engine) with Docker Compose
- **Podman** + `podman-compose` + `podman-docker` (Docker-CLI-compatible containers)
- VS Code is installed as a **Flatpak** (`com.visualstudio.code`)
### Flatpak Applications
- Bitwarden
- Flatseal
- Steam
- ProtonUp-Qt
- Rider
- Veloren Airshipper
- Visual Studio Code
- VLC Media Player
- Bolt, Bitwarden, Discord, Teams for Linux, Flatseal
- Steam, ProtonUp-Qt (pupgui2), VLC
- Visual Studio Code, Podman Desktop
- Signal, Thunderbird
## Modular Architecture
The setup is broken down into focused scripts:
- `00-system-prep.sh` - System updates and Flathub setup
- `01-package-install.sh` - Core packages and Flatpak apps
- `02-dev-tools-setup.sh` - Development tools (Neovim, Go, Rust, Helm, kubectx, stern, dive, trivy, AWS CLI)
- `03-fedora-dotnet-setup.sh` - Fedora-specific .NET environment
- `01-package-install.sh` - Core packages, upstream tooling, and Flatpak apps
- `02-dev-tools-setup.sh` - Development tools (Neovim, Go, Rust, Oh-My-Posh, Helm, kubectx, stern, dive, trivy, AWS CLI)
- `03-dotnet-setup.sh` - .NET SDK + PostgreSQL + Podman (distro-agnostic)
- `04-config-symlinks.sh` - Dotfile symlinking
You can run individual scripts if you only need specific components.
@@ -97,14 +97,22 @@ After running the setup, remember to:
ssh-keygen -t ed25519 -C ${USER}@$(hostname --fqdn)
```
3. **Install Powerlevel10k gitstatus (if using):**
3. **Set zsh as your login shell:**
```bash
~/.oh-my-zsh/custom/themes/powerlevel10k/gitstatus/install -f
chsh -s /usr/bin/zsh
```
4. **Log out and back in** for Docker group changes to take effect (Fedora)
4. **Add yourself to virtualization groups** (log out/in afterward):
```bash
sudo usermod -aG libvirt,kvm $USER
```
5. **Install VS Code extensions** (Fedora):
5. **(Optional) enable the rootless Podman API socket:**
```bash
systemctl --user enable --now podman.socket
```
6. **Install VS Code extensions:**
- C# Dev Kit
- GitLens
- Prettier
@@ -112,9 +120,9 @@ After running the setup, remember to:
## Supported Distributions
- **Fedora** (with full .NET development environment)
- **Ubuntu/Debian** (core packages and development tools)
- **Pop!_OS** (core packages and development tools)
- **Debian 13 "trixie"** (primary target — full setup incl. upstream tooling, .NET, and backend services)
- **Ubuntu / Pop!_OS** (apt; core + development tools)
- **Fedora** (dnf; core + development tools, best-effort upstream tooling)
## Customization