Compare commits

..

12 Commits

Author SHA1 Message Date
github-actions[bot]
2e314a9b22 chore: update github-versions.json 2026-03-06 18:13:13 +00:00
community-scripts-pr-app[bot]
58301651e4 Update CHANGELOG.md (#12618)
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2026-03-06 15:17:25 +00:00
Tobias
b848c2d1bf wealthfolio: update cors (#12617)
* Update wealthfolio-install.sh

* Update wealthfolio.sh
2026-03-06 16:17:00 +01:00
CanbiZ (MickLesk)
9e2bb23d35 fix(wealthfolio): pin to v3.0.3 due to breaking changes 2026-03-06 14:16:54 +01:00
CanbiZ (MickLesk)
eb848fd70f databasus: make fetch_and_deploy_from_url accept empty dir
Pass an explicit empty second argument when downloading MongoDB tools and update fetch_and_deploy_from_url to default the directory parameter to an empty string. This avoids unset/ambiguous directory handling at the call site and ensures the function has a defined directory variable even when none is provided.
2026-03-06 14:11:57 +01:00
community-scripts-pr-app[bot]
176fffff0b Update CHANGELOG.md (#12616)
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2026-03-06 13:04:52 +00:00
Slaviša Arežina
14e13edeef Add better update handling (#12611) 2026-03-06 14:04:23 +01:00
community-scripts-pr-app[bot]
4f70196444 chore: update github-versions.json (#12613)
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2026-03-06 12:10:47 +00:00
community-scripts-pr-app[bot]
acc715de82 Update CHANGELOG.md (#12610)
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2026-03-06 09:21:14 +00:00
Slaviša Arežina
5bfb5f486f RustDesk Server: Switch to updated repository (#12083)
* switch repo

* Add info about Alpine admin password and script usage

---------

Co-authored-by: CanbiZ (MickLesk) <47820557+MickLesk@users.noreply.github.com>
2026-03-06 10:20:46 +01:00
Michel Roegl-Brunner
6fbd785a87 Change runner to self-hosted for PR checks 2026-03-06 09:09:56 +01:00
community-scripts-pr-app[bot]
75b1c63884 chore: update github-versions.json (#12608)
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2026-03-06 06:16:34 +00:00
13 changed files with 97 additions and 71 deletions

View File

@@ -8,7 +8,7 @@ on:
jobs:
check-new-script:
if: github.repository == 'community-scripts/ProxmoxVE'
runs-on: coolify-runner
runs-on: self-hosted
permissions:
pull-requests: write
contents: read

View File

@@ -412,6 +412,17 @@ Exercise vigilance regarding copycat or coat-tailing sites that seek to exploit
## 2026-03-06
### 🚀 Updated Scripts
- #### 🐞 Bug Fixes
- wealthfolio: update cors [@CrazyWolf13](https://github.com/CrazyWolf13) ([#12617](https://github.com/community-scripts/ProxmoxVE/pull/12617))
- CryptPad: Better update handling [@tremor021](https://github.com/tremor021) ([#12611](https://github.com/community-scripts/ProxmoxVE/pull/12611))
- #### ✨ New Features
- RustDesk Server: Switch to updated repository [@tremor021](https://github.com/tremor021) ([#12083](https://github.com/community-scripts/ProxmoxVE/pull/12083))
## 2026-03-05
### 🆕 New Scripts

View File

@@ -27,21 +27,21 @@ function update_script() {
fi
APIRELEASE=$(curl -s https://api.github.com/repos/lejianwen/rustdesk-api/releases/latest | grep "tag_name" | awk '{print substr($2, 3, length($2)-4) }')
RELEASE=$(curl -s https://api.github.com/repos/rustdesk/rustdesk-server/releases/latest | grep "tag_name" | awk '{print substr($2, 2, length($2)-3) }')
RELEASE=$(curl -s https://api.github.com/repos/lejianwen/rustdesk-server/releases/latest | grep "tag_name" | awk '{print substr($2, 2, length($2)-3) }')
if [ "${RELEASE}" != "$(cat ~/.rustdesk-server 2>/dev/null)" ] || [ ! -f ~/.rustdesk-server ]; then
msg_info "Updating RustDesk Server to v${RELEASE}"
$STD apk -U upgrade
$STD service rustdesk-server-hbbs stop
$STD service rustdesk-server-hbbr stop
temp_file1=$(mktemp)
curl -fsSL "https://github.com/rustdesk/rustdesk-server/releases/download/${RELEASE}/rustdesk-server-linux-amd64.zip" -o "$temp_file1"
curl -fsSL "https://github.com/lejianwen/rustdesk-server/releases/download/${RELEASE}/rustdesk-server-linux-amd64.zip" -o "$temp_file1"
$STD unzip "$temp_file1"
cp -r amd64/* /opt/rustdesk-server/
echo "${RELEASE}" >~/.rustdesk-server
$STD service rustdesk-server-hbbs start
$STD service rustdesk-server-hbbr start
rm -rf amd64
rm -f $temp_file1
rm -f "$temp_file1"
msg_ok "Updated RustDesk Server"
else
msg_ok "No update required. ${APP} is already at v${RELEASE}"
@@ -56,7 +56,7 @@ function update_script() {
echo "${APIRELEASE}" >~/.rustdesk-api
$STD service rustdesk-api start
rm -rf release
rm -f $temp_file2
rm -f "$temp_file2"
msg_ok "Updated RustDesk API"
else
msg_ok "No update required. RustDesk API is already at v${APIRELEASE}"

View File

@@ -33,17 +33,23 @@ function update_script() {
systemctl stop cryptpad
msg_info "Stopped Service"
msg_info "Backing up configuration"
msg_info "Creating backup"
[ -f /opt/cryptpad/config/config.js ] && mv /opt/cryptpad/config/config.js /opt/
msg_ok "Backed up configuration"
for dir in blob block customize data datastore www/common/onlyoffice/dist onlyoffice-conf; do
[ -d "/opt/cryptpad/${dir}" ] && mv "/opt/cryptpad/${dir}" "/tmp/cryptpad_${dir//\//_}"
done
msg_ok "Created backup"
CLEAN_INSTALL=1 fetch_and_deploy_gh_release "cryptpad" "cryptpad/cryptpad" "tarball"
msg_info "Restoring configuration"
msg_info "Restoring backup"
mv /opt/config.js /opt/cryptpad/config/
msg_ok "Configuration restored"
for dir in blob block customize data datastore www/common/onlyoffice/dist onlyoffice-conf; do
[ -d "/tmp/cryptpad_${dir//\//_}" ] && mv "/tmp/cryptpad_${dir//\//_}" "/opt/cryptpad/${dir}"
done
msg_ok "Restored backup"
msg_info "Updating CryptaPad"
msg_info "Updating CryptPad"
cd /opt/cryptpad
$STD npm ci
$STD npm run install:components

View File

@@ -29,9 +29,7 @@ function update_script() {
exit
fi
RELEASE=$(curl -fsSL https://api.github.com/repos/rustdesk/rustdesk-server/releases/latest | grep "tag_name" | awk '{print substr($2, 2, length($2)-3) }')
APIRELEASE=$(curl -fsSL https://api.github.com/repos/lejianwen/rustdesk-api/releases/latest | grep "tag_name" | awk '{print substr($2, 3, length($2)-4) }')
if [[ "${RELEASE}" != "$(cat ~/.rustdesk-hbbr)" ]] || [[ "${APIRELEASE}" != "$(cat ~/.rustdesk-api)" ]] || [[ ! -f ~/.rustdesk-hbbr ]] || [[ ! -f ~/.rustdesk-api ]]; then
if check_for_gh_release "rustdesk-api"; then
msg_info "Stopping Service"
systemctl stop rustdesk-hbbr
systemctl stop rustdesk-hbbs
@@ -46,7 +44,7 @@ function update_script() {
fetch_and_deploy_gh_release "rustdesk-api" "lejianwen/rustdesk-api" "binary" "latest" "/opt/rustdesk" "rustdesk-api-server*amd64.deb"
msg_info "Starting services"
systemctl start -q rustdesk-* --all
systemctl start -q rustdesk-*
msg_ok "Services started"
msg_ok "Updated successfully!"

View File

@@ -29,6 +29,10 @@ function update_script() {
exit
fi
if grep -q '^WF_CORS_ALLOW_ORIGINS=\*$' /opt/wealthfolio/.env; then
sed -i "s|^WF_CORS_ALLOW_ORIGINS=\*$|WF_CORS_ALLOW_ORIGINS=http://${LOCAL_IP}:8080|" /opt/wealthfolio/.env
fi
if check_for_gh_release "wealthfolio" "afadil/wealthfolio"; then
msg_info "Stopping Service"
systemctl stop wealthfolio

View File

@@ -1,5 +1,5 @@
{
"generated": "2026-03-06T00:25:18Z",
"generated": "2026-03-06T18:13:12Z",
"versions": [
{
"slug": "2fauth",
@@ -270,9 +270,9 @@
{
"slug": "databasus",
"repo": "databasus/databasus",
"version": "v3.16.4",
"version": "v3.17.0",
"pinned": false,
"date": "2026-03-01T08:20:17Z"
"date": "2026-03-06T07:07:22Z"
},
{
"slug": "dawarich",
@@ -284,9 +284,9 @@
{
"slug": "discopanel",
"repo": "nickheyer/discopanel",
"version": "v1.0.37",
"version": "v2.0.0",
"pinned": false,
"date": "2026-02-18T08:53:43Z"
"date": "2026-03-06T08:19:39Z"
},
{
"slug": "dispatcharr",
@@ -326,9 +326,9 @@
{
"slug": "drawio",
"repo": "jgraph/drawio",
"version": "v29.5.2",
"version": "v29.6.1",
"pinned": false,
"date": "2026-02-22T10:36:14Z"
"date": "2026-03-06T09:14:17Z"
},
{
"slug": "duplicati",
@@ -382,9 +382,9 @@
{
"slug": "firefly",
"repo": "firefly-iii/firefly-iii",
"version": "v6.5.3",
"version": "v6.5.4",
"pinned": false,
"date": "2026-03-04T06:53:02Z"
"date": "2026-03-06T09:07:56Z"
},
{
"slug": "fladder",
@@ -452,9 +452,9 @@
{
"slug": "gitea-mirror",
"repo": "RayLabsHQ/gitea-mirror",
"version": "v3.12.2",
"version": "v3.12.4",
"pinned": false,
"date": "2026-03-05T04:26:50Z"
"date": "2026-03-06T05:02:40Z"
},
{
"slug": "glance",
@@ -501,9 +501,9 @@
{
"slug": "grocy",
"repo": "grocy/grocy",
"version": "v4.5.0",
"version": "v4.6.0",
"pinned": false,
"date": "2025-03-28T19:02:22Z"
"date": "2026-03-06T17:35:19Z"
},
{
"slug": "guardian",
@@ -606,16 +606,16 @@
{
"slug": "invoiceninja",
"repo": "invoiceninja/invoiceninja",
"version": "v5.12.69",
"version": "v5.12.70",
"pinned": false,
"date": "2026-02-26T22:23:32Z"
"date": "2026-03-06T01:53:38Z"
},
{
"slug": "jackett",
"repo": "Jackett/Jackett",
"version": "v0.24.1287",
"version": "v0.24.1292",
"pinned": false,
"date": "2026-03-05T05:49:33Z"
"date": "2026-03-06T05:57:21Z"
},
{
"slug": "jellystat",
@@ -641,9 +641,9 @@
{
"slug": "kapowarr",
"repo": "Casvt/Kapowarr",
"version": "V1.2.0",
"version": "V1.3.0",
"pinned": false,
"date": "2025-04-16T14:55:28Z"
"date": "2026-03-06T16:38:21Z"
},
{
"slug": "karakeep",
@@ -872,9 +872,9 @@
{
"slug": "metube",
"repo": "alexta69/metube",
"version": "2026.03.03",
"version": "2026.03.06",
"pinned": false,
"date": "2026-03-03T19:15:55Z"
"date": "2026-03-06T13:52:56Z"
},
{
"slug": "miniflux",
@@ -1138,9 +1138,9 @@
{
"slug": "pocketbase",
"repo": "pocketbase/pocketbase",
"version": "v0.36.5",
"version": "v0.36.6",
"pinned": false,
"date": "2026-02-21T11:45:32Z"
"date": "2026-03-06T08:07:09Z"
},
{
"slug": "pocketid",
@@ -1229,9 +1229,9 @@
{
"slug": "pulse",
"repo": "rcourtman/Pulse",
"version": "v5.1.19",
"version": "v5.1.21",
"pinned": false,
"date": "2026-03-05T11:14:54Z"
"date": "2026-03-06T12:13:08Z"
},
{
"slug": "pve-scripts-local",
@@ -1306,9 +1306,9 @@
{
"slug": "recyclarr",
"repo": "recyclarr/recyclarr",
"version": "v8.3.2",
"version": "v8.4.0",
"pinned": false,
"date": "2026-02-25T22:39:51Z"
"date": "2026-03-06T01:25:59Z"
},
{
"slug": "reitti",
@@ -1333,10 +1333,10 @@
},
{
"slug": "rustdeskserver",
"repo": "rustdesk/rustdesk-server",
"version": "1.1.15",
"repo": "lejianwen/rustdesk-server",
"version": "v0.1.2",
"pinned": false,
"date": "2026-01-12T05:38:30Z"
"date": "2025-09-01T02:52:30Z"
},
{
"slug": "rustypaste",
@@ -1355,9 +1355,9 @@
{
"slug": "scanopy",
"repo": "scanopy/scanopy",
"version": "v0.14.12",
"version": "v0.14.14",
"pinned": false,
"date": "2026-03-05T07:24:59Z"
"date": "2026-03-06T06:50:38Z"
},
{
"slug": "scraparr",
@@ -1411,9 +1411,9 @@
{
"slug": "silverbullet",
"repo": "silverbulletmd/silverbullet",
"version": "2.5.1",
"version": "2.5.2",
"pinned": false,
"date": "2026-03-05T15:13:22Z"
"date": "2026-03-06T12:20:58Z"
},
{
"slug": "slskd",
@@ -1467,16 +1467,16 @@
{
"slug": "sportarr",
"repo": "Sportarr/Sportarr",
"version": "v4.0.985.1060",
"version": "v4.0.986.1061",
"pinned": false,
"date": "2026-03-04T01:00:04Z"
"date": "2026-03-06T01:04:24Z"
},
{
"slug": "stirling-pdf",
"repo": "Stirling-Tools/Stirling-PDF",
"version": "v2.6.0",
"version": "v2.7.0",
"pinned": false,
"date": "2026-03-03T20:46:42Z"
"date": "2026-03-06T11:21:47Z"
},
{
"slug": "streamlink-webui",
@@ -1593,9 +1593,9 @@
{
"slug": "traefik",
"repo": "traefik/traefik",
"version": "v3.6.9",
"version": "v3.6.10",
"pinned": false,
"date": "2026-02-23T17:21:17Z"
"date": "2026-03-06T15:08:35Z"
},
{
"slug": "trilium",
@@ -1740,9 +1740,9 @@
{
"slug": "wealthfolio",
"repo": "afadil/wealthfolio",
"version": "v3.0.4",
"pinned": false,
"date": "2026-03-05T19:58:24Z"
"version": "v3.0.3",
"pinned": true,
"date": "2026-03-03T21:47:55Z"
},
{
"slug": "web-check",
@@ -1838,9 +1838,9 @@
{
"slug": "zwave-js-ui",
"repo": "zwave-js/zwave-js-ui",
"version": "v11.13.0",
"version": "v11.14.0",
"pinned": false,
"date": "2026-03-04T15:09:54Z"
"date": "2026-03-06T09:34:32Z"
}
]
}

View File

@@ -54,6 +54,10 @@
{
"text": "To see admin password on Alpine, type `cat ~/rustdesk.creds` inside LXC.",
"type": "info"
},
{
"text": "This script uses hbbs/hbbr builds from `lejianwen/rustdesk-server` (instead of the official repo) for full compatibility with the RustDesk API (SSO/OAuth). See `https://github.com/community-scripts/ProxmoxVE/issues/12079`.",
"type": "info"
}
]
}

View File

@@ -13,17 +13,17 @@ setting_up_container
network_check
update_os
RELEASE=$(curl -s https://api.github.com/repos/rustdesk/rustdesk-server/releases/latest | grep "tag_name" | awk '{print substr($2, 2, length($2)-3) }')
RELEASE=$(curl -s https://api.github.com/repos/lejianwen/rustdesk-server/releases/latest | grep "tag_name" | awk '{print substr($2, 2, length($2)-3) }')
msg_info "Installing RustDesk Server v${RELEASE}"
temp_file1=$(mktemp)
curl -fsSL "https://github.com/rustdesk/rustdesk-server/releases/download/${RELEASE}/rustdesk-server-linux-amd64.zip" -o "$temp_file1"
curl -fsSL "https://github.com/lejianwen/rustdesk-server/releases/download/${RELEASE}/rustdesk-server-linux-amd64.zip" -o "$temp_file1"
$STD unzip "$temp_file1"
mv amd64 /opt/rustdesk-server
mkdir -p /root/.config/rustdesk
cd /opt/rustdesk-server
./rustdesk-utils genkeypair > /tmp/rustdesk_keys.txt
grep "Public Key" /tmp/rustdesk_keys.txt | awk '{print $3}' > /root/.config/rustdesk/id_ed25519.pub
grep "Secret Key" /tmp/rustdesk_keys.txt | awk '{print $3}' > /root/.config/rustdesk/id_ed25519
./rustdesk-utils genkeypair >/tmp/rustdesk_keys.txt
grep "Public Key" /tmp/rustdesk_keys.txt | awk '{print $3}' >/root/.config/rustdesk/id_ed25519.pub
grep "Secret Key" /tmp/rustdesk_keys.txt | awk '{print $3}' >/root/.config/rustdesk/id_ed25519
chmod 600 /root/.config/rustdesk/id_ed25519
chmod 644 /root/.config/rustdesk/id_ed25519.pub
rm /tmp/rustdesk_keys.txt

View File

@@ -33,7 +33,7 @@ done
# Install MongoDB Database Tools via direct .deb (no APT repo for Debian 13)
[[ "$(get_os_info id)" == "ubuntu" ]] && MONGO_DIST="ubuntu2204" || MONGO_DIST="debian12"
MONGO_VERSION=$(get_latest_gh_tag "mongodb/mongo-tools" "100." || echo "100.14.1")
fetch_and_deploy_from_url "https://fastdl.mongodb.org/tools/db/mongodb-database-tools-${MONGO_DIST}-x86_64-${MONGO_VERSION}.deb"
fetch_and_deploy_from_url "https://fastdl.mongodb.org/tools/db/mongodb-database-tools-${MONGO_DIST}-x86_64-${MONGO_VERSION}.deb" ""
mkdir -p /usr/local/mongodb-database-tools/bin
[[ -f /usr/bin/mongodump ]] && ln -sf /usr/bin/mongodump /usr/local/mongodb-database-tools/bin/mongodump
[[ -f /usr/bin/mongorestore ]] && ln -sf /usr/bin/mongorestore /usr/local/mongodb-database-tools/bin/mongorestore

View File

@@ -13,10 +13,13 @@ setting_up_container
network_check
update_os
fetch_and_deploy_gh_release "rustdesk-hbbr" "rustdesk/rustdesk-server" "binary" "latest" "/opt/rustdesk" "rustdesk-server-hbbr*amd64.deb"
fetch_and_deploy_gh_release "rustdesk-hbbs" "rustdesk/rustdesk-server" "binary" "latest" "/opt/rustdesk" "rustdesk-server-hbbs*amd64.deb"
fetch_and_deploy_gh_release "rustdesk-utils" "rustdesk/rustdesk-server" "binary" "latest" "/opt/rustdesk" "rustdesk-server-utils*amd64.deb"
fetch_and_deploy_gh_release "rustdesk-hbbr" "lejianwen/rustdesk-server" "binary" "latest" "/opt/rustdesk" "rustdesk-server-hbbr*amd64.deb"
fetch_and_deploy_gh_release "rustdesk-hbbs" "lejianwen/rustdesk-server" "binary" "latest" "/opt/rustdesk" "rustdesk-server-hbbs*amd64.deb"
fetch_and_deploy_gh_release "rustdesk-utils" "lejianwen/rustdesk-server" "binary" "latest" "/opt/rustdesk" "rustdesk-server-utils*amd64.deb"
fetch_and_deploy_gh_release "rustdesk-api" "lejianwen/rustdesk-api" "binary" "latest" "/opt/rustdesk" "rustdesk-api-server*amd64.deb"
systemctl enable -q --now rustdesk-hbbr
systemctl enable -q --now rustdesk-hbbs
systemctl enable -q --now rustdesk-api
motd_ssh
customize

View File

@@ -24,7 +24,7 @@ msg_ok "Installed Dependencies"
setup_rust
NODE_VERSION="20" NODE_MODULE="pnpm" setup_nodejs
fetch_and_deploy_gh_release "wealthfolio" "afadil/wealthfolio" "tarball"
fetch_and_deploy_gh_release "wealthfolio" "afadil/wealthfolio" "tarball" "v3.0.3"
msg_info "Building Frontend (patience)"
cd /opt/wealthfolio
@@ -51,8 +51,8 @@ WF_DB_PATH=/opt/wealthfolio_data/wealthfolio.db
WF_SECRET_KEY=${SECRET_KEY}
WF_AUTH_PASSWORD_HASH=${WF_PASSWORD_HASH}
WF_STATIC_DIR=/opt/wealthfolio/dist
WF_CORS_ALLOW_ORIGINS=*
WF_REQUEST_TIMEOUT_MS=30000
WF_CORS_ALLOW_ORIGINS=http://${LOCAL_IP}:8080
EOF
echo "WF_PASSWORD=${WF_PASSWORD}" >~/wealthfolio.creds
msg_ok "Configured Wealthfolio"

View File

@@ -7999,7 +7999,7 @@ EOF
# ------------------------------------------------------------------------------
function fetch_and_deploy_from_url() {
local url="$1"
local directory="$2"
local directory="${2:-}"
if [[ -z "$url" ]]; then
msg_error "URL parameter is required"