| .. | ||
| README.md | ||
Setup Wizard
Interactive bootstrap for Debian-based VM templates. The wizard is safe to re-run and is designed for Proxmox clones that need the same base hardening, tooling, and share mounts before they enter service.
Files
bootstrap.sh– convenience wrapper you drop on the template. It escalates to root, pulls the latest wizard, and executes it.setup.sh– primary script. Useswhiptailmenus to configure the VM.
Requirements
- Debian 12/13 guest with network access to
git.jordanwages.com. - Either
curlorwget. The wizard auto-installswhiptailif it is missing. - Ability to escalate to root (
sudo, root shell, or root password).
Running The Wizard
- Place
bootstrap.shon the template (or use thecurl | bashone-liner in the main README). - Execute
sudo ./bootstrap.sh(or simply./bootstrap.shas root). - Follow the
whiptailprompts. You can cancel at any step; no changes are committed until each section completes.
You can re-run setup.sh at any time to reapply updates, rotate keys, or adjust NAS mounts. The managed sections overwrite prior state so the machine always matches the latest answers.
What The Wizard Configures
- Core packages: installs
sudo,curl,gnupg,lsb-release,nfs-common, and any optional tools you choose (htop,jq,git, etc.). - System updates: full
apt-get dist-upgradewith a progress gauge. - Sudo access: toggles passwordless sudo for any non-system users on the box.
- Hostname: updates
/etc/hostsandhostnamectl - SSH keys: overwrites
authorized_keysforrootand the primary user (jordanwagesby default) after deduplicating entries. - Shell quality-of-life: installs bat/ncdu aliases and replaces
neofetchwithfastfetchfor login banners. - NFS mounts: manages a comment-delimited block in
/etc/fstabfor the NAS hosts you select and attempts to mount them immediately. - Logging: tee'd transcript stored at
/var/log/freshbox.logon each run.
Customization
- Default SSH key: edit
DEFAULT_SSH_KEYnear the top ofsetup.shto your preferred public key. - Optional packages: expand the
TOOLS=(...)array; everything listed appears as a checkbox in the “Extra Utilities” menu. - NAS hosts: change the
NFS_HOSTS=(...)array to match your environment. Each value becomes a selectable share under/media/<host>. - Primary user: adjust
USER_NAMEif your golden image uses a different account thanjordanwages.
Troubleshooting
- Wizard aborts with missing
whiptail: rerun the script; it self-installswhiptailbefore launching menus. - NFS mounts fail: the wizard leaves a ⚠️ note in the final dialog. Check
/var/log/freshbox.logfor the mount error and re-run once networking or permissions are fixed. - Need to inspect actions: review
/var/log/freshbox.log, which captures command output from the session.