mirror of
https://github.com/community-scripts/ProxmoxVE.git
synced 2026-04-25 01:06:06 +03:00
[PR #9540] [MERGED] Three-tier defaults system | security improvements | error_handler | improved logging | improved container creation | improved architecture #8097
Closed
opened 2026-02-26 16:31:47 +03:00 by kerem
·
0 comments
No Branch/Tag specified
main
github-action-update-changelog
pr-update-app-files
add-script-fireshare-1777034879
refactor_ghostfolio
add-script-jitsi-meet-1776754982
add-script-apprise-api-1776844606
add-script-transmute-1776844620
fix/update-motd-profile-terminal-500
revert-13797-phs-verbose
revert-13951-hotfix_core_motd
fix/node-options-auto-heap-termix
fix/twingate-connector-real-update
fix/mealie-startsh-missing-after-failed-update
fix/setup-nodejs-upgrade-minor-patch
hotfix_core_motd
fix/uv-venv-clear-update-scripts
add-script-ownfoil-1776758482
add-script-mini-qr-1776757900
add-script-dashy-1776446840
add-script-erpnext-1776807942
add-script-minthcm-1776758021
add-script-anchor-1776753635
add-script-foldergram-1776755549
add-script-gogs-1776754912
copilot/fix-homelable-installation-error
add-script-whodb-1776695185
fix/lxc-stack-upgrade-and-storage-validation
fix/node-version-drift
fix/pangolin-migration-user-roles
fix/pmg-post-install-detection
fix/pangolin-safe-migration
fix/wanderer-pocketbase-wrapper
fix/slskd-config-migration
fix-actualbudget-warnings
add-script-nametag-1776613576
github-action-archive-changelog
fix/litellm-prisma-generate
fix/clean-orphaned-lvm-cluster-aware
fix/babybuddy-django-settings-module
fix/yamtrack-nginx-update-config
add-script-dagu-1776530655
fix/intel-igc-version-pinning
fix/build-func-pct-create-audit
add-script-igotify-1776263238
add-script-step-ca-1776263572
cleanup_docs_and_co
add-script-github-runner-1776088530
revert-13570-remove_unused_scripts
fix/lyrion-service-name
fix/mealie-v3.15-nuxt4
fix/reitti-v4-refactor
copilot/fix-mealie-version-update
copilot/fix-git-command-not-found
fix/slskd-soularr-lockfile
fix/build-func-tmpdir-leak
refactor/bytestash-data-backup
copilot/fix-bambuddy-update-issue
MickLesk-patch-2
fix/ironclaw-keychain
fix/alpine-wakapi-busybox-df
fix/bentopdf-wasm-coep-headers
fix/crafty-controller-creds-wait
feat/elementsynapse-element-call
fix/metube-pnpm-builds
fix/romm-dynamic-base-path
fix/immich-env-newline
copilot/fix-homarr-update-script
fix/github-token-attempt-zero-crash
fix/filebrowser-quantum-host-warning
fix/homarr-redis-bind-localhost
CrazyWolf13-patch-3
fix/dynamic-os-detection
fix/checkmk-release-security-suffix
fix/bambuddy-ffmpeg-updateable
fix/immich-helmet-csp
core_add_scriptsite_donation_url
add-script-ironclaw-1775649518
fix/proxmox-error-resilience
remove_unused_scripts
CrazyWolf13-patch-1
fix/papra-env-backup-fallback
CrazyWolf13-patch-2
add-script-homelable-1775421958
add-script-openthread-br-1775416012
fix/silent-return-instead-of-exit
fix/nvidia-glx-fallback
fix/npm-ensure-nginx-dirs
fix/motioneye-run-as-root
fix/grist-remove-ee
fix/openwrt-vm-shutdown
fix/core-func-profiled-sourcing
fix/crafty-controller-java25
fix/lxc-updater-apt-pager
fix/npm-openresty-user-config
add-script-netboot-xyz-1775157692
copilot/fix-zigbee2mqtt-update-error
feat/apt-proxy-url-support
fix/cron-updater-path
fix/grist-backup-empty-docs
fix/filebrowser-noauth
feat/core-hardening-proxmoxve
add-script-drawdb-1775060927
fix/build-func-empty-gateway
fix/graylog-max-map-count
fix/koillection-envlocal-newline
add-script-bambuddy-1774853250
MickLesk-patch-1
fix/immich-maintenance-mode-redis-error
fix/npm-unmask-openresty-on-migration
fix/ollama-intel-gpg-error-handling
add-script-yourls-1774732133
add-script-matter-server-1774638379
fix/dispatcharr-pg-port
cron_update_lxc
chore/immich-v2.6.3
add-script-geopulse-1774548387
cdn_improvements
add-script-birdnet-1774535320
fix/tools-func-exit-codes
fix/immich-update-db-hostname
update/frigate-0.17.1
fix/use-absolute-path-for-install
fix/pin-npm-version
shell_safe_fixes
remove_booklore
chore/update-url-community-scripts
komodov2
refactor/turnkey-modernize
add-script-nextexplorer-1774344421
add-script-homebrew-1774342032
fix/shell-security-hardening-v2
improve/build-func-performance-cleanup
fix/build-dns-prefix
fix/anytype-mongodb-wait
fix/frigate-cpu-model-path
copilot/fix-installation-failure-isponsorblocktv
fix/reactive-resume-add-git
copilot/scanopy-fix-apt-configuration-error
add-script-isponsorblocktv-1774009652
add-script-alpine-wakapi-1774008954
fix/coder-code-server-existing-config-and-reachability
add-script-teleport-1773928044
CrazyWolf13-patch-wealthfolio-1
refactor/tools-func-qol
fix/stirling-pdf-jdk-reinstall
fix/pinned-version-wording
MickLesk-patch-10
fix/reactive-resume-v5013
fix/tracearr-update-version-oom
copilot/fix-hdd-space-for-owncast
tremor021-patch-6
pocketbase_bot
disp_fix
fix/tdarr-binary-check-curl-retry
MickLesk-patch-9
refactor/podman-quadlets
alpine-ntfy
refactor/jellyfin
CrazyWolf13-patch-11
feature/autousermod_hwaccell
add-script-split-pro-1773677692
fix/frigate-openvino-fallback
fix/paperless-ngx-default-ram
fix/plex-restart-after-update
fix/gluetun-openvpn-env
MickLesk-patch-8
termix_add_guacd
MickLesk-patch-7
fix/tududi-nodejs-in-update
fix/sparkyfitness-npm-peer-deps
docs/website-metadata-workflow
fix-pbs_microcode
remove_jsons
michelroegl-brunner-patch-4
add-script-test-1773325265
cleanup_workflows
feat/remove-frontend
automated/update-github-versions
feat/mode-generated
fix/n8n-build-essential
fix/sparkyfitness-shared-deps
fix/rocm-path-escaping
fix/storage-validation-cross-node
fix/frigate-nvidia-version-regex
arm64-build-support
readme
michelroegl-brunner-patch-3
fix/coder-code-server-backup
copilot/fix-immich-update-dependency-issue
rust
fix/linkwarden-update-playwright
fix/powerdns-sqlite-permissions
fix/duplicate-nameserver-searchdomain
CrazyWolf13-patch-7
feat/ollama-rocm-support
fix/seerr-migration-update-script
preflight_tests
adgu_fix
2026-04-23
2026-04-22
2026-04-21
2026-04-20
2026-04-19
2026-04-18
2026-04-17
2026-04-16
2026-04-15
2026-04-14
2026-04-13
2026-04-12
2026-04-11
2026-04-10
2026-04-09
2026-04-08
2026-04-07
2026-04-06
2026-04-05
2026-04-04
2026-04-03
2026-04-02
2026-04-01
2026-03-31
2026-03-30
2026-03-29
2026-03-28
2026-03-27
2026-03-26
2026-03-25
2026-03-24
2026-03-23
2026-03-22
2026-03-21
2026-03-20
2026-03-19
2026-03-18
2026-03-17
2026-03-16
2026-03-15
2026-03-14
2026-03-13
2026-03-12
2026-03-11
2026-03-10
2026-03-09
2026-03-08
2026-03-07
2026-03-06
2026-03-05
2026-03-04
2026-03-03
2026-03-02
2026-03-01
2026-02-28
2026-02-27
2026-02-26
2026-02-25
2026-02-24
2026-02-23
2026-02-22
2026-02-21
2026-02-20
2026-02-19
2026-02-18
2026-02-17
2026-02-16
2026-02-15
2026-02-14
2026-02-13
2026-02-12
2026-02-11
2026-02-10
2026-02-09
2026-02-08
2026-02-07
2026-02-06
2026-02-05
2026-02-04
2026-02-03
2026-02-02
2026-02-01
2026-01-31
2026-01-30
2026-01-29
2026-01-28
2026-01-27
2026-01-26
2026-01-25
2026-01-24
2026-01-23
2026-01-22
2026-01-21
2026-01-20
2026-01-19
2026-01-18
2026-01-17
2026-01-16
2026-01-15
2026-01-14
2026-01-13
2026-01-12
2026-01-11
2026-01-10
2026-01-09
2026-01-08
2026-01-07
2026-01-06
2026-01-05
2026-01-04
2026-01-03
2026-01-02
2026-01-01
2025-12-31
2025-12-30
2025-12-29
2025-12-28
2025-12-27
2025-12-26
2025-12-25
2025-12-24
2025-12-23
2025-12-22
2025-12-21
2025-12-20
2025-12-19
2025-12-18
2025-12-17
2025-12-16
2025-12-15
2025-12-14
2025-12-13
2025-12-12
2025-12-11
2025-12-10
2025-12-09
2025-12-08
2025-12-07
2025-12-06
2025-12-05
2025-12-04
2025-12-03
2025-12-02
2025-12-01
2025-11-30
2025-11-29
2025-11-28
2025-11-27
2025-11-26
2025-11-25
2025-11-24
2025-11-23
2025-11-22
2025-11-21
2025-11-20
2025-11-19
2025-11-18
2025-11-17
2025-11-16
2025-11-15
2025-11-14
2025-11-13
2025-11-12
2025-11-11
2025-11-10
2025-11-09
2025-11-08
2025-11-07
2025-11-06
2025-11-05
2025-11-04
2025-11-03
2025-11-02
2025-11-01
2025-10-31
2025-10-30
2025-10-29
2025-10-28
2025-10-27
2025-10-26
2025-10-25
2025-10-24
2025-10-23
2025-10-22
2025-10-21
2025-10-20
2025-10-19
2025-10-18
2025-10-17
2025-10-16
2025-10-15
2025-10-14
2025-10-13
2025-10-12
2025-10-11
2025-10-10
2025-10-09
2025-10-08
2025-10-07
2025-10-06
2025-10-05
2025-10-04
2025-10-03
2025-10-02
2025-10-01
2025-09-30
2025-09-29
2025-09-28
2025-09-27
2025-09-26
2025-09-25
2025-09-24
2025-09-23
2025-09-22
2025-09-21
2025-09-20
2025-09-19
2025-09-18
2025-09-17
2025-09-16
2025-09-15
2025-09-14
2025-09-13
2025-09-12
2025-09-11
2025-09-10
2025-09-09
2025-09-08
2025-09-07
2025-09-06
2025-09-05
2025-09-04
2025-09-03
2025-09-02
2025-09-01
2025-08-31
2025-08-30
2025-08-29
2025-08-28
2025-08-27
2025-08-26
2025-08-25
2025-08-24
2025-08-23
2025-08-22
2025-08-21
2025-08-20
2025-08-19
2025-08-18
2025-08-17
2025-08-16
2025-08-15
2025-08-14
2025-08-13
2025-08-12
2025-08-11
2025-08-10
2025-08-09
2025-08-08
2025-08-07
2025-08-06
2025-08-05
2025-08-04
2025-08-03
2025-08-02
2025-08-01
2025-07-31
2025-07-30
2025-07-29
2025-07-28
2025-07-27
2025-07-26
2025-07-25
2025-07-24
2025-07-23
2025-07-22
2025-07-21
2025-07-20
2025-07-19
2025-07-18
2025-07-17
2025-07-16
2025-07-15
2025-07-14
2025-07-11
2025-07-10
2025-07-09
2025-07-08
2025-07-07
2025-07-06
2025-07-05
2025-07-04
2025-07-03
2025-07-02
2025-07-01
2025-06-30
2025-06-29
2025-06-28
2025-06-27
2025-06-26
2025-06-25
2025-06-24
2025-06-23
2025-06-22
2025-06-21
2025-06-20
2025-06-19
2025-06-18
2025-06-17
2025-06-16
2025-06-15
2025-06-14
2025-06-13
2025-06-12
2025-06-11
2025-06-10
2025-06-09
2025-06-08
2025-06-07
2025-06-06
2025-06-05
2025-06-04
2025-06-03
2025-06-02
2025-06-01
2025-05-31
2025-05-30
2025-05-29
2025-05-28
2025-05-27
2025-05-26
2025-05-25
2025-05-24
2025-05-23
2025-05-22
2025-05-21
2025-05-20
2025-05-19
2025-05-18
2025-05-17
2025-05-16
2025-05-15
2025-05-14
2025-05-13
2025-05-12
2025-05-11
2025-05-10
2025-05-09
2025-05-08
2025-05-07
2025-05-06
2025-05-05
2025-05-04
2025-05-03
2025-05-02
2025-05-01
2025-04-30
2025-04-29
2025-04-28
2025-04-27
2025-04-26
2025-04-25
2025-04-24
2025-04-23
2025-04-22
2025-04-20
2025-04-21
2025-04-19
2025-04-18
2025-04-17
2025-04-15
2025-04-16
2025-04-14
2025-04-13
2025-04-12
2025-04-11
2025-04-10
2025-04-09
2025-04-08
2025-04-07
2025-04-06
2025-04-05
2025-04-04
2025-04-03
2025-04-02
2025-04-01
2025-03-31
2025-03-30
2025-03-29
2025-03-28
2025-03-27
2025-03-26
2025-03-25
2025-03-24
2025-03-23
2025-03-22
2025-03-21
2025-03-20
2025-03-19
2025-03-18
2025-03-17
2025-03-16
2025-03-15
2025-03-14
2025-03-13
2025-03-12
2025-03-11
2025-03-10
2025-03-09
2025-03-08
2025-03-07
2025-03-06
2025-03-05
2025-03-04
2025-03-03
2025-03-02
2025-03-01
2025-02-28
2025-02-27
2025-02-26
2025-02-25
2025-02-24
2025-02-23
2025-02-21
2025-02-20
2025-02-19
2025-02-18
2025-02-17
2025-02-16
2025-02-15
2025-02-14
2025-02-13
2025-02-12
2025-02-11
2025-02-10
2025-02-09
2025-02-08
2025-02-07
2025-02-06
2025-02-05
2025-02-04
2025-02-03
2025-02-02
2025-02-01
2025-01-31
2025-01-30
2025-01-29
2025-01-28
2025-01-27
2025-01-26
2025-01-24
2025-01-23
2025-01-22
2025-01-21
2025-01-20
2025-01-19
2025-01-18
2025-01-17
2025-01-16
2025-01-15
2025-01-14
2025-01-13
2025-01-11
2025-01-10
2025-01-09
2025-01-08
2025-01-07
2025-01-06
2025-01-05
2025-01-04
2025-01-03
2025-01-02
2025-01-01
2024-12-31
2024-12-30
2024-12-29
2024-12-28
2024-12-27
2024-12-26
2024-12-25
2024-12-23
2024-12-21
2024-12-20
2024-12-19
2024-12-18
2024-12-17
2024-12-16
2024-12-13
2024-12-12
2024-12-09
2024-12-08
2024-12-07
2024-12-06
2024-12-05
2024-12-04
2024-12-03
2024-12-02
2024-11-30
2024-11-29
2024-11-28
2024-11-27
2024-11-26
2024-11-25
2024-11-24
2024-11-23
Labels
Clear labels
Mirrored from GitHub Pull Request
Implemented in VED waiting push to Main
automated
breaking change
bug
bug
bugfix
deferred
delete script
dependencies
enhancement
external
feature
github
help wanted
in project pipeline
invalid
investigation
json
maintenance
needs triage
new script
new script
nice to have
not a script issue
not planned
organization
pull-request
Mirrored from GitHub Pull Request
question
refactor
rename script
security
telemetry
update script
website
wontdo
🛑 Failure to comply with the guidelines
No labels
Implemented in VED waiting push to Main
automated
breaking change
bug
bug
bugfix
deferred
delete script
dependencies
enhancement
external
feature
github
help wanted
in project pipeline
invalid
investigation
json
maintenance
needs triage
new script
new script
nice to have
not a script issue
not planned
organization
pull-request
question
refactor
rename script
security
telemetry
update script
website
wontdo
🛑 Failure to comply with the guidelines
Milestone
Clear milestone
No items
No milestone
Projects
Clear projects
No items
No project
Assignees
Clear assignees
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".
No due date set.
Dependencies
No dependencies set.
Reference
starred/ProxmoxVE#8097
Loading…
Add table
Add a link
Reference in a new issue
No description provided.
Delete branch "%!s()"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
📋 Pull Request Information
Original PR: https://github.com/community-scripts/ProxmoxVE/pull/9540
Author: @MickLesk
Created: 12/1/2025
Status: ✅ Merged
Merged: 12/4/2025
Merged by: @MickLesk
Base:
main← Head:new_core📝 Commits (10+)
771c947Refactor Core46aa306Delete config-file.funcbdf578fUpdate install.func640edddRefactor stop_all_services function and variable namesc9abf01Refactor installation script and update copyrighte949db0Update install.func840347cUpdate license comment format in install.funcfd8d4b7Refactor IPv6 handling and enhance MOTD and SSH13acde2big core refactore049d59Enhance IPv6 configuration menu options📊 Changes
10 files changed (+5229 additions, -2287 deletions)
View changed files
📝
misc/alpine-install.func(+42 -21)➕
misc/alpine-tools.func(+507 -0)📝
misc/api.func(+197 -5)📝
misc/build.func(+3210 -886)➖
misc/config-file.func(+0 -699)📝
misc/core.func(+597 -159)➖
misc/create_lxc.sh(+0 -385)➕
misc/error_handler.func(+317 -0)📝
misc/install.func(+107 -36)📝
misc/tools.func(+252 -96)📄 Description
✍️ Description
The
/miscdirectory has undergone significant refactoring to improve maintainability, security, and functionality. This document tracks all changes, removed files, and new patterns.You can find several guides here:
Short Summary of Features
error_handler.funcwith stack traces & exit code explanationerror_handler.funcbuild.funcVAR_WHITELISTvalidationbuild.funcload_vars_file()withoutsource/eval- manual parsingbuild.func.varsfilesbuild.funcbuild.funccloud-init.funcwith IP validation & securitycloud-init.funcfind_host_ssh_keys()scans for available keysbuild.func/etc/sysctl.d/instead of/etc/sysctl.confinstall.funcbuild.func,install.funccore.funcbuild.funcbuild.funcFile Status Summary
api.funcbuild.funccloud-init.funccore.funcerror_handler.funcinstall.functools.funcconfig-file.funccreate_lxc.shMajor Changes in build.func
1. Configuration System Overhaul
❌ Removed
config-file.funcdependency: Old configuration file format no longer used✅ New System: Three-Tier Defaults Architecture
2. Variable Whitelisting System
A new security layer has been introduced to control which variables can be persisted:
Changes from Previous:
var_ctid(unique per container, cannot be shared)var_ipv6_static(static IPs are container-specific)3. Default Settings Management Functions
default_var_settings()/usr/local/community-scripts/default.varsget_app_defaults_path()/usr/local/community-scripts/defaults/<appname>.vars/usr/local/community-scripts/defaults/pihole.varsmaybe_offer_save_app_defaults()4. Load Variables File Function
load_vars_file().varsfilessourceorevalExample Usage:
5. Removed Functions
create_lxc()- Replaced by build.func workflowread_config()- Replaced by load_vars_file()write_config()- Replaced by direct file generation with sanitizationInstallation Modes & Workflows
Mode 1: Default Settings
Use Case: First-time users, basic deployments
Mode 2: Advanced Settings
Use Case: Custom configurations, experienced users
Mode 3: User Defaults
Use Case: Consistent deployments across multiple containers
Mode 4: App Defaults
Use Case: Repeat installations with saved configurations
Mode 5: Settings Menu
Use Case: Configuration management
Configurable Variables Reference
Resource Allocation
var_cpu4var_ram2048var_disk20var_unprivileged11Network Configuration
var_netvethvar_brgvmbr0vmbr100var_gateway192.168.1.1var_mtu15009000var_vlan100Identity & Access
var_hostnamemypiholevar_pwMySecurePass123!var_sshnoyesvar_ssh_authorized_keyssh-rsa AAAA...Container Features
var_fuse01var_tun01var_nesting01var_keyctl01var_mknod01var_mount_fsext4var_protection01System Configuration
var_timezoneEurope/Berlinvar_searchdomainexample.comvar_apt_cacherapt-cacher-ngvar_apt_cacher_ip192.168.1.100var_tagsdocker,productionvar_verbosenoyesStorage Configuration
var_container_storagelocalvar_template_storagelocalFile Formats
User Defaults:
/usr/local/community-scripts/default.varsApp Defaults:
/usr/local/community-scripts/defaults/<app>.varsUsage Examples
Example 1: Set Global User Defaults
/usr/local/community-scripts/default.varsFuture Installations: Select User Defaults mode to reuse settings
Example 2: Create & Use App Defaults
pihole-install.sh)/usr/local/community-scripts/defaults/pihole.varsNext Time:
pihole-install.shagain (bash -c "$(curl -fsSL https://raw.githubusercontent.com/community-scripts/ProxmoxVE/main/ct/pihole.sh)")Example 3: Override via Environment Variables
Priority: Environment variables override all defaults
Example 4: Manual File Editing
Security Improvements
1. No
sourceorevalUsedsource config_file(Dangerous - executes arbitrary code)load_vars_file()(Safe - manual parsing with validation)2. Variable Whitelisting
3. Value Sanitization
4. File Permissions
Migration Guide
For Users
OLD Workflow: Manual config file editing
NEW Workflow:
For Script Developers
OLD Pattern:
NEW Pattern:
Removed Components
config-file.func(Deprecated)Reason: Replaced by three-tier defaults system
Migration Path: Use app/user defaults system
create_lxc.sh(Deprecated)Reason: Workflow integrated into build.func
Migration Path: Use build.func directly
Future Enhancements
Planned Features
Troubleshooting
Issue: Defaults not loading
Solution:
Issue: Variable not being applied
Solution:
VAR_WHITELISTvar_=)catnotsourceto read filesIssue: "Invalid option" in defaults menu
Solution:
/usr/local/community-scripts/defaults/sudo mkdir -p /usr/local/community-scripts/defaults/Technical Reference
Variable Loading Precedence
State Machine: Installation Modes
🔗 Related PR / Issue
Link: #7438 #7000 #6270 #6234 #9516
✅ Prerequisites (X in brackets)
🛠️ Type of Change (X in brackets)
README,AppName.md,CONTRIBUTING.md, or other docs.🔄 This issue represents a GitHub Pull Request. It cannot be merged through Gitea due to API limitations.