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,
DevScripts 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 |
misc/ |
The update helper an installed app calls |
updates.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 | — |
images/logo.png is the 512px CS Amber mark shared with
the frontend and services. images/logo-81x112.png
contains the same square mark on a transparent 81x112 canvas, preserving its
aspect ratio and the existing README, LXC and VM description URLs and dimensions.
New Proxmox LXC and VM descriptions use
images/logo-description.png: the transparent
CS mark above the Community-Scripts wordmark, displayed at 192x112 CSS pixels.
Its 576x336 PNG provides 3x resolution for HiDPI displays.
images/logo-description.svg is the vector
source, with the frontend's Manrope Bold wordmark converted to paths so no font
download or installed font is required. A fine charcoal outline preserves
contrast on light backgrounds without adding a tile.
Render the SVG at 3x its declared dimensions when updating the PNG.
The previous marks are archived as
images/old_logo.png and
images/old_logo-81x112.png. Keep the active
filenames stable so existing descriptions pick up the new branding without
being regenerated after these assets are published. Existing descriptions keep
their original image URL; regenerate a description to use the new wordmark.
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.
updates.md covers what happens when a user runs update inside a
container — the entrypoint, the website lookup and the two guards that can stop
an update before it starts.
| 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, every distro including Alpine |
lxc/platform.func |
Proxmox VE / Incus / in-container detection, and the writable state directory |
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 |
vm/common.func |
Backend-independent VM script helpers (tools, releases, checksums, first boot, summary) |
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 |
misc/update.sh |
The update helper: decides whether an app can still be updated before pulling anything |