Compare commits

..
Author SHA1 Message Date
github-actions[bot] ba64d133f3 Update CHANGELOG.md 2026-08-24 12:06:43 +00:00
CanbiZ (MickLesk) 4c6ccdde35 fireshare: source fireshare.env during update instead of hardcoding defaults (#16706) 2026-08-24 14:06:30 +02:00
community-scripts-pr-app[bot]andgithub-actions[bot] <github-actions[bot]@users.noreply.github.com> 8f407870b9 Update CHANGELOG.md (#16723)
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2026-08-24 11:51:31 +00:00
CanbiZ (MickLesk) a876ad22bb netbox: serve on plain HTTP too, port 80 forced HTTPS redirect broke reverse proxies (#16707)
* netbox: serve on plain HTTP too, port 80 forced HTTPS redirect broke reverse proxies

* Update netbox-install.sh for Apache configuration

Modify Apache configuration to serve NetBox on port 80.
2026-08-24 13:51:03 +02:00
community-scripts-pr-app[bot]andgithub-actions[bot] <github-actions[bot]@users.noreply.github.com> 9d719d18d2 Update CHANGELOG.md (#16722)
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2026-08-24 11:46:20 +00:00
CanbiZ (MickLesk) 3c56af9f33 fileflows: update download URL, old /downloads/zip endpoint returns 404 (#16708) 2026-08-24 13:45:56 +02:00
community-scripts-pr-app[bot]andgithub-actions[bot] <github-actions[bot]@users.noreply.github.com> e9744fa681 Update CHANGELOG.md (#16721)
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2026-08-24 11:45:38 +00:00
CanbiZ (MickLesk) d1dd9e18e4 post-pve/pbs-install: fix component_exists_in_sources matching substrings of hyphenated tokens (#16709)
* post-pve-install: fix component_exists_in_sources matching substrings of hyphenated tokens

* post-pbs-install: fix component_exists_in_sources matching substrings of hyphenated tokens
2026-08-24 13:45:15 +02:00
community-scripts-pr-app[bot]andgithub-actions[bot] <github-actions[bot]@users.noreply.github.com> 7cc090d508 Update CHANGELOG.md (#16720)
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2026-08-24 11:41:14 +00:00
CanbiZ (MickLesk) 566c203a34 Gitea: fix git-over-SSH auth, group-writable home dir tripped sshd StrictModes (#16710)
* gitea: fix git-over-SSH auth, group-writable home dir tripped sshd StrictModes

* Update gitea-install.sh
2026-08-24 13:40:43 +02:00
Michel Roegl-BrunnerandClaude Opus 4.8 803fbfdd9f Document the breaking-change advisory block in the PR template
Explains the ```breaking-change block a breaking-change PR can carry —
severity, action (warn/block), expect, and before_update steps — with a
copy-paste example kept inside an HTML comment so it stays inert until an
author fills it in.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01TFBuZEp142Ei2PAfWqbMXT
2026-08-24 13:14:17 +02:00
Michel Roegl-BrunnerandClaude Opus 4.8 19bfe87e0e Notify Helper-Scripts site when a breaking-change PR merges
On a merged PR labelled "breaking change", POST the PR number to the site's
/api/breaking-changes/ingest endpoint so it can show a temporary advisory on
the affected scripts. Uses pull_request_target (secrets available for fork
PRs) and never checks out PR code — it only forwards the number after merge.
The `labeled` trigger also covers labelling a PR after it has merged.

Requires repo secret BREAKING_CHANGE_INGEST_SECRET (matching the site) and an
optional SITE_URL variable (defaults to https://community-scripts.org).

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01TFBuZEp142Ei2PAfWqbMXT
2026-08-24 10:33:51 +02:00
community-scripts-pr-app[bot]andgithub-actions[bot] <github-actions[bot]@users.noreply.github.com> c8c5b91ec4 Update CHANGELOG.md (#16705)
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2026-08-24 05:45:16 +00:00
CanbiZ (MickLesk) 065f34aefe build.func: allow default.vars to raise var_cpu/var_ram/var_disk above app baseline (#16704) 2026-08-24 07:44:47 +02:00
10 changed files with 174 additions and 11 deletions
+32
View File
@@ -35,3 +35,35 @@ Fixes #
- [ ] 🌍 **Website update** Changes to script metadata (PocketBase/website data).
- [ ] 🔧 **Refactoring / Code Cleanup** Improves readability or maintainability without changing functionality.
- [ ] 📝 **Documentation update** Changes to `README`, `AppName.md`, `CONTRIBUTING.md`, or other docs.
---
## 💥 Breaking Change Advisory (only if you checked "Breaking change")
If this PR changes existing behaviour in a way that may require action before an
update, add a `breaking-change` advisory block to this PR body. The website and
the in-container update guard read it to tell operators exactly what to expect,
what to do first, and — with `action: block` — to stop an update until it's
handled. Every field is optional; the advisory auto-expires 30 days after merge.
Copy the block out of the comment below, fill it in, and paste it here:
<!--
```breaking-change
severity: warning # info | warning | critical
action: warn # warn (default) | block — "block" halts the update until an operator forces it
expect: One line describing what changes and why it may need action.
before_update:
- First thing to do before updating
- Second thing to do before updating
```
Guidance:
- Leave this commented (or delete it) for a routine change — no block, no advisory.
- Use `action: block` only for changes that break or lose data if the operator
updates without acting first (e.g. a required manual migration or backup).
- `expect:` supersedes the auto-scraped summary; keep it to one line.
- Steps render as a checklist on the site and in the update prompt.
-->
<!-- The advisory block is only active once it is OUTSIDE this comment. -->
+58
View File
@@ -0,0 +1,58 @@
name: Notify breaking change
# When a PR labelled "breaking change" is merged, tell the Helper-Scripts site
# so it can show a temporary advisory on the affected scripts. The site pulls
# the PR itself and re-verifies it is merged + labelled, so this workflow only
# has to hand over the PR number.
#
# Requires one repo secret:
# BREAKING_CHANGE_INGEST_SECRET — must match the value the site runs with.
# Site URL is taken from the existing FRONTEND_URL secret, then an optional
# SITE_URL variable, then a hard default.
#
# pull_request_target (not pull_request) so the run has access to the secret
# even for fork PRs. It is safe here: the job never checks out or runs PR code —
# it only forwards the number after the PR has merged.
on:
pull_request_target:
# closed -> fires on the merge itself
# labeled -> fires if the label is added to an already-merged PR
types: [closed, labeled]
concurrency:
group: notify-breaking-change-${{ github.event.pull_request.number }}
cancel-in-progress: false
jobs:
notify:
if: >-
github.event.pull_request.merged == true &&
contains(github.event.pull_request.labels.*.name, 'breaking change')
runs-on: ubuntu-latest
steps:
- name: Notify site of breaking change
env:
INGEST_SECRET: ${{ secrets.BREAKING_CHANGE_INGEST_SECRET }}
SITE_URL: ${{ secrets.FRONTEND_URL || vars.SITE_URL || 'https://community-scripts.org' }}
PR: ${{ github.event.pull_request.number }}
run: |
set -euo pipefail
if [ -z "${INGEST_SECRET:-}" ]; then
echo "::error::BREAKING_CHANGE_INGEST_SECRET secret is not set."
exit 1
fi
url="${SITE_URL%/}/api/breaking-changes/ingest"
echo "Notifying $url for PR #${PR}"
status="$(curl -sS -o response.json -w '%{http_code}' \
-X POST "$url" \
-H "Authorization: Bearer ${INGEST_SECRET}" \
-H "Content-Type: application/json" \
-d "{\"pr\": ${PR}}")"
echo "HTTP $status"
cat response.json || true
echo
if [ "$status" != "200" ]; then
echo "::error::ingest endpoint returned HTTP $status"
exit 1
fi
+17
View File
@@ -527,6 +527,23 @@ Exercise vigilance regarding copycat or coat-tailing sites that seek to exploit
</details>
## 2026-08-24
### 🚀 Updated Scripts
- #### 🐞 Bug Fixes
- fireshare: source fireshare.env during update [@MickLesk](https://github.com/MickLesk) ([#16706](https://github.com/community-scripts/ProxmoxVE/pull/16706))
- netbox: serve on plain HTTP too, port 80 forced HTTPS redirect broke reverse proxies [@MickLesk](https://github.com/MickLesk) ([#16707](https://github.com/community-scripts/ProxmoxVE/pull/16707))
- FileFlows: Fix Download URL [@MickLesk](https://github.com/MickLesk) ([#16708](https://github.com/community-scripts/ProxmoxVE/pull/16708))
- Gitea: fix git-over-SSH auth, group-writable home dir tripped sshd StrictModes [@MickLesk](https://github.com/MickLesk) ([#16710](https://github.com/community-scripts/ProxmoxVE/pull/16710))
### 🧰 Tools
- #### 🐞 Bug Fixes
- post-pve/pbs-install: fix component_exists_in_sources matching substrings of hyphenated tokens [@MickLesk](https://github.com/MickLesk) ([#16709](https://github.com/community-scripts/ProxmoxVE/pull/16709))
## 2026-08-23
### 🚀 Updated Scripts
+1 -1
View File
@@ -101,7 +101,7 @@ function update_script() {
fi
msg_ok "Ensured ASP.NET Core Runtime"
fetch_and_deploy_from_url "https://fileflows.com/downloads/zip" "/opt/fileflows"
fetch_and_deploy_from_url "https://fileflows.com/downloads/ff-latest.tar.xz" "/opt/fileflows"
msg_info "Starting Service"
systemctl --all start 'fileflows*'
+3 -5
View File
@@ -57,11 +57,9 @@ function update_script() {
$STD .venv/bin/python -m pip install --upgrade --break-system-packages pip
$STD .venv/bin/python -m pip install --no-cache-dir --break-system-packages --ignore-installed app/server
cp .venv/bin/fireshare /usr/local/bin/fireshare
export FLASK_APP="/opt/fireshare/app/server/fireshare:create_app()"
export DATA_DIRECTORY=/opt/fireshare-data
export IMAGE_DIRECTORY=/opt/fireshare-images
export VIDEO_DIRECTORY=/opt/fireshare-videos
export PROCESSED_DIRECTORY=/opt/fireshare-processed
set -a
source /opt/fireshare/fireshare.env
set +a
$STD uv run flask db upgrade
cd /opt/fireshare/app/client
$STD npm install
+1 -1
View File
@@ -39,7 +39,7 @@ else
fi
msg_ok "Installed ASP.NET Core Runtime"
fetch_and_deploy_from_url "https://fileflows.com/downloads/zip" "/opt/fileflows"
fetch_and_deploy_from_url "https://fileflows.com/downloads/ff-latest.tar.xz" "/opt/fileflows"
$STD ln -svf /usr/bin/ffmpeg /usr/local/bin/ffmpeg
$STD ln -svf /usr/bin/ffprobe /usr/local/bin/ffprobe
+1 -1
View File
@@ -30,7 +30,7 @@ setup_deb_based() {
chown -R gitea:gitea /var/lib/gitea/
chmod -R 750 /var/lib/gitea/
chown root:gitea /etc/gitea
chmod 770 /etc/gitea
chmod 750 /etc/gitea
sudo -u gitea ln -s /var/lib/gitea/data/.ssh/ /etc/gitea/.ssh
msg_ok "Configured Gitea"
+45 -1
View File
@@ -59,8 +59,52 @@ sed -i -e 's/ALLOWED_HOSTS = \[\]/ALLOWED_HOSTS = ["*"]/' \
$STD /opt/netbox/upgrade.sh
ln -s /opt/netbox/contrib/netbox-housekeeping.sh /etc/cron.daily/netbox-housekeeping
mv /opt/netbox/contrib/apache.conf /etc/apache2/sites-available/netbox.conf
$STD openssl req -x509 -nodes -days 365 -newkey rsa:2048 -keyout /etc/ssl/private/netbox.key -out /etc/ssl/certs/netbox.crt -subj "/C=US/O=NetBox/OU=Certificate/CN=localhost"
cat <<EOF >/etc/apache2/sites-available/netbox.conf
<VirtualHost *:80>
ProxyPreserveHost On
Alias /static /opt/netbox/netbox/static
<Directory /opt/netbox/netbox/static>
Options FollowSymLinks MultiViews
AllowOverride None
Require all granted
</Directory>
<Location /static>
ProxyPass !
</Location>
RequestHeader set "X-Forwarded-Proto" expr=%{REQUEST_SCHEME}
ProxyPass / http://127.0.0.1:8001/
ProxyPassReverse / http://127.0.0.1:8001/
</VirtualHost>
<VirtualHost *:443>
ProxyPreserveHost On
SSLEngine on
SSLCertificateFile /etc/ssl/certs/netbox.crt
SSLCertificateKeyFile /etc/ssl/private/netbox.key
Alias /static /opt/netbox/netbox/static
<Directory /opt/netbox/netbox/static>
Options FollowSymLinks MultiViews
AllowOverride None
Require all granted
</Directory>
<Location /static>
ProxyPass !
</Location>
RequestHeader set "X-Forwarded-Proto" expr=%{REQUEST_SCHEME}
ProxyPass / http://127.0.0.1:8001/
ProxyPassReverse / http://127.0.0.1:8001/
</VirtualHost>
EOF
$STD a2enmod ssl proxy proxy_http headers rewrite
$STD a2ensite netbox
systemctl restart apache2
+8 -1
View File
@@ -62,7 +62,14 @@ repo_state_list() {
component_exists_in_sources() {
local component="$1"
grep -h -E "^[^#]*Components:[^#]*\b${component}\b" /etc/apt/sources.list.d/*.sources 2>/dev/null | grep -q .
local line comp
while IFS= read -r line; do
line="${line#*Components:}"
for comp in $line; do
[[ "$comp" == "$component" ]] && return 0
done
done < <(grep -h -E "^[^#]*Components:" /etc/apt/sources.list.d/*.sources 2>/dev/null)
return 1
}
require_whiptail() {
+8 -1
View File
@@ -63,7 +63,14 @@ get_pve_major_minor() {
component_exists_in_sources() {
local component="$1"
grep -h -E "^[^#]*Components:[^#]*\b${component}\b" /etc/apt/sources.list.d/*.sources 2>/dev/null | grep -q .
local line comp
while IFS= read -r line; do
line="${line#*Components:}"
for comp in $line; do
[[ "$comp" == "$component" ]] && return 0
done
done < <(grep -h -E "^[^#]*Components:" /etc/apt/sources.list.d/*.sources 2>/dev/null)
return 1
}
main() {