mirror of
https://github.com/community-scripts/ProxmoxVE.git
synced 2026-02-18 19:15:55 +01:00
Compare commits
15 Commits
feature/to
...
fix-opnsen
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
6be09caf5e | ||
|
|
7389d49f57 | ||
|
|
b4a5d28957 | ||
|
|
eaa69d58be | ||
|
|
3ffff334a0 | ||
|
|
38f04f4dcc | ||
|
|
fdbcee3a93 | ||
|
|
ce11ba8f27 | ||
|
|
43a0a078f5 | ||
|
|
646dabf0f0 | ||
|
|
2582c1f63b | ||
|
|
3ce3c6f613 | ||
|
|
97652792be | ||
|
|
f07f2cb04e | ||
|
|
5f73f9d5e6 |
12
CHANGELOG.md
12
CHANGELOG.md
@@ -404,6 +404,8 @@ Exercise vigilance regarding copycat or coat-tailing sites that seek to exploit
|
||||
|
||||
</details>
|
||||
|
||||
## 2026-02-18
|
||||
|
||||
## 2026-02-17
|
||||
|
||||
### 🆕 New Scripts
|
||||
@@ -414,6 +416,7 @@ 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
|
||||
@@ -424,14 +427,23 @@ 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
|
||||
|
||||
@@ -32,8 +32,17 @@ 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"
|
||||
|
||||
@@ -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 -c "github.com/$old_repo/$old_name" "$file" 2>/dev/null || echo 0)
|
||||
local count=$(grep -E -c "(github.com|githubusercontent.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 -i "s|github.com/$old_repo/$old_name|github.com/$new_owner/$new_repo|g" "$file"
|
||||
sed -E -i "s@(github.com|githubusercontent.com)/$old_repo/$old_name@\\1/$new_owner/$new_repo@g" "$file"
|
||||
else
|
||||
# BSD sed (macOS)
|
||||
sed -i '' "s|github.com/$old_repo/$old_name|github.com/$new_owner/$new_repo|g" "$file"
|
||||
sed -E -i '' "s@(github.com|githubusercontent.com)/$old_repo/$old_name@\\1/$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 -l "github.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 -E -l "(github.com|githubusercontent.com)/$old_repo/$old_name" 2>/dev/null)
|
||||
|
||||
return $files_updated
|
||||
}
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
{
|
||||
"generated": "2026-02-17T06:22:06Z",
|
||||
"generated": "2026-02-18T06:25:03Z",
|
||||
"versions": [
|
||||
{
|
||||
"slug": "2fauth",
|
||||
@@ -158,9 +158,9 @@
|
||||
{
|
||||
"slug": "bookstack",
|
||||
"repo": "BookStackApp/BookStack",
|
||||
"version": "v25.12.3",
|
||||
"version": "v25.12.5",
|
||||
"pinned": false,
|
||||
"date": "2026-01-29T15:29:25Z"
|
||||
"date": "2026-02-17T18:42:47Z"
|
||||
},
|
||||
{
|
||||
"slug": "byparr",
|
||||
@@ -207,9 +207,9 @@
|
||||
{
|
||||
"slug": "comfyui",
|
||||
"repo": "comfyanonymous/ComfyUI",
|
||||
"version": "v0.13.0",
|
||||
"version": "v0.14.2",
|
||||
"pinned": false,
|
||||
"date": "2026-02-10T20:27:38Z"
|
||||
"date": "2026-02-18T06:12:02Z"
|
||||
},
|
||||
{
|
||||
"slug": "commafeed",
|
||||
@@ -221,9 +221,9 @@
|
||||
{
|
||||
"slug": "configarr",
|
||||
"repo": "raydak-labs/configarr",
|
||||
"version": "v1.20.0",
|
||||
"version": "v1.21.0",
|
||||
"pinned": false,
|
||||
"date": "2026-01-10T21:25:47Z"
|
||||
"date": "2026-02-17T22:59:07Z"
|
||||
},
|
||||
{
|
||||
"slug": "convertx",
|
||||
@@ -253,6 +253,13 @@
|
||||
"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",
|
||||
@@ -550,9 +557,9 @@
|
||||
{
|
||||
"slug": "huntarr",
|
||||
"repo": "plexguide/Huntarr.io",
|
||||
"version": "9.2.4.1",
|
||||
"version": "9.3.3",
|
||||
"pinned": false,
|
||||
"date": "2026-02-12T22:17:47Z"
|
||||
"date": "2026-02-18T02:35:29Z"
|
||||
},
|
||||
{
|
||||
"slug": "immich-public-proxy",
|
||||
@@ -578,16 +585,16 @@
|
||||
{
|
||||
"slug": "invoiceninja",
|
||||
"repo": "invoiceninja/invoiceninja",
|
||||
"version": "v5.12.62",
|
||||
"version": "v5.12.63",
|
||||
"pinned": false,
|
||||
"date": "2026-02-17T03:23:48Z"
|
||||
"date": "2026-02-18T00:32:09Z"
|
||||
},
|
||||
{
|
||||
"slug": "jackett",
|
||||
"repo": "Jackett/Jackett",
|
||||
"version": "v0.24.1140",
|
||||
"version": "v0.24.1147",
|
||||
"pinned": false,
|
||||
"date": "2026-02-17T05:54:25Z"
|
||||
"date": "2026-02-18T05:54:19Z"
|
||||
},
|
||||
{
|
||||
"slug": "jellystat",
|
||||
@@ -697,9 +704,9 @@
|
||||
{
|
||||
"slug": "leantime",
|
||||
"repo": "Leantime/leantime",
|
||||
"version": "v3.6.2",
|
||||
"version": "v3.7.0",
|
||||
"pinned": false,
|
||||
"date": "2026-01-29T16:37:00Z"
|
||||
"date": "2026-02-18T00:02:31Z"
|
||||
},
|
||||
{
|
||||
"slug": "librenms",
|
||||
@@ -739,9 +746,9 @@
|
||||
{
|
||||
"slug": "linkstack",
|
||||
"repo": "linkstackorg/linkstack",
|
||||
"version": "v4.8.4",
|
||||
"version": "v4.8.6",
|
||||
"pinned": false,
|
||||
"date": "2024-12-10T15:14:34Z"
|
||||
"date": "2026-02-17T16:53:47Z"
|
||||
},
|
||||
{
|
||||
"slug": "linkwarden",
|
||||
@@ -781,9 +788,9 @@
|
||||
{
|
||||
"slug": "mail-archiver",
|
||||
"repo": "s1t5/mail-archiver",
|
||||
"version": "2602.1",
|
||||
"version": "2602.2",
|
||||
"pinned": false,
|
||||
"date": "2026-02-11T06:23:11Z"
|
||||
"date": "2026-02-17T09:46:52Z"
|
||||
},
|
||||
{
|
||||
"slug": "managemydamnlife",
|
||||
@@ -886,9 +893,9 @@
|
||||
{
|
||||
"slug": "netbox",
|
||||
"repo": "netbox-community/netbox",
|
||||
"version": "v4.5.2",
|
||||
"version": "v4.5.3",
|
||||
"pinned": false,
|
||||
"date": "2026-02-03T13:54:26Z"
|
||||
"date": "2026-02-17T15:39:18Z"
|
||||
},
|
||||
{
|
||||
"slug": "nextcloud-exporter",
|
||||
@@ -1089,9 +1096,9 @@
|
||||
{
|
||||
"slug": "planka",
|
||||
"repo": "plankanban/planka",
|
||||
"version": "v2.0.0",
|
||||
"version": "v2.0.1",
|
||||
"pinned": false,
|
||||
"date": "2026-02-11T13:50:10Z"
|
||||
"date": "2026-02-17T15:26:55Z"
|
||||
},
|
||||
{
|
||||
"slug": "plant-it",
|
||||
@@ -1103,9 +1110,9 @@
|
||||
{
|
||||
"slug": "pocketbase",
|
||||
"repo": "pocketbase/pocketbase",
|
||||
"version": "v0.36.3",
|
||||
"version": "v0.36.4",
|
||||
"pinned": false,
|
||||
"date": "2026-02-13T18:38:58Z"
|
||||
"date": "2026-02-17T08:02:51Z"
|
||||
},
|
||||
{
|
||||
"slug": "pocketid",
|
||||
@@ -1236,9 +1243,9 @@
|
||||
{
|
||||
"slug": "rclone",
|
||||
"repo": "rclone/rclone",
|
||||
"version": "v1.73.0",
|
||||
"version": "v1.73.1",
|
||||
"pinned": false,
|
||||
"date": "2026-01-30T22:12:03Z"
|
||||
"date": "2026-02-17T18:27:21Z"
|
||||
},
|
||||
{
|
||||
"slug": "rdtclient",
|
||||
@@ -1334,9 +1341,9 @@
|
||||
{
|
||||
"slug": "semaphore",
|
||||
"repo": "semaphoreui/semaphore",
|
||||
"version": "v2.17.2",
|
||||
"version": "v2.17.5",
|
||||
"pinned": false,
|
||||
"date": "2026-02-16T10:27:40Z"
|
||||
"date": "2026-02-17T18:20:38Z"
|
||||
},
|
||||
{
|
||||
"slug": "shelfmark",
|
||||
@@ -1544,9 +1551,9 @@
|
||||
{
|
||||
"slug": "tunarr",
|
||||
"repo": "chrisbenincasa/tunarr",
|
||||
"version": "v1.1.13",
|
||||
"version": "v1.1.14",
|
||||
"pinned": false,
|
||||
"date": "2026-02-16T16:16:17Z"
|
||||
"date": "2026-02-17T18:26:17Z"
|
||||
},
|
||||
{
|
||||
"slug": "uhf",
|
||||
|
||||
@@ -91,6 +91,17 @@ function cleanup() {
|
||||
rm -rf $TEMP_DIR
|
||||
}
|
||||
|
||||
function check_disk_space() {
|
||||
local path="$1"
|
||||
local required_gb="$2"
|
||||
local available_kb=$(df -k "$path" | awk 'NR==2 {print $4}')
|
||||
local available_gb=$((available_kb / 1024 / 1024))
|
||||
if [ $available_gb -lt $required_gb ]; then
|
||||
return 1
|
||||
fi
|
||||
return 0
|
||||
}
|
||||
|
||||
TEMP_DIR=$(mktemp -d)
|
||||
pushd $TEMP_DIR >/dev/null
|
||||
function send_line_to_vm() {
|
||||
@@ -605,11 +616,41 @@ if [ -z "$URL" ]; then
|
||||
exit 1
|
||||
fi
|
||||
msg_ok "Download URL: ${CL}${BL}${URL}${CL}"
|
||||
|
||||
# Check available disk space (require at least 20GB for safety)
|
||||
if ! check_disk_space "$TEMP_DIR" 20; then
|
||||
AVAILABLE_GB=$(df -h "$TEMP_DIR" | awk 'NR==2 {print $4}')
|
||||
msg_error "Insufficient disk space in temporary directory ($TEMP_DIR)."
|
||||
msg_error "Available: ${AVAILABLE_GB}, Required: ~20GB for FreeBSD image decompression."
|
||||
msg_error "Please free up space or ensure /tmp has sufficient storage."
|
||||
exit 1
|
||||
fi
|
||||
|
||||
msg_info "Downloading FreeBSD Image"
|
||||
curl -f#SL -o "$(basename "$URL")" "$URL"
|
||||
echo -en "\e[1A\e[0K"
|
||||
msg_ok "Downloaded ${CL}${BL}$(basename "$URL")${CL}"
|
||||
|
||||
# Check disk space again before decompression
|
||||
if ! check_disk_space "$TEMP_DIR" 15; then
|
||||
AVAILABLE_GB=$(df -h "$TEMP_DIR" | awk 'NR==2 {print $4}')
|
||||
msg_error "Insufficient disk space for decompression."
|
||||
msg_error "Available: ${AVAILABLE_GB}, Required: ~15GB for decompressed image."
|
||||
exit 1
|
||||
fi
|
||||
|
||||
msg_info "Decompressing FreeBSD Image (this may take a few minutes)"
|
||||
FILE=FreeBSD.qcow2
|
||||
unxz -cv $(basename $URL) >${FILE}
|
||||
msg_ok "Downloaded ${CL}${BL}${FILE}${CL}"
|
||||
if ! unxz -cv $(basename $URL) >${FILE}; then
|
||||
msg_error "Failed to decompress FreeBSD image."
|
||||
msg_error "This is usually caused by insufficient disk space."
|
||||
df -h "$TEMP_DIR"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
# Remove the compressed file to save space
|
||||
rm -f "$(basename "$URL")"
|
||||
msg_ok "Decompressed ${CL}${BL}${FILE}${CL}"
|
||||
|
||||
STORAGE_TYPE=$(pvesm status -storage $STORAGE | awk 'NR>1 {print $2}')
|
||||
case $STORAGE_TYPE in
|
||||
@@ -649,7 +690,7 @@ qm set $VMID \
|
||||
-boot order=scsi0 \
|
||||
-serial0 socket \
|
||||
-tags community-script >/dev/null
|
||||
qm resize $VMID scsi0 10G >/dev/null
|
||||
qm resize $VMID scsi0 20G >/dev/null
|
||||
DESCRIPTION=$(
|
||||
cat <<EOF
|
||||
<div align='center'>
|
||||
|
||||
Reference in New Issue
Block a user