proxmox-server-setup/README.md
2025-07-25 18:21:58 -05:00

80 lines
2 KiB
Markdown
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# Proxmox Debian VM Bootstrap Wizard
A simple, interactive bootstrap for freshly cloned Debian VMs on Proxmox.
It uses a twostage approach:
1. **Bootstrap script** (stored as `setup.sh` on your VM template)
- Prompts for root if needed
- Downloads and runs the latest interactive wizard
2. **Remote setup wizard** (pulled from Git)
- Menudriven (`whiptail`) configuration: updates, sudo, hostname, SSH keys, aliases, neofetch, CIFS mounts, etc.
---
## Prerequisites
- Debianbased VM template
- Network access to `git.jordanwages.com`
- `whiptail` (autoinstalled if missing)
- Either `curl` or `wget`
---
## Installation
1. **Copy & rename**
On your Debian template, place the **bootstrap** script as `/root/setup.sh`:
```bash
chmod +x /root/setup.sh
2. **Provision a new VM**
Clone from your template and boot it. Then run:
```bash
sudo /root/setup.sh
```
* If youre not root, youll be prompted (via `whiptail`) for the root password.
* The script fetches and executes the latest remote wizard.
3. **Follow the wizard**
Use the onscreen menus to:
* Grant passwordless `sudo` to selected users
* Apply system updates
* Set a new hostname
* Add SSH keys for root & your primary user
* Install core & optional utilities (`htop`, `jq`, `git`, etc.)
* Configure CIFS mounts for your NAS shares
---
## Customization
* **Default SSH key**
Edit the `DEFAULT_SSH_KEY` variable in the remote `setup.sh` to your own public key.
* **Optional packages**
Tweak the `TOOLS=(…)` array in the remote script to add or remove utilities.
* **CIFS shares**
Adjust the `CIFS_HOSTS=(…)` array to match your NAS hostnames.
---
## Troubleshooting
* **Fetch failures**
Ensure network connectivity and that `curl` or `wget` is installed.
* **Rerunning**
Simply invoke:
```bash
sudo /root/setup.sh
```
again to repeat the wizard.
* **Manually inspect**
If a step errors out, inspect the console output for hints.