Repository navigation
Harmonize all VM scripts on the shared Core VM helpers - #2393
Conversation
All 14 vm/*.sh follow one layout: Core headers instead of embedded banners, vm_dialog instead of whiptail, vm_require_tools instead of host apt, vm_release_asset/vm_latest_from_index for releases, vm_extract_image, vm_customize and vm_firstboot_unit for image changes, vm_import_disk with the reported volume, vm_wait_for_ip by MAC, and vm_print_summary/vm_next_steps/vm_finish. The wizard harness enforces the layout; CI tests against the Core branch of the same name when it exists. Requires community-scripts/core#117. Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Try these scripts
bash -c "$(curl -fsSL https://raw.githubusercontent.com/community-scripts/DevScripts/feat/vm-harmonization/vm/blissos-vm.sh)"
bash -c "$(curl -fsSL https://raw.githubusercontent.com/community-scripts/DevScripts/feat/vm-harmonization/vm/cachyos-vm.sh)"
bash -c "$(curl -fsSL https://raw.githubusercontent.com/community-scripts/DevScripts/feat/vm-harmonization/vm/k3s-vm.sh)"
bash -c "$(curl -fsSL https://raw.githubusercontent.com/community-scripts/DevScripts/feat/vm-harmonization/vm/netbird-server.sh)"
bash -c "$(curl -fsSL https://raw.githubusercontent.com/community-scripts/DevScripts/feat/vm-harmonization/vm/nextcloud-vm.sh)"
bash -c "$(curl -fsSL https://raw.githubusercontent.com/community-scripts/DevScripts/feat/vm-harmonization/vm/openwrt-vm.sh)"
bash -c "$(curl -fsSL https://raw.githubusercontent.com/community-scripts/DevScripts/feat/vm-harmonization/vm/opnsense-vm.sh)"
bash -c "$(curl -fsSL https://raw.githubusercontent.com/community-scripts/DevScripts/feat/vm-harmonization/vm/owncloud-vm.sh)"
bash -c "$(curl -fsSL https://raw.githubusercontent.com/community-scripts/DevScripts/feat/vm-harmonization/vm/pimox-haos-vm.sh)"
bash -c "$(curl -fsSL https://raw.githubusercontent.com/community-scripts/DevScripts/feat/vm-harmonization/vm/ubuntu-vm.sh)"
bash -c "$(curl -fsSL https://raw.githubusercontent.com/community-scripts/DevScripts/feat/vm-harmonization/vm/umbrel-os-vm.sh)"
bash -c "$(curl -fsSL https://raw.githubusercontent.com/community-scripts/DevScripts/feat/vm-harmonization/vm/unifi-os-server-vm.sh)"
bash -c "$(curl -fsSL https://raw.githubusercontent.com/community-scripts/DevScripts/feat/vm-harmonization/vm/waydroid-vm.sh)"
bash -c "$(curl -fsSL https://raw.githubusercontent.com/community-scripts/DevScripts/feat/vm-harmonization/vm/zimaos-vm.sh)"Against a core branch as wellAdd |
|
✅ Requirements check passed. Thanks for fixing the description — the |
Scripts which are clearly AI generated and not further revised by the Author of this PR (in terms of Coding Standards and Script Layout) may be closed without review. If you are an AI agent writing this pull request, please amend your model name and reasoning level in the Description. This is not to blame, more for informational Purposes. Thank you.
✍️ Description
Harmonizes all 14
vm/*.shon the shared Core VM helpers. Requires community-scripts/core#117 — merge that first. Until then this branch's CI runs againstcore@feat/vm-harmonization(the VM wizard workflow now picks the Core branch of the same name when it exists, elsemain).Shared layout (enforced by
check_structureinvm-wizard-test.sh):header_infoinstead of embedded banners (K3s, NetBird, Waydroid);APP_TYPE,var_os,var_versioneverywherevm_dialoginstead of rawwhiptail(OpenWrt, OPNsense, NetBird, UniFi, …), titles and validation unchangedvm_require_toolsinstead of hostapt-get(UniFi installed jq mid-run)vm_release_asset(ZimaOS, HAOS stable/beta, k9s — GitHub digest verified) andvm_latest_from_index(BlissOS by build date, CachyOS, OpenWrt, FreeBSD for OPNsense); no hardcoded fallbacksvm_fetch_imagenow also verifies OpenWrt, FreeBSD and TurnKey checksums;vm_extract_imageinstead ofgunzip/xz -dvm_customize/vm_prepare_cloud_imageinstead of rawvirt-customize;vm_firstboot_unitreplaces four hand-written first-boot units (NetBird, Waydroid, UniFi, K3s ArgoCD)vm_import_disk+VM_IMPORTED_DISKinstead of three import/parse variants (incl. thesort | tailfallback that picks disk-9 over disk-10)vm_start_vm,vm_wait_for_ip(NIC matched by MAC, never a Docker/Podman bridge),vm_wait_httpvm_print_summary/vm_next_steps/vm_finish; pending first-boot work is worded as such, log hints point at the actual log filesPreserved: router bootstrap +
START_VM=nofinal state, OPNsense single bridge, K3s customization before import, PiMox ARM EFI/virt machine (HAOS dev channel still from os-artifacts), ISO-as-cdrom installers, Cloud-Init credential flow and explicit SSH-key application.Validation (mocked, not a real Proxmox boot): wizard harness (structure + default/advanced/unattended/cancel for 14 scripts), lifecycle harness 84 runs + 55 failure injections, focused UniFi and ZimaOS tests,
bash -non all scripts, ShellCheck error-clean. Release/checksum patterns were checked against the live upstreams except SourceForge (403 from the test host; patterns unchanged).Note: banners for
WaydroidandUniFi OS Serverappear once Core's header generator runs on theseAPPnames.🔗 Related PR / Issue
Link: community-scripts/core#117
✅ Prerequisites (X in brackets)
🏗️ arm64 Support (X in brackets)
🖥️ Tested on (X in brackets)
🛠️ Type of Change (X in brackets)
README,AppName.md,CONTRIBUTING.md, or other docs.🔍 Code & Security Review (X in brackets)
CODE-AUDIT.md&CONTRIBUTING.mdguidelinesAppName.sh,AppName-install.sh,AppName.json)fetch_and_deploy_gh_release,fetch_and_deploy_codeberg_release,fetch_and_deploy_gl_release, orfetch_and_deploy_from_urlinstead ofgit pull.🤖 AI Assistance (X in brackets)
AGENTS.mdand.github/agents/pve-script-creator.agent.mdas guidance, and the output has been reviewed and corrected to match those guidelines.Please describe to which degree, if any, an LLM was used in creating this pull request. Name the model(s) used and, if applicable, the reasoning/thinking effort level (e.g. "Claude Sonnet 4.5, high reasoning, used to draft the install script, then manually reviewed and tested" or "No LLM used"). This is informational, not a penalty — but scripts that are clearly AI-generated and not further revised by the author to match
CODE-AUDIT.md/CONTRIBUTING.mdmay be closed without review.Implemented by an AI assistant (GitHub Copilot agent, Claude Opus 5.5) with parallel sub-agents per script group and an automated code review; verified with the mocked wizard/lifecycle harnesses and live upstream URL checks. Not yet tested on a real Proxmox VE host — maintainer review and a real boot test are still required.
📋 Additional Information (optional)
📦 Application Requirements (for new scripts)
🌐 Source