Skip to content

Latest commit

 

History

History
116 lines (100 loc) · 7.34 KB

README.md

File metadata and controls

116 lines (100 loc) · 7.34 KB

core — documentation

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.

Where things are

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 —

Brand images

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.

How it fits together

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.

Every file

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