Commit Graph

175 Commits

Author SHA1 Message Date
CanbiZ (MickLesk)
937fd1cad4 Improve apt mirror logging and error messages
Standardize and clarify apt mirror diagnostics in misc/build.func and misc/install.func: update warning phrasing when apt-get update fails; change per-mirror failure messages from "Mirror X: <reason>" to "Mirror X failed (<reason>)"; change success messages to "CDN set to <mirror>: tests passed"; and add informational logs like "Attempting mirror: <mirror>" when trying alternate mirrors. These changes improve visibility into mirror selection and failure reasons during package update/installation.
2026-03-26 15:44:58 +01:00
CanbiZ (MickLesk)
5f25ce38b2 Report failing APT mirror on update failure
When apt-get update fails, capture and display the failing mirror host to aid debugging. Adds grep-based extraction of the upstream host (from /etc/apt/sources.list.d/debian.sources or /etc/apt/sources.list) with a fallback to "unknown", and includes the host in the warning/echo. Applied to misc/build.func (inside pct exec), misc/install.func (pkg_update), and tools/pve/update-lxcs-cron.sh.
2026-03-26 15:42:43 +01:00
CanbiZ (MickLesk)
92648bca13 Simplify mirror logs and use http for custom mirror
Reduce noisy mirror-related output and clarify messages across misc/build.func and misc/install.func. Reword various apt/mirror status lines (hash mismatch, SSL/certificate, apt-get update failed, package install failed) and standardize success to "Using mirror"/msg_ok. Remove verbose scan/try/skip/count logs and suppression of detailed apt output to make output cleaner for automated runs. Also change the custom_mirror sed replacement to use http:// instead of https:// to support non-HTTPS local mirrors.
2026-03-26 15:20:55 +01:00
CanbiZ (MickLesk)
f8ca562da6 Detect apt SSL errors and use http mirrors
Add explicit detection of SSL/certificate errors when running apt-get update and treat those mirrors as failed (logs a short SSL error snippet and returns failure). Change mirror URL rewrites to use http:// instead of https:// when substituting mirror hosts, and remove ftp.in.debian.org from the AP mirror lists. Changes applied to misc/build.func (try_mirrors) and misc/install.func (pkg_update/_try_apt_mirror) to improve mirror fallback behavior and error reporting.
2026-03-26 15:12:43 +01:00
CanbiZ (MickLesk)
cd1c412822 Try global mirrors first; add apt fallback
Reorder mirror probing in misc/build.func and misc/install.func to scan global (OTHERS) mirrors first and fall back to regional mirrors—pick up to 3 random reachable mirrors and try them. Rename related variables accordingly and keep the fallback logic intact. Update tools/pve/update-lxcs-cron.sh to define region-specific Debian mirror lists, detect container timezone to pick regional vs other mirrors, and implement a fallback loop that checks mirror connectivity, rewrites APT URIs to use a working mirror, and retries apt-get update before proceeding with dist-upgrade. These changes improve resilience against local CDN/local-regional outages by preferring globally reachable mirrors first and providing an automated mirror-switch fallback.
2026-03-26 14:52:03 +01:00
CanbiZ (MickLesk)
9db2169ee0 Improve apt mirror scanning and retry logic
Make APT mirror selection more robust by scanning for reachable mirrors and retrying installs with clearer failure reasons. In misc/build.func added mirror_exit, try_mirrors and scan_reachable helpers; prefer regional mirrors (pick up to 3), fall back to ftp.debian.org, then try global mirrors. Improved detection/reporting of hash mismatches vs apt-get errors and return codes, and use a short reachability TCP check before attempting updates. In misc/install.func added a reachable-mirror scan phase, count/report reachable mirrors, and provide clearer log messages when apt-get update/install fails. These changes aim to reduce failures caused by unreachable mirrors or CDN synchronization issues.
2026-03-26 14:46:27 +01:00
CanbiZ (MickLesk)
947a536351 Improve apt mirror selection and fallback
Refactor mirror logic in misc/build.func and misc/install.func to prefer regional Debian mirrors (detected from /etc/timezone), shuffle mirror lists, and include additional AP region hosts. Add quick TCP reachability checks, limit consecutive mirror failures, and surface clearer status messages. On repeated failures, prompt interactively for a custom mirror (with validation) and handle pct exec exit codes to present more informative errors and retry behavior.
2026-03-26 14:29:20 +01:00
CanbiZ (MickLesk)
76c79872e0 Fallback to alternate Debian mirrors on apt failure
When apt-get update fails, switch from disabling hash verification/insecure repos to trying a list of alternate Debian mirrors. Updated misc/build.func to iterate a curated mirror list, rewrite /etc/apt/sources.list* to point to each mirror, and attempt apt-get update/install until one succeeds (exiting with failure if all mirrors fail). Updated misc/install.func to perform a similar mirror-rotation loop and return an error if no mirror succeeds. Also adjusted warning/error messages to reflect the new behavior. This improves resilience against repo desyncs without enabling insecure apt settings.
2026-03-26 14:10:49 +01:00
CanbiZ (MickLesk)
6d213d511f Simplify APT retry logic and add insecure fallback
Replace the previous multi-step APT retry sequence (mirror swaps, sleeps, multiple retries) with a simpler fallback: on apt-get update failure disable Acquire::By-Hash, enable Acquire::AllowInsecureRepositories and attempt updates/installs using --allow-insecure-repositories/--allow-unauthenticated where needed. Restore secure settings and refresh lists afterwards, and preserve/propagate the original command exit status. Apply the same simplification in misc/build.func, misc/install.func and the Proxmox LXC cron updater (tools/pve/update-lxcs-cron.sh) to handle Debian repo desyncs more reliably and reduce complex retry logic.
2026-03-26 14:02:09 +01:00
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)
ee15572375 Update install.func 2026-03-26 13:11:13 +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
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
CanbiZ (MickLesk)
abb15a6ec8 devuan fixes 2026-01-30 10:21:55 +01:00
CanbiZ (MickLesk)
edac4a2293 Update install.func 2026-01-30 09:59:11 +01:00
CanbiZ (MickLesk)
eb4c45c9fe Big Merge -> build.func (VE) to VED Compared. 2026-01-21 14:44:57 +01:00
CanbiZ
82053c5b70 refactor rustypaste and add alpine-tools 2026-01-15 10:04:43 +01:00
CanbiZ
5e8d2565c4 cleanup
cleanup
2026-01-15 09:36:29 +01:00
MickLesk
46bb2db683 ui 2026-01-12 22:18:45 +01:00
MickLesk
82773d7b8b fix(devuan): Add console getty for LXC autologin
LXC containers use /dev/console, not tty1!
- pct console connects to /dev/console device
- Added explicit console entry in inittab for LXC
- tty1 autologin still works for direct access
- Fixes autologin not working in Devuan containers
2026-01-12 22:09:36 +01: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
MickLesk
b8afdab106 fix: Multi-distro LXC container fixes for autologin and package installation
- Rocky/AlmaLinux 10 (EL10): Version detection for DNF 5 with correct packages (langpacks-en instead of glibc-langpack-en), makecache refresh, fallback to minimal install
- openSUSE: Install ncurses-utils and terminfo-base, set TERM in /etc/profile.d and /etc/environment to fix 'unknown terminal type'
- Gentoo: Fixed template pattern to use underscore (-openrc_) instead of dash, special version handling
- openEuler: Set privileged container (var_unprivileged=0) to workaround PVE setup hook limitation
- Devuan: Enhanced sysvinit autologin with multiple inittab patterns, fallback console entry, telinit reload
- CentOS/all: Updated URLs from raw.githubusercontent.com to git.community-scripts.org
- General: Better error handling and removed duplicate code blocks
2026-01-12 21:34:58 +01:00
Tobias
c5786b9210 happ new year - well a bit late :D 2026-01-06 12:36:02 +01:00
MickLesk
92cbcd5132 fix: LXC distro compatibility issues
- Gentoo: Fix template pattern to match 'gentoo-current-openrc' naming
- openSUSE: Sanitize ANSI escape codes from MSG_INFO_SHOWN array keys
- Devuan: Use flexible runlevel matching for sysvinit autologin
- CentOS/RHEL: Add missing '-' before $TERM in agetty commands

