Compare commits

..

4 Commits

Author SHA1 Message Date
CanbiZ (MickLesk)
96991c347a tools: add data init and auto-reporting to tools and pve section
Introduce telemetry helpers in misc/api.func: _telemetry_report_exit (reports success/failure via post_tool_to_api/post_addon_to_api) and init_tool_telemetry (reads DIAGNOSTICS, starts install timer and installs an EXIT trap to auto-report). Integrate telemetry into many tools/addon and tools/pve scripts by sourcing the remote api.func and calling init_tool_telemetry (guarded with declare -f). Also apply a minor arithmetic formatting tweak in misc/build.func for RECOVERY_ATTEMPT.
2026-02-17 14:10:01 +01:00
CanbiZ (MickLesk)
8864e9aa9d Merge main - resolve conflict in build.func (keep improved ERR trap with exit_code check, add SIGHUP trap) 2026-02-17 12:20:43 +01:00
CanbiZ (MickLesk)
16a0329af3 Safer tools.func load and improved error handling
Replace process-substitution sourcing of tools.func with an explicit curl -> variable -> source via /dev/stdin, adding failure messages and a check that expected functions (e.g. fetch_and_deploy_gh_release) are present (misc/alpine-install.func, misc/install.func). Add categorize_error mapping for exit code 10 -> "config" (misc/api.func). Tweak build.func: minor pipeline formatting and change the ERR trap to capture the actual exit code and only call ensure_log_on_host/post_update on non-zero exits, preventing erroneous failure reporting.
2026-02-17 09:50:49 +01:00
CanbiZ (MickLesk)
50effb6d86 core: add progress; fix exit status
Introduce post_progress_to_api() in alpine-install.func and install.func to send a lightweight, fire-and-forget telemetry ping (HTTP POST) that updates an existing telemetry record to "configuring" when DIAGNOSTICS=yes and RANDOM_UUID is set. The function is non-blocking (curl -m 5, errors ignored) and is invoked during container setup and after OS updates to signal active progress. Also adjust api_exit_script() in build.func to report success (post_update_to_api "done" "0") for cases where the script exited normally but a completion status wasn't posted, instead of reporting failure.
2026-02-17 09:02:05 +01:00
4 changed files with 35 additions and 63 deletions

View File

