Compare commits

...

14 Commits

Author SHA1 Message Date
CanbiZ
cd306efc9d Change updateable status to true in npmplus.json 2025-09-10 08:04:35 +02:00
CanbiZ
9d89cfbfa0 Update npmplus.json 2025-09-10 07:59:22 +02:00
CanbiZ
5d17626b83 Improve npmplus credential retrieval and messaging
Enhanced the install script to attempt live log monitoring for credentials if not found initially, and updated the info message in npmplus.json to guide users to check docker logs if the credentials file is missing.
2025-09-10 07:58:02 +02:00
community-scripts-pr-app[bot]
e7adf1a9b5 Update CHANGELOG.md (#7529)
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2025-09-10 00:12:25 +00:00
community-scripts-pr-app[bot]
36fb86eaf8 Update versions.json (#7528)
Co-authored-by: GitHub Actions[bot] <github-actions[bot]@users.noreply.github.com>
2025-09-10 02:12:00 +02:00
community-scripts-pr-app[bot]
495c47224e Update CHANGELOG.md (#7525)
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2025-09-09 21:23:22 +00:00
community-scripts-pr-app[bot]
7af71384b4 Update CHANGELOG.md (#7524)
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2025-09-09 21:18:08 +00:00
dependabot[bot]
e318152ee3 Bump vite from 7.0.0 to 7.1.5 in /frontend (#7522)
Bumps [vite](https://github.com/vitejs/vite/tree/HEAD/packages/vite) from 7.0.0 to 7.1.5.
- [Release notes](https://github.com/vitejs/vite/releases)
- [Changelog](https://github.com/vitejs/vite/blob/main/packages/vite/CHANGELOG.md)
- [Commits](https://github.com/vitejs/vite/commits/v7.1.5/packages/vite)

---
updated-dependencies:
- dependency-name: vite
  dependency-version: 7.1.5
  dependency-type: indirect
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-09-09 23:17:43 +02:00
community-scripts-pr-app[bot]
17dc7c90a1 Update CHANGELOG.md (#7521)
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2025-09-09 20:35:29 +00:00
Chris
226a5bce8f Pulse: standardise install/update with Pulse repo script (#7519)
- revert the pulse => pulse-backend service name change
- remove message about older installs
- symlink pulse binary to /usr/local/bin
2025-09-09 22:35:04 +02:00
community-scripts-pr-app[bot]
ffd2ed01b9 Update CHANGELOG.md (#7518)
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2025-09-09 17:13:00 +00:00
Chris
3348e2fff0 Tududi: v0.81 (#7517) 2025-09-09 19:12:27 +02:00
community-scripts-pr-app[bot]
def41f66f4 Update CHANGELOG.md (#7516)
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2025-09-09 14:48:50 +00:00
Slaviša Arežina
02a1a732f8 WGDashboard: Revert back to old update method (#7500)
* Revert back to git clone

* Add git to sh
2025-09-09 16:48:12 +02:00
11 changed files with 151 additions and 101 deletions

View File

@@ -10,22 +10,34 @@
> [!CAUTION]
Exercise vigilance regarding copycat or coat-tailing sites that seek to exploit the project's popularity for potentially malicious purposes.
## 2025-09-10
## 2025-09-09
### 🚀 Updated Scripts
- #### 🐞 Bug Fixes
- Tududi: v0.81 [@vhsdream](https://github.com/vhsdream) ([#7517](https://github.com/community-scripts/ProxmoxVE/pull/7517))
- WGDashboard: Revert back to old update method [@tremor021](https://github.com/tremor021) ([#7500](https://github.com/community-scripts/ProxmoxVE/pull/7500))
- AdventureLog: remove folder during update process [@MickLesk](https://github.com/MickLesk) ([#7507](https://github.com/community-scripts/ProxmoxVE/pull/7507))
- PLANKA: Fix backup and restore commands [@tremor021](https://github.com/tremor021) ([#7505](https://github.com/community-scripts/ProxmoxVE/pull/7505))
- Recyclarr: Suppress config creation output [@tremor021](https://github.com/tremor021) ([#7502](https://github.com/community-scripts/ProxmoxVE/pull/7502))
- #### 🔧 Refactor
- Pulse: standardise install/update with Pulse repo script [@vhsdream](https://github.com/vhsdream) ([#7519](https://github.com/community-scripts/ProxmoxVE/pull/7519))
### 🌐 Website
- #### 🐞 Bug Fixes
- Refactor GitHubStarsButton to wrap in Link component for external navigation [@BramSuurdje](https://github.com/BramSuurdje) ([#7492](https://github.com/community-scripts/ProxmoxVE/pull/7492))
- #### ✨ New Features
- Bump vite from 7.0.0 to 7.1.5 in /frontend [@dependabot[bot]](https://github.com/dependabot[bot]) ([#7522](https://github.com/community-scripts/ProxmoxVE/pull/7522))
- #### 📝 Script Information
- swizzin: Change category from nvr to media [@MickLesk](https://github.com/MickLesk) ([#7511](https://github.com/community-scripts/ProxmoxVE/pull/7511))

View File

@@ -28,10 +28,6 @@ function update_script() {
exit
fi
if [[ ! -f ~/.pulse ]]; then
msg_error "Old Installation Found! Please recreate the container due big changes in the software."
exit 1
fi
if check_for_gh_release "pulse" "rcourtman/Pulse"; then
SERVICE_PATH="/etc/systemd/system"
msg_info "Stopping Services"
@@ -43,19 +39,20 @@ function update_script() {
fi
fetch_and_deploy_gh_release "pulse" "rcourtman/Pulse" "prebuild" "latest" "/opt/pulse" "*-linux-amd64.tar.gz"
ln -sf /opt/pulse/bin/pulse /usr/local/bin/pulse
chown -R pulse:pulse /etc/pulse /opt/pulse
if [[ -f "$SERVICE_PATH"/pulse.service ]]; then
mv "$SERVICE_PATH"/pulse.service "$SERVICE_PATH"/pulse-backend.service
if [[ -f "$SERVICE_PATH"/pulse-backend.service ]]; then
mv "$SERVICE_PATH"/pulse-backend.service "$SERVICE_PATH"/pulse.service
fi
sed -i -e 's|pulse/pulse|pulse/bin/pulse|' \
-e 's/^Environment="API.*$//' "$SERVICE_PATH"/pulse-backend.service
-e 's/^Environment="API.*$//' "$SERVICE_PATH"/pulse.service
systemctl daemon-reload
if grep -q 'pulse-home:/bin/bash' /etc/passwd; then
usermod -s /usr/sbin/nologin pulse
fi
msg_info "Starting Services"
systemctl start pulse-backend
systemctl start pulse
msg_ok "Started Services"
msg_ok "Updated Successfully"
fi

View File

@@ -27,17 +27,22 @@ function update_script() {
msg_error "No ${APP} Installation Found!"
exit
fi
NODE_VERSION="22" setup_nodejs
if check_for_gh_release "tududi" "chrisvel/tududi"; then
msg_info "Stopping Service"
systemctl stop tududi
msg_ok "Stopped Service"
msg_info "Remove and backup Files"
DB="$(sed -n '/^DB_FILE/s/[^=]*=//p' /opt/tududi/backend/.env)"
export DB_FILE="$DB"
cp /opt/tududi/backend/.env /opt/tududi.env
rm -rf /opt/tududi/backend/dist
msg_ok "Backup and removed Files"
fetch_and_deploy_gh_release "tududi" "chrisvel/tududi" "tarball" "v0.80" "/opt/tududi"
fetch_and_deploy_gh_release "tududi" "chrisvel/tududi" "tarball" "latest" "/opt/tududi"
msg_info "Updating ${APP}"
cd /opt/tududi
@@ -48,6 +53,10 @@ function update_script() {
mv ./public/locales ./backend/dist
mv ./public/favicon.* ./backend/dist
mv /opt/tududi.env /opt/tududi/.env
sed -i -e 's|/tududi$|/tududi/backend|' \
-e 's|npm run start|bash /opt/tududi/backend/cmd/start.sh|' \
/etc/systemd/system/tududi.service
systemctl daemon-reload
msg_ok "Updated $APP"
msg_info "Starting Service"

View File

@@ -28,6 +28,12 @@ function update_script() {
msg_error "No ${APP} Installation Found!"
exit
fi
if ! dpkg -s git >/dev/null 2>&1; then
msg_info "Installing git"
$STD apt-get update
$STD apt-get install -y git
msg_ok "Installed git"
fi
apt-get update
apt-get -y upgrade
if [[ -d /etc/wgdashboard ]]; then

View File

@@ -7666,11 +7666,14 @@
}
},
"node_modules/fdir": {
"version": "6.4.6",
"resolved": "https://registry.npmjs.org/fdir/-/fdir-6.4.6.tgz",
"integrity": "sha512-hiFoqpyZcfNm1yc4u8oWCf9A2c4D3QjCrks3zmoVKVxpQRzmPNar1hUJcBG2RQHvEVGDN+Jm81ZheVLAQMK6+w==",
"version": "6.5.0",
"resolved": "https://registry.npmjs.org/fdir/-/fdir-6.5.0.tgz",
"integrity": "sha512-tIbYtZbucOs0BRGqPJkshJUYdL+SDH7dVM8gjy+ERp3WAUjLEFJE+02kanyHtwjWOnwrKYBiwAmM0p4kLJAnXg==",
"dev": true,
"license": "MIT",
"engines": {
"node": ">=12.0.0"
},
"peerDependencies": {
"picomatch": "^3 || ^4"
},
@@ -11432,9 +11435,9 @@
"license": "ISC"
},
"node_modules/picomatch": {
"version": "4.0.2",
"resolved": "https://registry.npmjs.org/picomatch/-/picomatch-4.0.2.tgz",
"integrity": "sha512-M7BAV6Rlcy5u+m6oPhAPFgJTzAioX/6B0DxyvDlo9l8+T3nLKbrczg2WLUyzd45L8RqfUMyGPzekbMvX2Ldkwg==",
"version": "4.0.3",
"resolved": "https://registry.npmjs.org/picomatch/-/picomatch-4.0.3.tgz",
"integrity": "sha512-5gTmgEY/sqK6gFXLIsQNH19lWb4ebPDLA4SdLP7dsWkIXHWlG66oPuVvXSGFPppYZz8ZDZq0dYYrbHfBCVUb1Q==",
"dev": true,
"license": "MIT",
"engines": {
@@ -13392,14 +13395,14 @@
"license": "MIT"
},
"node_modules/tinyglobby": {
"version": "0.2.14",
"resolved": "https://registry.npmjs.org/tinyglobby/-/tinyglobby-0.2.14.tgz",
"integrity": "sha512-tX5e7OM1HnYr2+a2C/4V0htOcSQcoSTH9KgJnVvNm5zm/cyEWKJ7j7YutsH9CxMdtOkkLFy2AHrMci9IM8IPZQ==",
"version": "0.2.15",
"resolved": "https://registry.npmjs.org/tinyglobby/-/tinyglobby-0.2.15.tgz",
"integrity": "sha512-j2Zq4NyQYG5XMST4cbs02Ak8iJUdxRM0XI5QyxXuZOzKOINmWurp3smXu3y5wDcJrptwpSjgXHzIQxR0omXljQ==",
"dev": true,
"license": "MIT",
"dependencies": {
"fdir": "^6.4.4",
"picomatch": "^4.0.2"
"fdir": "^6.5.0",
"picomatch": "^4.0.3"
},
"engines": {
"node": ">=12.0.0"
@@ -13922,19 +13925,19 @@
"license": "MIT"
},
"node_modules/vite": {
"version": "7.0.0",
"resolved": "https://registry.npmjs.org/vite/-/vite-7.0.0.tgz",
"integrity": "sha512-ixXJB1YRgDIw2OszKQS9WxGHKwLdCsbQNkpJN171udl6szi/rIySHL6/Os3s2+oE4P/FLD4dxg4mD7Wust+u5g==",
"version": "7.1.5",
"resolved": "https://registry.npmjs.org/vite/-/vite-7.1.5.tgz",
"integrity": "sha512-4cKBO9wR75r0BeIWWWId9XK9Lj6La5X846Zw9dFfzMRw38IlTk2iCcUt6hsyiDRcPidc55ZParFYDXi0nXOeLQ==",
"dev": true,
"license": "MIT",
"peer": true,
"dependencies": {
"esbuild": "^0.25.0",
"fdir": "^6.4.6",
"picomatch": "^4.0.2",
"fdir": "^6.5.0",
"picomatch": "^4.0.3",
"postcss": "^8.5.6",
"rollup": "^4.40.0",
"tinyglobby": "^0.2.14"
"rollup": "^4.43.0",
"tinyglobby": "^0.2.15"
},
"bin": {
"vite": "bin/vite.js"

View File

@@ -6,7 +6,7 @@
],
"date_created": "2025-03-13",
"type": "ct",
"updateable": false,
"updateable": true,
"privileged": false,
"interface_port": 81,
"documentation": "https://github.com/ZoeyVid/NPMplus/blob/develop/README.md",
@@ -39,7 +39,7 @@
}
],
"default_credentials": {
"username": "root",
"username": "admin@example.org",
"password": null
},
"notes": [
@@ -52,7 +52,7 @@
"type": "info"
},
{
"text": "Application credentials: `cat /opt/.npm_pwd`",
"text": "Application credentials: `cat /opt/.npm_pwd` - if file not exist in LXC check docker logs for password with `docker logs npmplus`",
"type": "info"
}
]

View File

@@ -1,4 +1,49 @@
[
{
"name": "authelia/authelia",
"version": "v4.39.9",
"date": "2025-09-09T22:48:24Z"
},
{
"name": "MediaBrowser/Emby.Releases",
"version": "4.9.1.2",
"date": "2025-06-26T22:08:00Z"
},
{
"name": "jenkinsci/jenkins",
"version": "jenkins-2.527",
"date": "2025-09-09T19:58:28Z"
},
{
"name": "kyantech/Palmr",
"version": "v3.2.1-beta",
"date": "2025-09-09T19:47:13Z"
},
{
"name": "Part-DB/Part-DB-server",
"version": "v2.1.2",
"date": "2025-09-09T19:34:11Z"
},
{
"name": "hargata/lubelog",
"version": "v1.5.1",
"date": "2025-09-09T16:56:49Z"
},
{
"name": "open-webui/open-webui",
"version": "v0.6.27",
"date": "2025-09-09T14:34:27Z"
},
{
"name": "chrisvel/tududi",
"version": "v0.81",
"date": "2025-09-09T14:06:41Z"
},
{
"name": "firefly-iii/firefly-iii",
"version": "v6.3.2",
"date": "2025-08-19T04:08:36Z"
},
{
"name": "element-hq/synapse",
"version": "v1.138.0",
@@ -9,16 +54,6 @@
"version": "v3.5.2",
"date": "2025-09-09T10:28:12Z"
},
{
"name": "authelia/authelia",
"version": "v4.39.9",
"date": "2025-09-09T10:20:45Z"
},
{
"name": "chrisvel/tududi",
"version": "v0.80",
"date": "2025-07-24T14:12:39Z"
},
{
"name": "docker/compose",
"version": "v2.39.3",
@@ -99,6 +134,11 @@
"version": "v1.2.1",
"date": "2025-09-08T19:31:07Z"
},
{
"name": "fallenbagel/jellyseerr",
"version": "preview-OIDC",
"date": "2025-09-08T18:08:15Z"
},
{
"name": "mattermost/mattermost",
"version": "server/public/v0.1.18",
@@ -169,11 +209,6 @@
"version": "v25.3",
"date": "2025-09-01T09:47:06Z"
},
{
"name": "firefly-iii/firefly-iii",
"version": "v6.3.2",
"date": "2025-08-19T04:08:36Z"
},
{
"name": "webmin/webmin",
"version": "2.501",
@@ -189,21 +224,11 @@
"version": "v1.19.8",
"date": "2025-09-07T23:36:42Z"
},
{
"name": "Part-DB/Part-DB-server",
"version": "v2.1.1",
"date": "2025-09-07T21:59:53Z"
},
{
"name": "minio/minio",
"version": "RELEASE.2025-09-07T16-13-09Z",
"date": "2025-09-07T18:53:04Z"
},
{
"name": "MediaBrowser/Emby.Releases",
"version": "4.9.1.2",
"date": "2025-06-26T22:08:00Z"
},
{
"name": "karakeep-app/karakeep",
"version": "sdk/v0.27.0",
@@ -434,11 +459,6 @@
"version": "346",
"date": "2025-09-03T09:13:05Z"
},
{
"name": "jenkinsci/jenkins",
"version": "jenkins-2.526",
"date": "2025-09-02T18:44:42Z"
},
{
"name": "apache/cassandra",
"version": "cassandra-4.1.10",
@@ -504,11 +524,6 @@
"version": "rrc_steady_12.2.0-17245430286.patch1",
"date": "2025-09-01T14:19:14Z"
},
{
"name": "fallenbagel/jellyseerr",
"version": "preview-issue-description",
"date": "2025-09-01T12:21:58Z"
},
{
"name": "grokability/snipe-it",
"version": "v8.3.1",
@@ -574,11 +589,6 @@
"version": "v3.4.1",
"date": "2025-08-28T13:56:00Z"
},
{
"name": "open-webui/open-webui",
"version": "v0.6.26",
"date": "2025-08-28T10:40:30Z"
},
{
"name": "garethgeorge/backrest",
"version": "v1.9.2",
@@ -699,16 +709,6 @@
"version": "v6.9.1",
"date": "2025-08-22T04:04:12Z"
},
{
"name": "hargata/lubelog",
"version": "v1.5.0",
"date": "2025-08-21T17:33:22Z"
},
{
"name": "kyantech/Palmr",
"version": "v3.2.0-beta",
"date": "2025-08-21T16:51:45Z"
},
{
"name": "cloudflare/cloudflared",
"version": "2025.8.1",

View File

@@ -89,19 +89,36 @@ customize
msg_info "Retrieving Default Login (Patience)"
PASSWORD_FOUND=0
for i in {1..60}; do
PASSWORD_LINE=$(docker logs "$CONTAINER_ID" 2>&1 | awk '/Creating a new user:/ { print; exit }')
if [[ -n "$PASSWORD_LINE" ]]; then
PASSWORD=$(echo "$PASSWORD_LINE" | awk -F 'password: ' '{print $2}')
echo -e "username: admin@example.org\npassword: $PASSWORD" >/opt/.npm_pwd
PASSWORD_LINE=$(
{ awk '/Creating a new user:/{print; exit}' < <(docker logs "$CONTAINER_ID" 2>&1); } || true
)
if [[ -n "${PASSWORD_LINE:-}" ]]; then
PASSWORD="${PASSWORD_LINE#*password: }"
printf 'username: admin@example.org\npassword: %s\n' "$PASSWORD" >/opt/.npm_pwd
msg_ok "Saved default login to /opt/.npm_pwd"
PASSWORD_FOUND=1
break
fi
sleep 2
done
if [[ $PASSWORD_FOUND -eq 0 ]]; then
PASSWORD_LINE=$(
timeout 30s bash -c '
docker logs -f --since=0s --tail=0 "$1" 2>&1 | awk "/Creating a new user:/{print; exit}"
' _ "$CONTAINER_ID" || true
)
if [[ -n "${PASSWORD_LINE:-}" ]]; then
PASSWORD="${PASSWORD_LINE#*password: }"
printf 'username: admin@example.org\npassword: %s\n' "$PASSWORD" >/opt/.npm_pwd
msg_ok "Saved default login to /opt/.npm_pwd (live)"
PASSWORD_FOUND=1
fi
fi
if [[ $PASSWORD_FOUND -eq 0 ]]; then
msg_error "Could not retrieve default login after 60 seconds."
msg_error "Could not retrieve default login after 120s."
echo -e "\nYou can manually check the container logs with:\n docker logs $CONTAINER_ID | grep 'Creating a new user:'\n"
fi

View File

@@ -30,11 +30,12 @@ fi
mkdir -p /etc/pulse
fetch_and_deploy_gh_release "pulse" "rcourtman/Pulse" "prebuild" "latest" "/opt/pulse" "*-linux-amd64.tar.gz"
ln -sf /opt/pulse/bin/pulse /usr/local/bin/pulse
chown -R pulse:pulse /etc/pulse /opt/pulse
msg_ok "Installed Pulse"
msg_info "Creating Service"
cat <<EOF >/etc/systemd/system/pulse-backend.service
cat <<EOF >/etc/systemd/system/pulse.service
[Unit]
Description=Pulse Monitoring Server
After=network.target
@@ -55,7 +56,7 @@ Environment="PULSE_DATA_DIR=/etc/pulse"
[Install]
WantedBy=multi-user.target
EOF
systemctl enable -q --now pulse-backend
systemctl enable -q --now pulse
msg_ok "Created Service"
motd_ssh

View File

@@ -19,8 +19,8 @@ $STD apt-get install -y \
yq
msg_ok "Installed Dependencies"
NODE_VERSION="20" setup_nodejs
fetch_and_deploy_gh_release "tududi" "chrisvel/tududi" "tarball" "v0.80" "/opt/tududi"
NODE_VERSION="22" setup_nodejs
fetch_and_deploy_gh_release "tududi" "chrisvel/tududi" "tarball" "latest" "/opt/tududi"
msg_info "Configuring Tududi"
cd /opt/tududi
@@ -37,15 +37,16 @@ DB_LOCATION="/opt/tududi-db"
UPLOAD_DIR="/opt/tududi-uploads"
mkdir -p {"$DB_LOCATION","$UPLOAD_DIR"}
SECRET="$(openssl rand -hex 64)"
sed -e 's/^GOOGLE/# &/' \
-e '/TUDUDI_SESSION/s/^# //' \
-e '/NODE_ENV/s/^# //' \
-e "s/your_session_secret_here/$SECRET/" \
-e 's/development/production/' \
-e "\$a\DB_FILE=$DB_LOCATION/production.sqlite3" \
-e "\$a\TUDUDI_UPLOAD_PATH=$UPLOAD_DIR" \
/opt/tududi/backend/.env.example >/opt/tududi/backend/.env
export DB_FILE="$DB_LOCATION/production.sqlite3"
cat <<EOF >/opt/tududi/backend/.env
TUDUDI_SESSION_SECRET=${SECRET}
TUDUDI_ALLOWED_ORIGINS=<your tududi IP or FQDN>
NODE_ENV=production
DB_FILE=${DB_LOCATION}/production.sqlite3
TUDUDI_UPLOAD_PATH=${UPLOAD_DIR}
DISABLE_TELEGRAM=true
DIABLE_SCHEDULER=false
EOF
export DB_FILE="${DB_LOCATION}/production.sqlite3"
$STD npm run db:init
msg_ok "Created env and database"
@@ -57,9 +58,9 @@ After=network.target
[Service]
Type=simple
WorkingDirectory=/opt/tududi
WorkingDirectory=/opt/tududi/backend
EnvironmentFile=/opt/tududi/backend/.env
ExecStart=/usr/bin/npm run start
ExecStart=/usr/bin/bash /opt/tududi/backend/cmd/start.sh
[Install]
WantedBy=multi-user.target

View File

@@ -13,6 +13,10 @@ setting_up_container
network_check
update_os
msg_info "Installing Dependencies"
$STD apt-get install -y git
msg_ok "Installed Dependencies"
msg_info "Installing WireGuard"
$STD apt-get install -y wireguard wireguard-tools net-tools iptables
DEBIAN_FRONTEND=noninteractive apt-get -o Dpkg::Options::="--force-confnew" install -y iptables-persistent &>/dev/null
@@ -21,7 +25,7 @@ msg_ok "Installed WireGuard"
read -r -p "${TAB3}Would you like to add WGDashboard? <y/N> " prompt
if [[ "${prompt,,}" =~ ^(y|yes)$ ]]; then
fetch_and_deploy_gh_release "wgdashboard" "donaldzou/WGDashboard" "tarball" "latest" "/etc/wgdashboard"
git clone -q https://github.com/donaldzou/WGDashboard.git /etc/wgdashboard
msg_info "Installing WGDashboard"
cd /etc/wgdashboard/src