Personal dotfiles and bootstrap scripts for Debian 12 (bookworm) development VMs.
| Package | What it manages |
|---|---|
zsh |
.zshrc, .zshenv, .zsh_plugins.txt |
git |
.gitconfig (aliases, settings) |
starship |
Starship prompt config |
nvim |
Full Neovim config (lazy.nvim, 25+ plugins) |
lazygit |
Lazygit config |
gh |
GitHub CLI preferences |
opencode |
OpenCode + oh-my-openagent config |
| Script | What it installs |
|---|---|
debian12.sh |
APT repos (Docker, NodeSource), base packages, zsh |
runtimes.sh |
Go, Rust, Bun, asdf |
cli-tools.sh |
nvim, starship, rg, fd, fzf, eza, lazygit, etc. |
verify.sh |
Post-install sanity checks |
- Go (via /usr/local/go)
- Rust (via rustup)
- Node.js 22.x (via NodeSource APT)
- Bun
- Elixir + Erlang/OTP (via APT)
- Java OpenJDK 17 (via APT)
nvim, starship, ripgrep, fd, fzf, eza, lazygit, lazydocker, golangci-lint, zoxide, tree-sitter, gh, bat, flyctl, temporal, antidote
# Clone the repo
git clone https://github.com/YOUR_USER/dotfiles-linux.git ~/code/dotfiles-linux
cd ~/code/dotfiles-linux
# Run the full bootstrap
bash install.sh
# Restart shell
exec zsh- Git identity — copy and edit the template:
cp templates/gitconfig.user.example ~/.gitconfig.user # Edit with your name and email
- GitHub auth —
gh auth login - Neovim plugins — open
nvimand let lazy.nvim install plugins - Docker — log out/in or
newgrp dockerto apply group
cd ~/code/dotfiles-linux
bash stow.shTo stow a single package:
stow -Rv -t "$HOME" nvimTo unstow:
stow -Dv -t "$HOME" nvimEdit versions/tool-versions.env and re-run the relevant bootstrap script.
- SSH keys (
~/.ssh/) - GitHub tokens (
~/.config/gh/hosts.yml) - Git user identity (
~/.gitconfig.user) - Amp/OpenCode auth tokens
- Any cache or generated files