- Shell 100%
| scripts | ||
| .gitignore | ||
| AGENTS.md | ||
| bootstrap | ||
| README.md | ||
| sync-to-vm | ||
Development environment automation
This repository contains Bash bootstrap automation for development containers and VMs.
Execution model
Run the bootstrap locally from inside the development environment being configured. That keeps the isolation method transparent: the same command works inside a Distrobox container or a Fedora VM.
For the first target, enter the container before running the bootstrap:
distrobox enter fedora44-dev
Run the setup bootstrap:
./bootstrap
Run the bootstrap as your normal user. If passwordless sudo is not available, sudo will prompt when needed.
To skip the DNF package upgrade:
./bootstrap --skip-upgrade
The setup bootstrap verifies it is running locally on Fedora-like Linux, upgrades installed DNF packages unless --skip-upgrade is passed, and runs these ordered steps:
system-packages: installs Docker, Docker Compose, and Podman tooling; on systemd targets it enables and starts Docker, and adds the target user to thedockergroup. Existing shells may need a new login before Docker group membership is visible.shell: installszshand makes it the target user's default login shell. Existing sessions keep their current shell until a new login.homebrew: installs Fedora build prerequisites, installs Homebrew from the official installer if/home/linuxbrew/.linuxbrew/bin/brewis missing, and adds Homebrew'sshellenvline to~/.bashrcwithout duplicates.development-tools: installs dotfiles prerequisites and installschezmoifrom Homebrew.dotfiles: creates~/.config/chezmoifor local chezmoi secrets/configuration and cloneshttps://gitlab.com/geewiz/dotfiles.gitinto~/.local/share/chezmoifor dotfiles bootstrapping.ada: installs the Alire release archive under~/.local/share/alireand linksalrinto~/.local/bin.
The bootstrap verifies Docker, Podman, the default login shell, Homebrew, chezmoi, and Alire versions at the end.
Copy the bootstrap to a VM
Use the sync helper from this repository to copy the bootstrap tree to a VM without Git metadata:
./sync-to-vm geewiz@fedora-vm
The destination defaults to devbox in the remote login directory. Pass a second argument to choose another target directory:
./sync-to-vm geewiz@fedora-vm '~/devbox'