This repository is the engine, not the scripts. It holds the Bash libraries that application scripts source at start-up: the wizard, container and VM creation, the in-container installer, error handling, telemetry and the helper library used by install scripts.
Nothing here is run directly. A script in
ProxmoxVE,
ProxmoxVED or
Incus sources
core/build.func as its first act, and everything else
follows from there.
| Folder | What it is | Page |
|---|---|---|
core/ |
Entry point, runtime, error handling, dev mode | core.md |
ui/ |
The whiptail wizard | ui.md |
lib/ |
Helper library that install scripts call | lib.md |
lxc/ |
What runs inside the container | lxc.md |
host/ |
Checks and helpers that run on the host | host.md |
api/ |
Telemetry reporting | api.md |
vm/ |
Cloud-init generation for VMs | vm.md |
pve/, incus/ |
The two platform backends | backends.md |
headers/ |
Generated figlet banners | headers.md |
tools/ |
run.sh, the fork and branch runner |
loading.md |
images/ |
Logos used in container MOTD and VM output | — |
loading.md is the one to read first if you are changing anything structural. It covers how the engine and the script repositories resolve independently, what the two roots are, how a local checkout or a fork takes over, and how the engine is prefetched in a single round trip.
dev-mode.md covers the opt-in debugging flags.
testing-builds.md covers var_testurl — how a script under
test asks for feedback, and what it changes.
contributing.md covers the rules that CI enforces — where a
new file goes, which files are loaders, and when an API.txt has to be
regenerated.
proxmoxve-migration.md tracks what stands between this engine and ProxmoxVE, which has not moved over yet.
| File | Purpose |
|---|---|
core/build.func |
Entry point: resolves both roots, prefetches the engine, dispatches to a platform backend |
core/core.func |
Colours, icons, msg_*, spinner, silent(), logging, prompts |
core/error_handler.func |
catch_errors, the ERR trap, signal handlers, container failure artifacts |
core/dev-mode.func |
Opt-in developer flags, timing and tracing |
ui/build-ui.func |
Wizard entry point; sources the four parts below |
ui/validate.func |
Container ID, hostname, network and IP-range validators |
ui/defaults.func |
Storage selection, .vars files, app defaults |
ui/advanced.func |
The advanced settings wizard |
ui/menu.func |
start, install_script, settings and diagnostics menus |
lib/tools.func |
Helper library entry point; sources the five parts below |
lib/system.func |
Packages, repositories, OS probes, services, temp files |
lib/forge.func |
Releases, tags and branches from GitHub, GitLab and Codeberg |
lib/runtime.func |
Language runtimes and application installers |
lib/db.func |
Databases and search engines |
lib/hwaccel.func |
GPU detection and hardware acceleration |
lib/alpine.func |
The Alpine helper library, loaded instead of the above |
lxc/install.func |
In-container bootstrap, multi-distro |
lxc/alpine-install.func |
In-container bootstrap for Alpine |
lxc/platform.func |
Proxmox VE / Incus / in-container detection |
host/preflight.func |
Optional host readiness checks, off by default |
host/validate.func |
MAC, VLAN and MTU checks shared by both platforms |
host/source-origin.func |
Git remote to raw content base |
api/api.func |
Telemetry entry point; sources the four parts below |
api/exitcodes.func |
The exit code table |
api/errorlog.func |
Error capture and log selection |
api/sysinfo.func |
Host and container facts, origin detection |
api/telemetry.func |
Payload assembly and delivery |
vm/cloud-init.func |
Cloud-init configuration for VMs |
pve/backend.func |
Container creation via pct |
pve/vm-core.func |
VM creation via qm |
pve/vm-app.func |
Running LXC applications inside a VM |
incus/build.func |
Incus entry hooks over the shared wizard |
incus/backend.func |
Container creation via the incus CLI |
incus/core.func |
Incus messaging and compatibility layer |
incus/tools.func |
Incus-side helper wrappers |
incus/vm-core.func |
VM creation on Incus |