2022-10-10 20:58:38 -05:00
2022-09-18 12:29:20 -05:00
2026-07-06 12:55:07 -05:00
2026-07-06 12:55:07 -05:00
2026-07-06 12:55:07 -05:00
2022-09-18 12:29:20 -05:00

Fresh Install

This is a collection of scripts and dotfiles I use when setting up a fresh Linux installation.

Quick Start

Run the main setup script to install software, configure development tools, and symlink dotfiles:

./main-setup.sh

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 (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, bind9-dnsutils
  • HTTP: httpie
  • DevOps helpers: ansible, direnv, jq, tldr, unzip

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

.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
  • Podman + podman-compose + podman-docker (Docker-CLI-compatible containers)
  • VS Code is installed as a Flatpak (com.visualstudio.code)

Flatpak Applications

  • 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, 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.

Dotfiles

The following configuration files will be symlinked to your home directory:

  • .vimrc & .vim/ - Vim/Neovim configuration
  • .zshrc & .zsh/ - Zsh shell configuration
  • .gitconfig - Git configuration (edit with your credentials)
  • .gitignore - Global Git ignore patterns
  • .agignore - Silver Searcher ignore patterns
  • .aliases - Shell aliases (from aliases.zsh)
  • .gitmessage - Git commit template (from commit-conventions.txt)

Git Configuration

Important: Edit gitconfig and replace my credentials with yours before running the setup.

Vim/Neovim Setup

I use Neovim with vim-plug for plugin management. If you're using regular Vim, you may need to:

  1. Remove Neovim-specific plugins from .vimrc
  2. Run :PlugClean to remove plugin directories
  3. Run :PlugInstall to reinstall compatible plugins

Post-Installation Tasks

After running the setup, remember to:

  1. Configure Git with your details:

    git config --global user.name "Your Name"
    git config --global user.email "your.email@example.com"
    
  2. Generate SSH key:

    ssh-keygen -t ed25519 -C ${USER}@$(hostname --fqdn)
    
  3. Set zsh as your login shell:

    chsh -s /usr/bin/zsh
    
  4. Add yourself to virtualization groups (log out/in afterward):

    sudo usermod -aG libvirt,kvm $USER
    
  5. (Optional) enable the rootless Podman API socket:

    systemctl --user enable --now podman.socket
    
  6. Install VS Code extensions:

    • C# Dev Kit
    • GitLens
    • Prettier
    • NuGet Package Manager GUI

Supported Distributions

  • 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

Feel free to fork this repository and modify the scripts/dotfiles to suit your needs. The modular structure makes it easy to add, remove, or modify specific components.

Legacy

The original monolithic post_install.sh script has been archived in .archive/ for reference.

Description
No description provided
Readme 20 MiB