Commit Graph

713 Commits

Author SHA1 Message Date
CanbiZ (MickLesk)
0f3a8c8406 Improve apt-get retry and mirror fallback
Add robust retry logic for APT operations in misc/build.func and misc/install.func. Introduces an apt_retry helper and multiple fallback steps: disable by-hash, switch to a country mirror (ftp.de.debian.org), wait and retry to allow mirror sync, and as a last resort temporarily relax APT verification to allow insecure repositories to complete updates. Ensures cleanup and restores secure settings where possible, with clearer failure handling and messages to increase resilience of package installation during container builds and installs.
2026-03-26 13:48:56 +01:00
CanbiZ (MickLesk)
66cd1fb05a Add APT by-hash bypass and mirror fallback
Improve APT retry logic to handle failures caused by by-hash/CDN issues. Both misc/build.func and misc/install.func now write an apt config to disable Acquire::By-Hash, remove /var/lib/apt/lists/* and retry apt-get update/install; if that still fails they substitute deb.debian.org with ftp.debian.org as a fallback. This makes container builds and package updates more robust against CDN/hash-related apt failures.
2026-03-26 13:33:58 +01:00
CanbiZ (MickLesk)
6614b65bc1 magicdns 2026-03-26 13:19:14 +01:00
CanbiZ (MickLesk)
785a215a50 base packages dns 2026-03-26 13:18:52 +01:00
MickLesk
96fc169f4b fix(build): prevent error handler crash from pipefail on grep
The missing_cmd grep pipeline in the install error handler runs
under set -o pipefail. When grep finds no match (exit 1), the
entire pipeline fails and triggers the ERR trap recursively,
crashing the recovery menu. Add || true to suppress this.
2026-03-21 19:16:33 +01:00
CanbiZ (MickLesk)
7ab160ff75 gitea sync 2026-03-18 14:58:47 +01:00
CanbiZ (MickLesk)
aaaf18de91 switch urls back to github (due slow gitea syncs) 2026-03-18 14:47:29 +01:00
CanbiZ (MickLesk)
fdc30949e3 feat(preflight): add enterprise repo subscription check
- New preflight_repo_access() warns if enterprise repos are active without subscription
- Scans /etc/apt/sources.list.d/ for enterprise.proxmox.com entries
- Tests HTTP access (detects 401/403 Unauthorized)
- Warning only — not a blocker (packages come from pve-no-subscription repo)
2026-03-03 14:42:59 +01:00
CanbiZ (MickLesk)
d242100531 refactor(preflight): move to install_script, clean UX flow
- Move run_preflight from build_container() into install_script() after header_info
- Shows: Header → preflight checks → 2s pause → clear (via next header_info call)
- On failure: show summary + exit cleanly (no ERR trap)
- Change all return 1 → return 0 in preflight functions (prevents ERR trap under set -Ee)
- Remove PREFLIGHT_DONE guard from build_container (no longer needed)
2026-03-03 14:10:03 +01:00
CanbiZ (MickLesk)
4254e15bba Update build.func 2026-03-03 14:06:26 +01:00
CanbiZ (MickLesk)
c35cfb59fb Update build.func 2026-03-03 13:51:20 +01:00
CanbiZ (MickLesk)
e29561e401 Update build.func 2026-03-03 13:40:40 +01:00
CanbiZ (MickLesk)
1ae3275248 Add template availability preflight check
Introduce preflight_template_available() in misc/build.func to verify a matching OS/version template exists locally or in the online pveam catalog, and to fail early with a helpful list of available versions when none is found (exit code 225). Integrate this check into run_preflight. Also move the run_preflight invocation inside install_script to run after header_info (so preflight output is visible) and remove the earlier preflight call.
2026-03-03 13:36:02 +01:00
CanbiZ (MickLesk)
ed0e6ed49c linting 2026-03-03 13:30:25 +01:00
CanbiZ (MickLesk)
f0c4843784 preflight dev 2026-03-03 13:27:42 +01:00
CanbiZ (MickLesk)
80cc18f9e1 Revert "[Linting] misc/build.func (first pass)" 2026-03-02 15:32:35 +01:00
CanbiZ (MickLesk)
c29b00c97e Merge branch 'main' into lint-build-func 2026-03-02 15:02:31 +01:00
CanbiZ (MickLesk)
d16008181d merge build.func 2026-02-24 09:47:12 +01:00
MickLesk
4b9121f41c feat: add configurable COMMUNITY_SCRIPTS_URL for dev sourcing (#1449)
- Replace all hardcoded source URLs with $COMMUNITY_SCRIPTS_URL variable
- Default: https://git.community-scripts.org/.../ProxmoxVED/raw/branch/main
- Override: export COMMUNITY_SCRIPTS_URL=https://.../your-fork/raw/branch/xyz
- Propagates into container via build.func exports
- Updated: 43 ct scripts, 14 deferred, 22 vm scripts, 5 func files
- Document in docs/DEV_MODE.md with usage examples
- Also normalizes legacy GitHub URLs to Gitea canonical URL
2026-02-22 14:36:31 +01:00
justin
a9188982ac Remove FUNCTIONS_FILE_PATH quotes 2026-02-14 12:30:27 -05:00
justin
bb4f7c17de $PCT_OPTIONS needs to be unquoted for now 2026-02-14 12:30:27 -05:00
justin
7ebfc41eab Co-Author 2026-02-14 12:30:27 -05:00
justin
c23e0086c4 Revert "Extract pct create cmd to var & call with command"
This reverts commit ec10ea87475e044183fd96635fa3734fba9d7a96.
2026-02-14 12:30:26 -05:00
justin
9b15034ddd Extract pct create cmd to var & call with command 2026-02-14 12:30:26 -05:00
justin
9a0a712dab Linting build.func first pass 2026-02-14 12:30:26 -05:00
CanbiZ (MickLesk)
82de09f19f fix: remove debug output, add duration tracking, cleanup duplicate log messages 2026-02-10 14:29:28 +01:00
CanbiZ (MickLesk)
c60ff2ae75 Update build.func 2026-02-10 14:18:42 +01:00
CanbiZ (MickLesk)
2c0c72b0e5 unified logging 2026-02-10 13:59:35 +01:00
Tobias
4cd72cc2ec Add APPLICATION_VERSION export to build function 2026-02-10 08:08:24 +01:00
CanbiZ (MickLesk)
5aa85ace6a Add telemetry debug/logging and failure report
Enhance post_update_to_api robustness and observability: add debug traces for entry, missing curl, duplicate submissions, DIAGNOSTICS/RANDOM_UUID checks, payload/URL output, and HTTP response code capture; make curl non-blocking and tolerant of failures. Also invoke post_update_to_api on installation failure so build/install errors are reported to telemetry. Includes a small comment glyph fix in build.func. Changes keep telemetry as a silent, best-effort path that won't break script execution.
2026-02-09 16:53:25 +01:00
CanbiZ (MickLesk)
ce375b02aa Refactor telemetry checks, relax method validation
Reformat telemetry pre-checks in misc/api.func for clearer multi-line condition handling and remove stray whitespace around the curl response logging. Tweak misc/build.func comment line (minor encoding/visual cleanup). In misc/data/service.go remove the strict allowedMethod map and its validation so the 'method' field is treated as optional/flexible; keep sanitization and numeric validations unchanged. These changes improve readability and allow custom method values without breaking behavior.
2026-02-09 16:51:51 +01:00
CanbiZ (MickLesk)
bcc6bb9f5f Update build.func 2026-02-09 16:46:25 +01:00
CanbiZ (MickLesk)
fafdf88e6a Update build.func 2026-02-09 16:12:35 +01:00
CanbiZ (MickLesk)
820d4551a1 Replace Go API with PocketBase; update docs
Remove the old Go/Mongo API (api/main.go, go.mod, go.sum, .env.example) and switch telemetry backend to PocketBase (http://db.community-scripts.org). Update documentation and flowcharts to reflect the PocketBase collection (_dev_telemetry_data), new REST endpoints (POST/PATCH/GET), field schema, and revised api.func integration (LXC/VM reporting and status updates). Misc scripts and helpers were adjusted (misc/api.func, misc/build.func, misc/error_handler.func) and a new misc/ingest.go was added. This consolidates telemetry to a hosted PocketBase instance and updates docs and integration points accordingly.
2026-02-09 15:34:17 +01:00
Finn Joshua Bartels
3232665b92 feat(core): dev mode configurator menu
- Implement interactive Whiptail checklist for dev_mode configuration
- Add logic to read and pre-populate menu from existing dev_mode enviorment var
2026-02-09 11:49:02 +01:00
CanbiZ (MickLesk)
dc5c1d3ef0 Improve locale setup and database user privileges
Add command to grant superuser, createrole, and createdb privileges to the postgres user during Databasus installation. Enhance LXC container customization by installing locales for Devuan templates and only configuring locale if locale.gen exists, improving compatibility with minimal templates.
2026-01-30 09:47:38 +01:00
justin
000a7a2701 Fix Error check and error message style 2026-01-29 10:21:41 +01:00
justin
8c4f1ce531 Make check_container_storage() POSIX compliant 2026-01-29 10:21:41 +01:00
CanbiZ (MickLesk)
293a5a8340 test 2026-01-28 14:59:32 +01:00
CanbiZ (MickLesk)
a6134095d4 fix: correct if/fi nesting in template selection blocks 2026-01-27 13:45:38 +01:00
CanbiZ (MickLesk)
1bb32bbc94 fix syntax 2026-01-27 13:39:57 +01:00
CanbiZ (MickLesk)
a82d04982d Improve unattended mode detection and export MODE
Enhanced the is_unattended() function to prioritize the MODE variable for detecting unattended/non-interactive mode, with detailed handling for various modes and legacy fallbacks. Also, export MODE in build_container() to inform install scripts about the current mode. Updated APP name in forgejo-runner.sh for consistency.
2026-01-27 13:38:49 +01:00
CanbiZ (MickLesk)
310d0e54a6 Interactive Prompts 2026-01-27 13:26:31 +01:00
CanbiZ (MickLesk)
3b9ad58ce3 merge from Main 2026-01-27 10:08:34 +01:00
CanbiZ (MickLesk)
6f9a1965f9 Merge from VE 2026-01-27 09:29:22 +01:00
CanbiZ (MickLesk)
900200ec6d fix(build): correct storage size formatting bugs
- Fix select_storage(): use --from-unit=1024 instead of --from-unit=K
- Fix resolve_storage_preselect(): add missing --from-unit=1024
- pvesm outputs KiB (1024-byte blocks), not 1000-byte blocks
- Fixes incorrect MB display instead of GB
2026-01-22 10:49:47 +01:00
CanbiZ (MickLesk)
c2b890baa6 Improve validation and robustness in container scripts
Enhances timezone handling by mapping 'Etc/*' zones to 'host', adds stricter password validation (removing leading dashes and enforcing minimum length), and improves container ID validation. Adds storage space validation before container creation and when selecting storage. Implements retry logic and stale lock cleanup for template lock files to avoid stuck processes. Improves GitHub release fetching by adding a fallback to codeload.github.com for complex tag names.
2026-01-21 15:48:22 +01:00
CanbiZ (MickLesk)
eb4c45c9fe Big Merge -> build.func (VE) to VED Compared. 2026-01-21 14:44:57 +01:00
justin
9575fd7188 Make which & tar are installed for RHEL-based OSs 2026-01-18 15:45:22 -05:00
MickLesk
3d6a5f58b0 fix: Multiple distro issues from testing
Devuan:
- Fixed sed syntax error: replaced -E with BRE, removed invalid [^$] pattern
- Simplified regex patterns for inittab autologin matching

openEuler:
- Added template patching to inject /etc/redhat-release before pct create
- This fixes 'error in setup task PVE::LXC::Setup::post_create_hook'
- Reverted to unprivileged container (privileged not needed with patch)

openSUSE:
- Added --gpg-auto-import-keys to zypper to avoid interactive GPG prompts
- This was causing the 15+ minute hangs during package manager init

Gentoo:
- Changed to use emerge-webrsync (http) instead of emerge --sync (rsync)
- webrsync is significantly faster than full rsync sync
- Install curl FIRST before other packages (required for install.func)
- Better error handling with separate curl check

Rocky Linux DNS issue:
- Not a script bug - container network/DNS not working
- User should check container gateway and DNS settings
2026-01-12 21:58:15 +01:00