@@ -404,8 +404,6 @@ Exercise vigilance regarding copycat or coat-tailing sites that seek to exploit
</details>
## 2026-02-18
## 2026-02-17
### 🆕 New Scripts
@@ -416,7 +414,6 @@ Exercise vigilance regarding copycat or coat-tailing sites that seek to exploit
- #### 🐞 Bug Fixes
- [Hotfix] Cleanuparr: backup config before update [@vhsdream](https://github.com/vhsdream) ([#12039](https://github.com/community-scripts/ProxmoxVE/pull/12039))
- fix: pterodactyl-panel add symlink [@CrazyWolf13](https://github.com/CrazyWolf13) ([#11997](https://github.com/community-scripts/ProxmoxVE/pull/11997))
### 💾 Core
@@ -427,23 +424,14 @@ Exercise vigilance regarding copycat or coat-tailing sites that seek to exploit
- #### ✨ New Features
- tools/pve: add data analytics / formatting / linting [@MickLesk](https://github.com/MickLesk) ([#12034](https://github.com/community-scripts/ProxmoxVE/pull/12034))
- core: smart recovery for failed installs | extend exit_codes [@MickLesk](https://github.com/MickLesk) ([#11221](https://github.com/community-scripts/ProxmoxVE/pull/11221))
- #### 🔧 Refactor
- core: error-handler improvements | better exit_code handling | better tools.func source check [@MickLesk](https://github.com/MickLesk) ([#12019](https://github.com/community-scripts/ProxmoxVE/pull/12019))
### 🧰 Tools
- #### 🔧 Refactor
- Immich Public Proxy: centralize and fix systemd service creation [@MickLesk](https://github.com/MickLesk) ([#12025](https://github.com/community-scripts/ProxmoxVE/pull/12025))
### 📚 Documentation
- fix contribution/setup-fork [@andreasabeck](https://github.com/andreasabeck) ([#12047](https://github.com/community-scripts/ProxmoxVE/pull/12047))
## 2026-02-16
### 🆕 New Scripts

View File

@@ -32,17 +32,8 @@ function update_script() {
systemctl stop cleanuparr
msg_ok "Stopped Service"
msg_info "Backing up config"
cp -r /opt/cleanuparr/config /opt/cleanuparr_config_backup
msg_ok "Backed up config"
CLEAN_INSTALL=1 fetch_and_deploy_gh_release "Cleanuparr" "Cleanuparr/Cleanuparr" "prebuild" "latest" "/opt/cleanuparr" "*linux-amd64.zip"
msg_info "Restoring config"
[[ -d /opt/cleanuparr/config ]] && rm -rf /opt/cleanuparr/config
mv /opt/cleanuparr_config_backup /opt/cleanuparr/config
msg_ok "Restored config"
msg_info "Starting Service"
systemctl start cleanuparr
msg_ok "Started Service"

View File

@@ -134,7 +134,7 @@ update_links() {
# Find all files containing the old repo reference
while IFS= read -r file; do
# Count occurrences
local count=$(grep -E -c "(github.com|githubusercontent.com)/$old_repo/$old_name" "$file" 2>/dev/null || echo 0)
local count=$(grep -c "github.com/$old_repo/$old_name" "$file" 2>/dev/null || echo 0)
if [[ $count -gt 0 ]]; then
# Backup original
@@ -143,16 +143,16 @@ update_links() {
# Replace links - use different sed syntax for BSD/macOS vs GNU sed
if sed --version &>/dev/null 2>&1; then
# GNU sed
sed -E -i "s@(github.com|githubusercontent.com)/$old_repo/$old_name@\\1/$new_owner/$new_repo@g" "$file"
sed -i "s|github.com/$old_repo/$old_name|github.com/$new_owner/$new_repo|g" "$file"
else
# BSD sed (macOS)
sed -E -i '' "s@(github.com|githubusercontent.com)/$old_repo/$old_name@\\1/$new_owner/$new_repo@g" "$file"
sed -i '' "s|github.com/$old_repo/$old_name|github.com/$new_owner/$new_repo|g" "$file"
fi
((files_updated++))
print_success "Updated $file ($count links)"
fi
done < <(find "$search_path" -type f \( -name "*.md" -o -name "*.sh" -o -name "*.func" -o -name "*.json" \) -not -path "*/.git/*" 2>/dev/null | xargs grep -E -l "(github.com|githubusercontent.com)/$old_repo/$old_name" 2>/dev/null)
done < <(find "$search_path" -type f \( -name "*.md" -o -name "*.sh" -o -name "*.func" -o -name "*.json" \) -not -path "*/.git/*" 2>/dev/null | xargs grep -l "github.com/$old_repo/$old_name" 2>/dev/null)
return $files_updated
}

View File

@@ -1,5 +1,5 @@
{
"generated": "2026-02-18T06:25:03Z",
"generated": "2026-02-17T06:22:06Z",
"versions": [
{
"slug": "2fauth",
@@ -158,9 +158,9 @@
{
"slug": "bookstack",
"repo": "BookStackApp/BookStack",
"version": "v25.12.5",
"version": "v25.12.3",
"pinned": false,
"date": "2026-02-17T18:42:47Z"
"date": "2026-01-29T15:29:25Z"
},
{
"slug": "byparr",
@@ -207,9 +207,9 @@
{
"slug": "comfyui",
"repo": "comfyanonymous/ComfyUI",
"version": "v0.14.2",
"version": "v0.13.0",
"pinned": false,
"date": "2026-02-18T06:12:02Z"
"date": "2026-02-10T20:27:38Z"
},
{
"slug": "commafeed",
@@ -221,9 +221,9 @@
{
"slug": "configarr",
"repo": "raydak-labs/configarr",
"version": "v1.21.0",
"version": "v1.20.0",
"pinned": false,
"date": "2026-02-17T22:59:07Z"
"date": "2026-01-10T21:25:47Z"
},
{
"slug": "convertx",
@@ -253,13 +253,6 @@
"pinned": false,
"date": "2026-02-11T15:39:05Z"
},
{
"slug": "databasus",
"repo": "databasus/databasus",
"version": "v3.14.0",
"pinned": false,
"date": "2026-02-17T17:18:34Z"
},
{
"slug": "dawarich",
"repo": "Freika/dawarich",
@@ -557,9 +550,9 @@
{
"slug": "huntarr",
"repo": "plexguide/Huntarr.io",
"version": "9.3.3",
"version": "9.2.4.1",
"pinned": false,
"date": "2026-02-18T02:35:29Z"
"date": "2026-02-12T22:17:47Z"
},
{
"slug": "immich-public-proxy",
@@ -585,16 +578,16 @@
{
"slug": "invoiceninja",
"repo": "invoiceninja/invoiceninja",
"version": "v5.12.63",
"version": "v5.12.62",
"pinned": false,
"date": "2026-02-18T00:32:09Z"
"date": "2026-02-17T03:23:48Z"
},
{
"slug": "jackett",
"repo": "Jackett/Jackett",
"version": "v0.24.1147",
"version": "v0.24.1140",
"pinned": false,
"date": "2026-02-18T05:54:19Z"
"date": "2026-02-17T05:54:25Z"
},
{
"slug": "jellystat",
@@ -704,9 +697,9 @@
{
"slug": "leantime",
"repo": "Leantime/leantime",
"version": "v3.7.0",
"version": "v3.6.2",
"pinned": false,
"date": "2026-02-18T00:02:31Z"
"date": "2026-01-29T16:37:00Z"
},
{
"slug": "librenms",
@@ -746,9 +739,9 @@
{
"slug": "linkstack",
"repo": "linkstackorg/linkstack",
"version": "v4.8.6",
"version": "v4.8.4",
"pinned": false,
"date": "2026-02-17T16:53:47Z"
"date": "2024-12-10T15:14:34Z"
},
{
"slug": "linkwarden",
@@ -788,9 +781,9 @@
{
"slug": "mail-archiver",
"repo": "s1t5/mail-archiver",
"version": "2602.2",
"version": "2602.1",
"pinned": false,
"date": "2026-02-17T09:46:52Z"
"date": "2026-02-11T06:23:11Z"
},
{
"slug": "managemydamnlife",
@@ -893,9 +886,9 @@
{
"slug": "netbox",
"repo": "netbox-community/netbox",
"version": "v4.5.3",
"version": "v4.5.2",
"pinned": false,
"date": "2026-02-17T15:39:18Z"
"date": "2026-02-03T13:54:26Z"
},
{
"slug": "nextcloud-exporter",
@@ -1096,9 +1089,9 @@
{
"slug": "planka",
"repo": "plankanban/planka",
"version": "v2.0.1",
"version": "v2.0.0",
"pinned": false,
"date": "2026-02-17T15:26:55Z"
"date": "2026-02-11T13:50:10Z"
},
{
"slug": "plant-it",
@@ -1110,9 +1103,9 @@
{
"slug": "pocketbase",
"repo": "pocketbase/pocketbase",
"version": "v0.36.4",
"version": "v0.36.3",
"pinned": false,
"date": "2026-02-17T08:02:51Z"
"date": "2026-02-13T18:38:58Z"
},
{
"slug": "pocketid",
@@ -1243,9 +1236,9 @@
{
"slug": "rclone",
"repo": "rclone/rclone",
"version": "v1.73.1",
"version": "v1.73.0",
"pinned": false,
"date": "2026-02-17T18:27:21Z"
"date": "2026-01-30T22:12:03Z"
},
{
"slug": "rdtclient",
@@ -1341,9 +1334,9 @@
{
"slug": "semaphore",
"repo": "semaphoreui/semaphore",
"version": "v2.17.5",
"version": "v2.17.2",
"pinned": false,
"date": "2026-02-17T18:20:38Z"
"date": "2026-02-16T10:27:40Z"
},
{
"slug": "shelfmark",
@@ -1551,9 +1544,9 @@
{
"slug": "tunarr",
"repo": "chrisbenincasa/tunarr",
"version": "v1.1.14",
"version": "v1.1.13",
"pinned": false,
"date": "2026-02-17T18:26:17Z"
"date": "2026-02-16T16:16:17Z"
},
{
"slug": "uhf",