Fixes reported issues:
- Gentoo template not found (wrong pattern '-current_')
- openSUSE 'not a valid identifier' error on msg_ok with color codes
- Devuan autologin failing due to strict runlevel pattern
- CentOS autologin improvements for LXC console
2025-12-24 14:27:38 +01:00
CanbiZ
4076b7e632 autologin 2025-12-08 15:15:42 +01:00
CanbiZ
f431d59f93 Improve update script generation for containers
The update script now uses the OS variable for OS-based containers instead of the app name, and the script source URL has been updated to use git.community-scripts.org. This ensures the correct update script is fetched for each container type.
2025-12-05 10:30:35 +01:00
CanbiZ
862f9bdb7e Update install.func 2025-12-04 16:12:05 +01:00
CanbiZ
a736445bcf Improve auto-login setup for LXC containers with systemd
Refines the configuration of getty services for auto-login in LXC containers. Adds explicit handling for console-getty.service (used in Fedora/RHEL) and container-getty@1.service (Debian/Ubuntu), ensuring proper override and enabling where necessary.
2025-12-04 15:48:06 +01:00
CanbiZ
f799a11348 Refactor auto-login setup for various init systems
Simplifies and improves auto-login configuration for systemd, openrc, and sysvinit. Removes unnecessary service reloads and restarts during installation, and directly modifies configuration files where appropriate.
2025-12-04 15:08:09 +01:00
CanbiZ
19a2d83c5a Unify install logic and cleanup LXC for all OS types
Refactored build.func to use a unified install.func for all supported OS types, simplifying OS detection and package installation. Added cleanup_lxc step to all install scripts. Removed support for runit, pacman, and nix-env from install.func, and improved SSH server installation logic for containers. Updated template pattern matching for additional OS types.
2025-12-04 15:00:10 +01:00
CanbiZ
19f3c6b67d Reindent functions to use consistent 2-space style
Changed all function bodies in misc/build.func to use 2-space indentation for improved readability and consistency. No logic changes were made; only whitespace and indentation were updated.
2025-12-04 14:41:02 +01:00
pshankinclarke
2a0ce9aaeb fix unbound IPV6_METHOD crash with 2025-12-02 21:40:50 -08:00
CanbiZ
9f36d3fac0 Add granular IPv6 disable option to setup scripts
Expanded IPv6 configuration in build.func to include a 'disable' option with clearer descriptions. Updated install.func to use IPV6_METHOD for disabling IPv6 via sysctl.d, improving clarity and control over IPv6 management.
2025-12-02 11:13:11 +01:00
CanbiZ
f8f95d4881 merge dev <> live 2025-12-02 10:23:26 +01:00
CanbiZ
894449182d Debugcontainer build options handling
Changed PCT_OPTIONS from an array to a string for proper export and compatibility with Proxmox pct. Features are now passed as a comma-separated string. Also updated install.func to use a literal heredoc for systemd override configuration.
2025-11-24 13:34:01 +01:00
CanbiZ
f32ab7876f Update install.func 2025-11-24 13:13:13 +01:00
CanbiZ
806bb715a9 Remove dev mode and log handling from build/install
Cleaned up dev mode and persistent log directory logic from build.func and install.func. Network connectivity status messages are now more direct, and unnecessary exports and re-parsing of dev_mode have been removed for clarity and maintainability.
2025-11-24 11:54:20 +01:00
CanbiZ
bea8814994 reverted 2025-11-24 11:42:00 +01:00
CanbiZ
e147c848bb Update install.func 2025-11-24 11:35:48 +01:00
CanbiZ
cb2c3fab96 Update install.func 2025-11-24 11:22:04 +01:00
CanbiZ
1f6034a15b Update install.func 2025-11-24 11:19:40 +01:00
CanbiZ
645b532e17 Update install.func 2025-11-24 10:43:32 +01:00
CanbiZ
3a4d938fac Update install.func 2025-11-24 10:28:56 +01:00
CanbiZ
d893df02aa Fix mealie-install.sh: use uv sync, add .env file, use uv run for systemd service 2025-11-20 13:44:32 +01:00
CanbiZ
52847c8dd8 Fix motd_ssh console issue: remove systemctl restart that breaks getty TTY 2025-11-20 13:34:42 +01:00
CanbiZ
9607c83465 Compact network check output: combine IPv4/IPv6 status into single line 2025-11-17 16:11:14 +01:00
CanbiZ
916293d98d introduce dev_mode
Introduces granular dev_mode flags (motd, keep, trace, pause, breakpoint, logs, dryrun) with a parser and exports for container builds. Enables persistent log directories when logs mode is active, supports dryrun and trace modes, and adds MOTD/SSH setup and breakpoint shell for debugging. Refactors related logic in build.func, core.func, and install.func for improved developer experience and debugging.
2025-11-17 12:53:26 +01:00
CanbiZ
c2b7f4e298 Improve container build/install logging and error handling
Introduces distinct BUILD_LOG and INSTALL_LOG variables for host and container operations, ensuring logs are properly captured and retrievable. Refactors silent execution and error handling to use the active log file, improves log copying after failures, and enhances context detection for log management. Also adds fallback logic for INSTALL_LOG initialization in install.func.
2025-11-17 12:45:24 +01:00