docs: refresh repo README and add component guides

This commit is contained in:
Jordan Wages 2025-09-23 22:48:06 -05:00
commit a12e713d1f
3 changed files with 152 additions and 64 deletions

View file

@ -1,71 +1,29 @@
# Proxmox Debian VM Bootstrap Wizard
# Proxmox Server Setup
A simple, interactive bootstrap for freshly cloned Debian VMs on Proxmox.
It uses a twostage approach:
Scripts and configuration used to bring new Debian VMs online in a Proxmox cluster and wire them into supporting services. Each component keeps its own focused documentation so you can grab just what you need.
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, fastfetch, CIFS mounts, etc.
## Components
- [Setup Wizard](docs/setup-wizard/README.md): interactive bootstrap that hardens a freshly cloned Debian template, installs tooling, and wires in NAS shares.
- [Uptime Kuma Push Client](docs/uptime-kuma/README.md): lightweight agent that reports VM health checks to Uptime Kuma using the push API.
- _Future additions_: drop new tooling under `docs/<component>/README.md` and link it here.
---
## Prerequisites
- Debianbased VM template
- Network access to `git.jordanwages.com`
- `whiptail` (autoinstalled if missing)
- Either `curl` or `wget`
---
## Installation
1. **Invoke remotely**
On your Debian template, run the following command:
## Quick Start
1. **Prepare a Debian template** on Proxmox with either `curl` or `wget` available.
2. **Run the bootstrap** on first boot:
```bash
curl -s https://git.jordanwages.com/wagesj45/proxmox-server-setup/raw/branch/main/bootstrap.sh | bash
curl -fsSL https://git.jordanwages.com/wagesj45/proxmox-server-setup/raw/branch/main/bootstrap.sh | bash
```
The helper script will escalate to root if needed, fetch the latest `setup.sh`, and guide you through hostname, sudo users, SSH keys, updates, and NFS mounts.
3. **Wire monitoring** by scheduling `kuma-push.sh` (eg. via `systemd` timer or cron) once you configure your checks in `kuma-checks.json`.
2. **Follow the wizard**
Use the onscreen menus to:
## Project Layout
- `bootstrap.sh` thin wrapper that always pulls the current `setup.sh` from Git and runs it as root.
- `setup.sh` whiptail-based wizard that applies updates, manages SSH keys, configures optional tooling, and maintains NFS mounts.
- `kuma-push.sh` sends heartbeat updates to Uptime Kuma based on the inventory in `kuma-checks.json`.
- `kuma-checks.json` declarative list of HTTP/service/docker/mount/disk checks for the push client.
- `docs/` component documentation; add new READMEs here as the toolkit grows.
* Grant `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 NFS 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.
* **NFS shares**
Adjust the `NFS_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 setup.sh
```
again to repeat the wizard.
* **Manually inspect**
If a step errors out, inspect the console output for hints.
## Contributing & Maintenance
- Keep scripts idempotent so they can be re-run safely during template refreshes.
- When you add features, document the new behaviour in a dedicated `docs/<component>/README.md` and update the component list above.
- Run through the setup wizard on a throwaway VM after major changes to confirm the full flow still works.