Commit Graph

15026 Commits

Author SHA1 Message Date
CanbiZ (MickLesk)
99d8a7eef3 Use specific exit codes in PVE scripts
Replace generic exit 1 with distinct exit codes across tools/pve scripts to provide clearer failure signals for callers. post-pve-install.sh now returns 105 for unsupported Proxmox versions; pve-privilege-converter.sh uses 104 for non-root, 234 when no containers, and 235 for backup/conversion failures; update-apps.sh maps backup failures to 235, missing containers/selections to 234 (and UI cancellations to 0), missing backup storage to 119, and returns the actual container update exit code on failure. These changes improve diagnostics and allow external tooling to react to specific error conditions.
2026-03-02 10:01:09 +01:00
CanbiZ (MickLesk)
3aba5f3209 Use specific exit codes in addon scripts
Replace generic exit 1 with specific exit codes across multiple addon scripts to improve error signaling and handling. Files updated: tools/addon/add-netbird-lxc.sh (exit 238 on unsupported distro), tools/addon/add-tailscale-lxc.sh (treat user cancel as exit 0), tools/addon/glances.sh (exit 233 when not installed), tools/addon/komodo.sh (distinct exits for missing compose, legacy DB, backup/download failures, docker checks), tools/addon/netdata.sh (distinct exits for unsupported PVE versions, OS/codename detection, repo lookups), and tools/addon/phpmyadmin.sh (distinct exits for unsupported OS, network/download issues, package install/start failures, and invalid input). These changes make failures easier to identify and automate recovery or reporting.
2026-03-02 09:59:23 +01:00
CanbiZ (MickLesk)
4f735a9a23 Use specific exit codes in addon scripts
Replace generic exit 1 with distinct exit codes across multiple addon scripts to enable finer-grained error handling in automation. Exit codes introduced: 10 for Docker/Compose missing or user-declined Docker install, 233 for "nothing to update" cases, and 238 for unsupported OS cases. Affected files: tools/addon/arcane.sh, coolify.sh, dockge.sh, dokploy.sh, filebrowser-quantum.sh, filebrowser.sh, immich-public-proxy.sh, jellystat.sh, runtipi.sh.
2026-03-02 09:56:08 +01:00
CanbiZ (MickLesk)
c742d61de2 Standardize exit codes in exporter addons
Unify exit codes across exporter addon scripts: return 238 for unsupported OS detections and 233 when an update is requested but the exporter is not installed. Applied to nextcloud-exporter.sh, pihole-exporter.sh, prometheus-paperless-ngx-exporter.sh, and qbittorrent-exporter.sh to make failure modes distinguishable for callers/automation.
2026-03-02 09:54:27 +01:00
CanbiZ (MickLesk)
bdf97e9499 Add tools/addon exit codes and use them
Introduce exit codes 232-238 for Tools & Addon scripts in misc/api.func and misc/error_handler.func. Update addon scripts (tools/addon/adguardhome-sync.sh, tools/addon/copyparty.sh, tools/addon/cronmaster.sh) to return specific codes instead of generic exit 1: 238 for unsupported OS and 233 when the application is not installed/upgrade prerequisites are missing. This makes failures more descriptive and aligns scripts with the central error explanations.
2026-03-02 09:54:15 +01:00
CanbiZ (MickLesk)
4d3fc03961 Set exit code 115 for update_os errors
Change exit status from 6 to 115 in misc/alpine-install.func's update_os() error handlers when failing to download tools.func or when the expected functions are missing. This gives a distinct exit code for these specific failure cases.
2026-03-02 09:41:44 +01:00
CanbiZ (MickLesk)
ce2a253053 Standardize exit codes and add mappings
Replace generic exit 1 usages with specific numeric exit codes and add corresponding explanations to the error lookup. This commit updates multiple misc/* scripts to return distinct codes for validation, Proxmox/LXC, networking, download and curl errors (e.g. 103-123, 64, 107-120, 206, 0 for explicit user cancels). It also updates curl error handling to propagate the original curl exit code and adds new entries in explain_exit_code and the error handler to improve diagnostics.
2026-03-02 09:41:03 +01:00
CanbiZ (MickLesk)
53efcdc9df Redirect lxc-attach stdin; restore terminal
Prevent the lxc-attach pipeline from consuming the host's stdin by redirecting its stdin from /dev/null, keeping /dev/tty available for the recovery menu after SIGINT or failures (avoids "read: read error: Input/output error"). Also restore terminal state after the pipeline by running `stty sane` (errors ignored). Applied these changes to both installation invocation sites in misc/build.func.
2026-03-02 09:29:55 +01:00
CanbiZ (MickLesk)
d9e53d5a16 Remove non-TTY static spinner fallback
Delete the stderr TTY check and the static spinner printf/early return in msg_info. The function now always calls color_spinner and starts the animated spinner in the background, removing the special-case for piped/non-TTY environments and simplifying terminal handling.
2026-03-02 09:26:24 +01:00
CanbiZ (MickLesk)
8699013eef Merge branch 'main' of https://github.com/community-scripts/ProxmoxVE 2026-03-02 09:16:57 +01:00
CanbiZ (MickLesk)
e3af8ad287 Only strip v for digit tags; sanitize version
Improve GitHub release tag handling: only remove a leading 'v' when it's followed by a digit (avoids mangling tags like "version/..."), and sanitize the derived version string for filenames by replacing '/' with '-'. Use the sanitized version when constructing the downloaded tarball filename to prevent invalid or unexpected paths.
2026-03-02 09:16:25 +01:00
CanbiZ (MickLesk)
f2970522a9 Handle non-TTY output; simplify verbosity check
Detect non-TTY stderr in msg_info() and print a static progress indicator instead of launching the background spinner (which is unreliable when output is piped). Remove the non-TTY check from is_verbose_mode() and add comments clarifying that non-TTY behavior is handled in msg_info(). Apply the same verbosity simplification to vm-core.func. This keeps spinner visuals working when passed through pipes while avoiding backgrounding issues.
2026-03-02 09:08:55 +01:00
community-scripts-pr-app[bot]
e1a45c4831 Update CHANGELOG.md (#12462)
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2026-03-02 08:02:17 +00:00
CanbiZ (MickLesk)
d258ff476f fix(frontend): improve detail view badges, addon texts, and HTML title (#12461) 2026-03-02 09:01:48 +01:00
community-scripts-pr-app[bot]
a0ea2263a6 Update .app files (#12459)
Co-authored-by: GitHub Actions <github-actions[bot]@users.noreply.github.com>
2026-03-02 08:45:36 +01:00
community-scripts-pr-app[bot]
d29e4cf4a2 Update CHANGELOG.md (#12460)
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2026-03-02 07:45:21 +00:00
community-scripts-pr-app[bot]
6095defed4 Update CHANGELOG.md (#12458)
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2026-03-02 07:45:13 +00:00
CanbiZ (MickLesk)
edd88d33d5 tools.func: Improve stability with retry logic, caching, and debug mode (#10351)
* refactor(tools.func): use distro packages by default for stability

- fetch_and_deploy_gh_release: add validation for empty app names
  - Derives app name from repo if not provided
  - Prevents '/root/.: Is a directory' error (fixes #10342)

- setup_hwaccel: fix Intel driver app names for fetch_and_deploy_gh_release
  - Add proper app names: intel-igc-core, intel-igc-opencl, libigdgmm12, intel-opencl-icd

- setup_mariadb: use distro packages by default
  - Default: apt packages (default-mysql-server, mariadb-server)
  - Optional: USE_MARIADB_REPO=true for official MariaDB repo
  - Fixes GPG key/mirror availability issues

- setup_mysql: use distro packages by default
  - Default: apt packages (default-mysql-server, mysql-server)
  - Optional: USE_MYSQL_REPO=true for official MySQL repo
  - Keeps Debian Trixie 8.4 LTS handling when using official repo

- setup_postgresql: use distro packages by default
  - Default: apt packages (postgresql, postgresql-client)
  - Optional: USE_PGDG_REPO=true for official PGDG repo

- setup_docker: use distro packages by default
  - Default: docker.io package
  - Optional: USE_DOCKER_REPO=true for official Docker repo
  - Maintains Portainer support in both modes

This refactoring prioritizes stability by using well-tested distro
packages while maintaining the option to use official repos for
specific version requirements.

* feat(tools.func): add retry logic and debug mode for stability

New helper functions:
- curl_with_retry: Robust curl wrapper with retry logic (3 attempts)
- curl_api_with_retry: API calls with HTTP status handling
- download_gpg_key: GPG key download with retry and dearmor support
- debug_log: Conditional debug output when TOOLS_DEBUG=true

Replaced critical curl calls:
- MongoDB GPG key download
- NodeSource GPG key download
- PostgreSQL GPG key download
- PHP (Sury) keyring download
- MySQL GPG key download
- setup_deb822_repo GPG import

Benefits:
- Automatic retry on transient network failures
- Configurable timeouts (CURL_TIMEOUT, CURL_CONNECT_TO)
- Debug mode for troubleshooting (TOOLS_DEBUG=true)
- Consistent error handling across all GPG key imports

* feat(tools.func): extend retry logic to all major downloads

Added curl_with_retry to all critical download operations:
- Adminer download
- Composer installer
- FFmpeg (binary and source)
- Go tarball
- Ghostscript source
- ImageMagick source
- rbenv and ruby-build
- uv (astral-sh)
- yq binary
- Go version check

Extended timeouts for large downloads:
- CURL_TIMEOUT=300 for FFmpeg, Go (large tarballs)
- CURL_TIMEOUT=180 for Ghostscript, ImageMagick

Remaining without retry (intentional):
- download_with_progress (specialized function)
- Rustup installer (piped to shell)
- Portainer version check (non-critical)

Total curl_with_retry/download_gpg_key usage: 27 locations

* typo

* Fix removed features in refactor branch

- Add libmfx-gen1.2 back for Intel Quick Sync Video encoding (Debian 12+13)
- Restore tmpfiles.d configuration for MariaDB /run/mysqld persistence
- Fix MariaDB fallback version from 11.4 to 12.2 (latest GA version)

These changes were incorrectly removed in the refactor commits.

* Optimize tools.func: fix typos, duplicate debug_log, Node.js version, PG backup, Intel VPL

* Optimize tools.func: intelligent fallbacks, retry logic, caching, DNS pre-check

- curl_with_retry: DNS pre-check + exponential backoff
- download_gpg_key: Auto-detect key format, validation
- ensure_dependencies: Batch dpkg-query check, individual fallback
- install_packages_with_retry: Progressive recovery (dpkg fix, broken deps, individual packages)
- verify_repo_available: Caching with TTL to avoid repeated HTTP requests
- get_fallback_suite: Dynamic HTTP availability check cascade
- ensure_apt_working: APT lock handling, progressive recovery
- safe_service_restart: Wait-for-ready with configurable timeout, retry logic
- get_latest_github_release: Fallback to tags API, prerelease support, rate limit handling

* foirmatting

* tools.func: Smarter parallel jobs calculation with load awareness

- get_parallel_jobs: Add memory-based limiting (1.5GB/job), load awareness,
  and container detection for conservative limits
- get_default_php_version: Add future versions (Debian 14, Ubuntu 26.04),
  update defaults to 8.3
- get_default_python_version: Add future versions, update defaults to 3.12

* fix: whitespace cleanup and indentation fix in tools.func
2026-03-02 08:44:59 +01:00
CanbiZ (MickLesk)
fd67210906 Migrate: DokPloy, Komodo, Coolify, Dockge, Runtipi to Addons (#12275)
* feat: add Docker-based tool addons for dockge, komodo, dokploy, npmplus

Create addon scripts following the arcane.sh pattern for Docker-based
tools that can be installed on any existing Docker LXC:

- dockge: Docker Compose stack manager (port 5001)
- komodo: Build/deployment system with MongoDB/FerretDB (port 9120)
- dokploy: PaaS via external installer with Redis (port 3000)
- npmplus: Nginx Proxy Manager Plus via Compose (port 81)

Each addon includes:
- Docker availability check
- Install with full configuration
- Update via docker compose pull
- Uninstall with container cleanup
- ASCII header files

Original ct/ and install/ scripts are preserved for now.

* refactor: convert Docker tools to addons, remove old scripts

Convert dockge, komodo, dokploy, coolify from standalone ct/install
scripts to addon pattern (like arcane.sh).

Added:
- tools/addon/dockge.sh (port 5001)
- tools/addon/komodo.sh (port 9120, MongoDB/FerretDB choice)
- tools/addon/dokploy.sh (port 3000, external installer)
- tools/addon/coolify.sh (port 8000, external installer)
- tools/headers/ for all 4

Removed:
- ct/dockge.sh, ct/komodo.sh, ct/alpine-komodo.sh, ct/dokploy.sh, ct/coolify.sh
- install/dockge-install.sh, install/komodo-install.sh, install/alpine-komodo-install.sh
- install/dokploy-install.sh, install/coolify-install.sh
- frontend/public/json/ for dockge, komodo, dokploy, coolify
- tools/addon/npmplus.sh (not an addon candidate)

These tools are Docker-only and fit the addon pattern: they require
an existing Docker LXC and manage containers via docker compose.

* feat: add addon JSON configs for dockge, komodo, dokploy, coolify

Recreate JSON configs with type=addon, script paths pointing to
tools/addon/*.sh, null resources (addon runs on existing Docker LXC),
and update instructions in notes.

* feat: add Runtipi addon + upgrade all addons with Proxmox host check, optional Docker install, Alpine support

- New: tools/addon/runtipi.sh with full Alpine support (gcompat for musl)
- New: tools/headers/runtipi ASCII header
- Updated: runtipi.json to addon type with null resources
- Removed: ct/runtipi.sh, install/runtipi-install.sh (migrated to addon)
- All addons (dockge, komodo, dokploy, coolify, runtipi) now have:
  - check_proxmox_host(): warns when running on PVE host, default N
  - check_or_install_docker(): optional Docker install (Debian+Alpine)
  - Alpine-aware curl bootstrap and dependency installation

* readd ct, update information

* Create runtipi.sh

* refactor: remove inline header_info from addons, use core.func get_header()

- get_header() in core.func now maps APP_TYPE=addon to tools/headers/ path
- Removed 5 duplicate ASCII art header_info functions from addon scripts
- Addons now use the shared header_info() from core.func + tools/headers/ files

* chore(tools): add Github source links to dockge, komodo, dokploy, coolify, runtipi addons

* fix(runtipi): drop Alpine support; add OS compat notes to docker addon JSONs
2026-03-02 08:44:49 +01:00
community-scripts-pr-app[bot]
393e9bd868 chore: update github-versions.json (#12456)
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2026-03-02 06:20:24 +00:00
community-scripts-pr-app[bot]
339863366c Update CHANGELOG.md (#12454)
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2026-03-01
2026-03-02 00:21:00 +00:00
community-scripts-pr-app[bot]
d8db023931 chore: update github-versions.json (#12453)
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2026-03-02 00:20:37 +00:00
community-scripts-pr-app[bot]
71ccc82853 Update CHANGELOG.md (#12450)
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2026-03-01 21:10:23 +00:00
Tom Frenzel
4d837d82d8 Sparkyfitness: use pnpm (#12445)
* fix(sparkyfitness): use pnpm

* chore: use pinned pnpm

* fix: move node and pnpm update
2026-03-01 22:09:57 +01:00
community-scripts-pr-app[bot]
59792ad8b9 Update CHANGELOG.md (#12449)
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2026-03-01 19:42:17 +00:00
Slaviša Arežina
020796d411 Fix install (#12447) 2026-03-01 20:41:55 +01:00
community-scripts-pr-app[bot]
cc7461d959 chore: update github-versions.json (#12448)
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2026-03-01 18:07:16 +00:00
community-scripts-pr-app[bot]
0fc12576c0 chore: update github-versions.json (#12443)
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2026-03-01 12:08:03 +00:00
CanbiZ (MickLesk)
02337ad9be Remove db:create command from installation script 2026-03-01 11:16:00 +01:00
community-scripts-pr-app[bot]
90c0ea3b2d chore: update github-versions.json (#12440)
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2026-03-01 06:16:06 +00:00
community-scripts-pr-app[bot]
37c1502f5b chore: update github-versions.json (#12438)
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2026-02-28
2026-03-01 00:23:11 +00:00
community-scripts-pr-app[bot]
193c3b305a Update CHANGELOG.md (#12437)
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2026-03-01 00:05:14 +00:00
community-scripts-pr-app[bot]
4dfa649a81 Archive old changelog entries (#12436)
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2026-03-01 00:04:52 +00:00
community-scripts-pr-app[bot]
3233646831 Update CHANGELOG.md (#12432)
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2026-02-28 21:46:04 +00:00
Mazian
b122de1f99 Update .env output with useful information (#12401) 2026-02-28 22:45:44 +01:00
community-scripts-pr-app[bot]
c3d34736e8 Update CHANGELOG.md (#12431)
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2026-02-28 21:40:51 +00:00
CanbiZ (MickLesk)
a77c95750c fix(gramps-web): install Gramps addons and fix GRAMPSHOME path (#12387) 2026-02-28 22:40:25 +01:00
community-scripts-pr-app[bot]
e10b7fba82 Update CHANGELOG.md (#12430)
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2026-02-28 20:41:41 +00:00
Chris
dd37770b86 Fix sed command to fully replace line in postgresql.conf (#12429) 2026-02-28 21:41:17 +01:00
community-scripts-pr-app[bot]
c85809e512 Update CHANGELOG.md (#12428)
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2026-02-28 19:30:59 +00:00
Chris
edb86a7150 [FIX] Immich: fix Openvino memory leak during OCR; improve HW-accelerated ML performance (#12426) 2026-02-28 20:30:37 +01:00
community-scripts-pr-app[bot]
d0e107d707 Update CHANGELOG.md (#12427)
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2026-02-28 18:58:02 +00:00
Chris
187ccc4f1c BookLore: add additional JVM flags (#12421) 2026-02-28 19:57:38 +01:00
community-scripts-pr-app[bot]
20cecec4ad chore: update github-versions.json (#12425)
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2026-02-28 18:06:23 +00:00
community-scripts-pr-app[bot]
8c28126479 Update CHANGELOG.md (#12424)
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2026-02-28 17:13:32 +00:00
Josef Glatz
85213ea8b0 Fix default tag for ioBroker LXC install (#12423) 2026-02-28 18:13:07 +01:00
community-scripts-pr-app[bot]
1858aeee03 Update CHANGELOG.md (#12420)
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2026-02-28 13:52:27 +00:00
community-scripts-pr-app[bot]
7ce4313ba4 Update CHANGELOG.md (#12419)
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2026-02-28 13:52:16 +00:00
hraphael
fd498b0efb Update ombi.sh (#12412) 2026-02-28 14:52:01 +01:00
community-scripts-pr-app[bot]
cdbcf098d2 Update CHANGELOG.md (#12418)
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2026-02-28 13:51:51 +00:00