Compare commits

..

1 Commits

Author SHA1 Message Date
MickLesk
a699622553 fix(pangolin): restore config before db migration, use drizzle-kit push
npm run db:push ran drizzle migrate (CREATE TABLE) on an empty directory
before the config backup was restored, creating a fresh DB that got
immediately overwritten by the old backup. The old DB was missing new
columns like resources.postAuthPath (added in 1.15.4).

Replace with drizzle-kit push after config restore, which introspects the
existing DB and applies schema diffs (ALTER TABLE) instead.

Ref: #12068
2026-02-20 21:37:23 +01:00
11 changed files with 51 additions and 126 deletions

View File

@@ -404,21 +404,6 @@ Exercise vigilance regarding copycat or coat-tailing sites that seek to exploit
</details>
## 2026-02-21
### 🚀 Updated Scripts
- #### 🐞 Bug Fixes
- Pangolin: restore config before db migration, use drizzle-kit push [@MickLesk](https://github.com/MickLesk) ([#12130](https://github.com/community-scripts/ProxmoxVE/pull/12130))
- PLANKA: fix msg's [@danielalanbates](https://github.com/danielalanbates) ([#12143](https://github.com/community-scripts/ProxmoxVE/pull/12143))
### 🌐 Website
- #### 📝 Script Information
- MediaManager: Update documentation URL [@tremor021](https://github.com/tremor021) ([#12154](https://github.com/community-scripts/ProxmoxVE/pull/12154))
## 2026-02-20
### 🆕 New Scripts
@@ -426,22 +411,6 @@ Exercise vigilance regarding copycat or coat-tailing sites that seek to exploit
- Sure ([#12114](https://github.com/community-scripts/ProxmoxVE/pull/12114))
- Calibre-Web ([#12115](https://github.com/community-scripts/ProxmoxVE/pull/12115))
### 🚀 Updated Scripts
- #### 🐞 Bug Fixes
- Zammad: fix Elasticsearch JVM config and add daemon-reload [@MickLesk](https://github.com/MickLesk) ([#12125](https://github.com/community-scripts/ProxmoxVE/pull/12125))
- Huntarr: add build-essential for native pip dependencies [@MickLesk](https://github.com/MickLesk) ([#12126](https://github.com/community-scripts/ProxmoxVE/pull/12126))
- Dokploy: fix update function [@vhsdream](https://github.com/vhsdream) ([#12116](https://github.com/community-scripts/ProxmoxVE/pull/12116))
- #### 💥 Breaking Changes
- recyclarr: adjust paths for v8.0 breaking changes [@MickLesk](https://github.com/MickLesk) ([#12129](https://github.com/community-scripts/ProxmoxVE/pull/12129))
- #### 🔧 Refactor
- Planka: migrate data paths to new v2 directory structure [@MickLesk](https://github.com/MickLesk) ([#12128](https://github.com/community-scripts/ProxmoxVE/pull/12128))
### 🌐 Website
- #### 📝 Script Information

View File

@@ -30,7 +30,7 @@ function update_script() {
fi
msg_info "Updating Dokploy"
curl -sSL https://dokploy.com/install.sh | $STD bash -s update
$STD bash <(curl -sSL https://dokploy.com/install.sh)
msg_ok "Updated Dokploy"
msg_ok "Updated successfully!"
exit

View File

@@ -35,8 +35,7 @@ function update_script() {
msg_info "Stopping Service"
systemctl stop huntarr
msg_ok "Stopped Service"
ensure_dependencies build-essential
fetch_and_deploy_gh_release "huntarr" "plexguide/Huntarr.io" "tarball"
msg_info "Updating Huntarr"

View File

@@ -31,24 +31,16 @@ function update_script() {
if check_for_gh_release "planka" "plankanban/planka"; then
msg_info "Stopping Service"
systemctl stop planka
msg_ok "Stopped Service"
msg_info "Stopped Service"
msg_info "Backing up data"
BK="/opt/planka-backup"
mkdir -p "$BK"/{favicons,user-avatars,background-images,attachments}
[ -f /opt/planka/.env ] && mv /opt/planka/.env "$BK"/
# Support both old (pre-v2) and new (v2) directory layouts
if [ -d /opt/planka/data/protected ]; then
[ -d /opt/planka/data/protected/favicons ] && cp -a /opt/planka/data/protected/favicons/. "$BK/favicons/"
[ -d /opt/planka/data/protected/user-avatars ] && cp -a /opt/planka/data/protected/user-avatars/. "$BK/user-avatars/"
[ -d /opt/planka/data/protected/background-images ] && cp -a /opt/planka/data/protected/background-images/. "$BK/background-images/"
[ -d /opt/planka/data/private/attachments ] && cp -a /opt/planka/data/private/attachments/. "$BK/attachments/"
else
[ -d /opt/planka/public/favicons ] && cp -a /opt/planka/public/favicons/. "$BK/favicons/"
[ -d /opt/planka/public/user-avatars ] && cp -a /opt/planka/public/user-avatars/. "$BK/user-avatars/"
[ -d /opt/planka/public/background-images ] && cp -a /opt/planka/public/background-images/. "$BK/background-images/"
[ -d /opt/planka/private/attachments ] && cp -a /opt/planka/private/attachments/. "$BK/attachments/"
fi
[ -d /opt/planka/public/favicons ] && cp -a /opt/planka/public/favicons/. "$BK/favicons/"
[ -d /opt/planka/public/user-avatars ] && cp -a /opt/planka/public/user-avatars/. "$BK/user-avatars/"
[ -d /opt/planka/public/background-images ] && cp -a /opt/planka/public/background-images/. "$BK/background-images/"
[ -d /opt/planka/private/attachments ] && cp -a /opt/planka/private/attachments/. "$BK/attachments/"
rm -rf /opt/planka
msg_ok "Backed up data"
@@ -61,16 +53,15 @@ function update_script() {
msg_info "Restoring data"
[ -f "$BK/.env" ] && mv "$BK/.env" /opt/planka/.env
# Planka v2 uses unified data directory structure
mkdir -p /opt/planka/data/protected/{favicons,user-avatars,background-images} /opt/planka/data/private/attachments
[ -d "$BK/favicons" ] && cp -a "$BK/favicons/." /opt/planka/data/protected/favicons/
[ -d "$BK/user-avatars" ] && cp -a "$BK/user-avatars/." /opt/planka/data/protected/user-avatars/
[ -d "$BK/background-images" ] && cp -a "$BK/background-images/." /opt/planka/data/protected/background-images/
[ -d "$BK/attachments" ] && cp -a "$BK/attachments/." /opt/planka/data/private/attachments/
mkdir -p /opt/planka/public/{favicons,user-avatars,background-images} /opt/planka/private/attachments
[ -d "$BK/favicons" ] && cp -a "$BK/favicons/." /opt/planka/public/favicons/
[ -d "$BK/user-avatars" ] && cp -a "$BK/user-avatars/." /opt/planka/public/user-avatars/
[ -d "$BK/background-images" ] && cp -a "$BK/background-images/." /opt/planka/public/background-images/
[ -d "$BK/attachments" ] && cp -a "$BK/attachments/." /opt/planka/private/attachments/
rm -rf "$BK"
msg_ok "Restored data"
msg_info "Migrate Database"
msg_ok "Migrate Database"
cd /opt/planka
$STD npm run db:upgrade
$STD npm run db:migrate

View File

@@ -23,7 +23,7 @@ function update_script() {
header_info
check_container_storage
check_container_resources
if [[ ! -f /root/.config/recyclarr/recyclarr.yml ]] && [[ ! -d /root/.config/recyclarr/configs ]]; then
if [[ ! -f /root/.config/recyclarr/recyclarr.yml ]]; then
msg_error "No ${APP} Installation Found!"
exit
fi
@@ -33,20 +33,6 @@ function update_script() {
fetch_and_deploy_gh_release "recyclarr" "recyclarr/recyclarr" "prebuild" "latest" "/usr/local/bin" "recyclarr-linux-x64.tar.xz"
# Migrate includes from configs/ to includes/ (recyclarr v8)
RECYCLARR_DIR="/root/.config/recyclarr"
mkdir -p "$RECYCLARR_DIR/includes"
if [[ -d "$RECYCLARR_DIR/configs" ]]; then
for item in "$RECYCLARR_DIR/configs"/*/; do
[[ -d "$item" ]] || continue
dir_name=$(basename "$item")
# Only move subdirs that look like include dirs (not the configs themselves)
if [[ "$dir_name" != "configs" ]] && [[ ! -d "$RECYCLARR_DIR/includes/$dir_name" ]]; then
mv "$item" "$RECYCLARR_DIR/includes/"
fi
done
fi
msg_ok "Updated successfully!"
fi
exit

View File

@@ -1,5 +1,5 @@
{
"generated": "2026-02-21T18:07:18Z",
"generated": "2026-02-20T18:14:23Z",
"versions": [
{
"slug": "2fauth",
@@ -116,16 +116,16 @@
{
"slug": "bentopdf",
"repo": "alam00000/bentopdf",
"version": "v2.3.1",
"version": "v2.2.1",
"pinned": false,
"date": "2026-02-21T09:04:27Z"
"date": "2026-02-14T16:33:47Z"
},
{
"slug": "beszel",
"repo": "henrygd/beszel",
"version": "v0.18.4",
"version": "v0.18.3",
"pinned": false,
"date": "2026-02-20T21:10:52Z"
"date": "2026-02-01T19:02:42Z"
},
{
"slug": "bichon",
@@ -183,19 +183,12 @@
"pinned": false,
"date": "2025-07-29T16:39:18Z"
},
{
"slug": "calibre-web",
"repo": "janeczku/calibre-web",
"version": "0.6.26",
"pinned": false,
"date": "2026-02-06T21:17:44Z"
},
{
"slug": "checkmate",
"repo": "bluewave-labs/Checkmate",
"version": "v3.4.0",
"version": "v3.3",
"pinned": false,
"date": "2026-02-20T21:08:55Z"
"date": "2026-01-28T14:25:25Z"
},
{
"slug": "cleanuparr",
@@ -228,9 +221,9 @@
{
"slug": "configarr",
"repo": "raydak-labs/configarr",
"version": "v1.22.0",
"version": "v1.21.0",
"pinned": false,
"date": "2026-02-20T21:55:46Z"
"date": "2026-02-17T22:59:07Z"
},
{
"slug": "convertx",
@@ -263,9 +256,9 @@
{
"slug": "databasus",
"repo": "databasus/databasus",
"version": "v3.16.0",
"version": "v3.15.1",
"pinned": false,
"date": "2026-02-21T13:16:08Z"
"date": "2026-02-20T12:28:04Z"
},
{
"slug": "dawarich",
@@ -382,9 +375,9 @@
{
"slug": "fladder",
"repo": "DonutWare/Fladder",
"version": "v0.10.1",
"version": "v0.10.0",
"pinned": false,
"date": "2026-02-21T12:45:53Z"
"date": "2026-02-20T14:16:51Z"
},
{
"slug": "flaresolverr",
@@ -417,16 +410,16 @@
{
"slug": "gatus",
"repo": "TwiN/gatus",
"version": "v5.35.0",
"version": "v5.34.0",
"pinned": false,
"date": "2026-02-20T20:58:03Z"
"date": "2026-01-03T03:12:12Z"
},
{
"slug": "ghostfolio",
"repo": "ghostfolio/ghostfolio",
"version": "2.241.0",
"version": "2.240.0",
"pinned": false,
"date": "2026-02-21T07:39:22Z"
"date": "2026-02-18T20:08:56Z"
},
{
"slug": "gitea",
@@ -529,9 +522,9 @@
{
"slug": "homarr",
"repo": "homarr-labs/homarr",
"version": "v1.53.2",
"version": "v1.53.1",
"pinned": false,
"date": "2026-02-20T19:41:55Z"
"date": "2026-02-13T19:47:11Z"
},
{
"slug": "homebox",
@@ -592,16 +585,16 @@
{
"slug": "invoiceninja",
"repo": "invoiceninja/invoiceninja",
"version": "v5.12.65",
"version": "v5.12.64",
"pinned": false,
"date": "2026-02-21T01:03:52Z"
"date": "2026-02-18T07:59:44Z"
},
{
"slug": "jackett",
"repo": "Jackett/Jackett",
"version": "v0.24.1174",
"version": "v0.24.1167",
"pinned": false,
"date": "2026-02-21T05:53:02Z"
"date": "2026-02-20T05:54:07Z"
},
{
"slug": "jellystat",
@@ -1117,9 +1110,9 @@
{
"slug": "pocketbase",
"repo": "pocketbase/pocketbase",
"version": "v0.36.5",
"version": "v0.36.4",
"pinned": false,
"date": "2026-02-21T11:45:32Z"
"date": "2026-02-17T08:02:51Z"
},
{
"slug": "pocketid",
@@ -1194,9 +1187,9 @@
{
"slug": "pulse",
"repo": "rcourtman/Pulse",
"version": "v5.1.12",
"version": "v5.1.11",
"pinned": false,
"date": "2026-02-20T20:53:16Z"
"date": "2026-02-19T20:20:44Z"
},
{
"slug": "pve-scripts-local",
@@ -1271,9 +1264,9 @@
{
"slug": "recyclarr",
"repo": "recyclarr/recyclarr",
"version": "v8.1.0",
"version": "v8.0.1",
"pinned": false,
"date": "2026-02-21T01:36:23Z"
"date": "2026-02-20T04:52:19Z"
},
{
"slug": "reitti",
@@ -1362,9 +1355,9 @@
{
"slug": "signoz",
"repo": "SigNoz/signoz-otel-collector",
"version": "v0.142.1",
"version": "v0.142.0",
"pinned": false,
"date": "2026-02-21T18:04:07Z"
"date": "2026-02-06T11:40:30Z"
},
{
"slug": "silverbullet",
@@ -1425,9 +1418,9 @@
{
"slug": "stirling-pdf",
"repo": "Stirling-Tools/Stirling-PDF",
"version": "v2.5.2",
"version": "v2.5.1",
"pinned": false,
"date": "2026-02-20T23:20:20Z"
"date": "2026-02-18T11:05:34Z"
},
{
"slug": "streamlink-webui",
@@ -1443,13 +1436,6 @@
"pinned": false,
"date": "2025-09-19T22:23:28Z"
},
{
"slug": "sure",
"repo": "we-promise/sure",
"version": "chart-v0.6.8-alpha.13",
"pinned": false,
"date": "2026-02-20T11:15:15Z"
},
{
"slug": "tandoor",
"repo": "TandoorRecipes/recipes",

View File

@@ -10,7 +10,7 @@
"updateable": true,
"privileged": false,
"interface_port": 8000,
"documentation": "https://maxdorninger.github.io/MediaManager/latest/",
"documentation": "https://maxdorninger.github.io/MediaManager/introduction.html",
"config_path": "/opt/mm/config/config.toml",
"website": "https://github.com/maxdorninger/MediaManager",
"logo": "https://cdn.jsdelivr.net/gh/selfhst/icons@main/webp/mediamanager.webp",

View File

@@ -13,10 +13,6 @@ setting_up_container
network_check
update_os
msg_info "Installing Dependencies"
$STD apt install -y build-essential
msg_ok "Installed Dependencies"
PYTHON_VERSION="3.12" setup_uv
fetch_and_deploy_gh_release "huntarr" "plexguide/Huntarr.io" "tarball"

View File

@@ -50,7 +50,6 @@ cp .env.sample .env
sed -i "s#http://localhost:1337#http://$LOCAL_IP:1337#g" /opt/planka/.env
sed -i "s#postgres@localhost#planka:$DB_PASS@localhost#g" /opt/planka/.env
sed -i "s#notsecretkey#$SECRET_KEY#g" /opt/planka/.env
mkdir -p /opt/planka/data/protected/{favicons,user-avatars,background-images} /opt/planka/data/private/attachments
$STD npm run db:init
msg_ok "Configured PLANKA"

View File

@@ -20,7 +20,7 @@ msg_ok "Installed Dependencies"
fetch_and_deploy_gh_release "recyclarr" "recyclarr/recyclarr" "prebuild" "latest" "/usr/local/bin" "recyclarr-linux-x64.tar.xz"
msg_info "Configuring Recyclarr"
mkdir -p /root/.config/recyclarr/{configs,includes}
mkdir -p /root/.config/recyclarr
$STD recyclarr config create
msg_ok "Configured Recyclarr"

View File

@@ -28,10 +28,9 @@ setup_deb822_repo \
"stable" \
"main"
$STD apt install -y elasticsearch
sed -i 's/^-Xms.*/-Xms2g/' /etc/elasticsearch/jvm.options
sed -i 's/^-Xmx.*/-Xmx2g/' /etc/elasticsearch/jvm.options
echo "-Xms2g" >>/etc/elasticsearch/jvm.options
echo "-Xmx2g" >>/etc/elasticsearch/jvm.options
$STD /usr/share/elasticsearch/bin/elasticsearch-plugin install ingest-attachment -b
systemctl daemon-reload
systemctl enable -q elasticsearch
systemctl restart -q elasticsearch
msg_ok "Setup Elasticsearch"