mirror of
https://github.com/community-scripts/ProxmoxVE.git
synced 2026-09-07 22:36:45 +00:00
Compare commits
15 Commits
feat-node-
...
node-drift
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
bbc2002806 | ||
|
|
26f5922b1e | ||
|
|
653341829f | ||
|
|
b1c5fc9e01 | ||
|
|
2801c4a2c6 | ||
|
|
2c453c3992 | ||
|
|
9e42f4b4a8 | ||
|
|
568ef66ae7 | ||
|
|
7854acfad8 | ||
|
|
dfb33d9559 | ||
|
|
8eec87401c | ||
|
|
7deac8444e | ||
|
|
69dd23395e | ||
|
|
f6185c0b1d | ||
|
|
960e50f428 |
164
.github/workflows/check-node-versions.yml
generated
vendored
164
.github/workflows/check-node-versions.yml
generated
vendored
@@ -7,8 +7,9 @@ on:
|
|||||||
- cron: "0 6 * * 1"
|
- cron: "0 6 * * 1"
|
||||||
|
|
||||||
permissions:
|
permissions:
|
||||||
contents: read
|
contents: write
|
||||||
issues: write
|
issues: write
|
||||||
|
pull-requests: write
|
||||||
|
|
||||||
jobs:
|
jobs:
|
||||||
check-node-versions:
|
check-node-versions:
|
||||||
@@ -390,6 +391,132 @@ jobs:
|
|||||||
|
|
||||||
cat /tmp/drift_report.md
|
cat /tmp/drift_report.md
|
||||||
|
|
||||||
|
# One PR per script, not one for all of them: the bumps are judged
|
||||||
|
# individually (an app can be deliberately held back while the next is a
|
||||||
|
# safe follow), and a combined PR is blocked by its worst member.
|
||||||
|
- name: Open a pull request per drifting script
|
||||||
|
if: steps.check.outputs.drift_count != '0'
|
||||||
|
env:
|
||||||
|
GH_TOKEN: ${{ secrets.GITHUB_TOKEN }}
|
||||||
|
run: |
|
||||||
|
set -euo pipefail
|
||||||
|
|
||||||
|
git config user.name "github-actions[bot]"
|
||||||
|
git config user.email "41898282+github-actions[bot]@users.noreply.github.com"
|
||||||
|
|
||||||
|
: >/tmp/drift_prs.txt
|
||||||
|
|
||||||
|
while IFS='|' read -r slug our upstream hint repo; do
|
||||||
|
[[ -z "$slug" ]] && continue
|
||||||
|
|
||||||
|
# "dynamic" and "unset" have no literal to rewrite, and a missing
|
||||||
|
# upstream major is nothing to rewrite it to.
|
||||||
|
if [[ ! "$our" =~ ^[0-9]+$ || ! "$upstream" =~ ^[0-9]+$ ]]; then
|
||||||
|
printf '%s|manual||\n' "$slug" >>/tmp/drift_prs.txt
|
||||||
|
continue
|
||||||
|
fi
|
||||||
|
|
||||||
|
# The branch name carries the exact bump, so the PR for it answers
|
||||||
|
# the question on its own: open means it is waiting for a review,
|
||||||
|
# closed means someone said no to this bump. A later upstream
|
||||||
|
# release changes the name and gets its own PR.
|
||||||
|
branch="node-drift/${slug}-${our}-to-${upstream}"
|
||||||
|
|
||||||
|
existing=$(gh pr list --head "$branch" --state all \
|
||||||
|
--json number,state,url,labels --jq '.[0] // empty' 2>/dev/null || echo "")
|
||||||
|
|
||||||
|
if [[ -n "$existing" ]]; then
|
||||||
|
state=$(jq -r '.state' <<<"$existing")
|
||||||
|
url=$(jq -r '.url' <<<"$existing")
|
||||||
|
stale=$(jq -r '[.labels[]?.name] | index("stale") // empty' <<<"$existing")
|
||||||
|
|
||||||
|
case "$state" in
|
||||||
|
OPEN)
|
||||||
|
printf '%s|open|%s\n' "$slug" "$url" >>/tmp/drift_prs.txt
|
||||||
|
continue
|
||||||
|
;;
|
||||||
|
MERGED)
|
||||||
|
printf '%s|merged|%s\n' "$slug" "$url" >>/tmp/drift_prs.txt
|
||||||
|
continue
|
||||||
|
;;
|
||||||
|
*)
|
||||||
|
# The stale bot only closes what a human labelled "stale", so
|
||||||
|
# that close carries no verdict on the bump — reopen the case.
|
||||||
|
# A close without it is a decision, and it stands.
|
||||||
|
if [[ -z "$stale" ]]; then
|
||||||
|
printf '%s|declined|%s\n' "$slug" "$url" >>/tmp/drift_prs.txt
|
||||||
|
continue
|
||||||
|
fi
|
||||||
|
git push origin --delete "$branch" >/dev/null 2>&1 || true
|
||||||
|
;;
|
||||||
|
esac
|
||||||
|
fi
|
||||||
|
|
||||||
|
git checkout -q -B "$branch"
|
||||||
|
|
||||||
|
changed=()
|
||||||
|
for f in "install/${slug}-install.sh" "ct/${slug}.sh"; do
|
||||||
|
[[ -f "$f" ]] || continue
|
||||||
|
if grep -qE "NODE_VERSION=\"?${our}\"?" "$f"; then
|
||||||
|
sed -i -E "s/(NODE_VERSION=)\"?${our}\"?/\1\"${upstream}\"/g" "$f"
|
||||||
|
changed+=("$f")
|
||||||
|
fi
|
||||||
|
done
|
||||||
|
|
||||||
|
if [[ ${#changed[@]} -eq 0 ]]; then
|
||||||
|
printf '%s|manual||\n' "$slug" >>/tmp/drift_prs.txt
|
||||||
|
git checkout -q main
|
||||||
|
continue
|
||||||
|
fi
|
||||||
|
|
||||||
|
git add "${changed[@]}"
|
||||||
|
git commit -q -m "${slug}: bump Node.js from ${our} to ${upstream}"
|
||||||
|
|
||||||
|
if ! git push -q -u origin "$branch" 2>/dev/null; then
|
||||||
|
printf '%s|failed||\n' "$slug" >>/tmp/drift_prs.txt
|
||||||
|
git checkout -q main
|
||||||
|
continue
|
||||||
|
fi
|
||||||
|
|
||||||
|
# The test command is written here rather than left to
|
||||||
|
# pr-test-command.yml: a PR opened with GITHUB_TOKEN does not start
|
||||||
|
# another workflow, so that comment would never arrive.
|
||||||
|
body=$(cat <<PR_EOF
|
||||||
|
\`${slug}\` pins Node **${our}**, upstream indicates **${upstream}** (${hint}) — [upstream repo](https://github.com/${repo}).
|
||||||
|
|
||||||
|
Opened automatically by the weekly Node.js version drift check. **Nothing here has been tested.** Run it against a host before merging:
|
||||||
|
|
||||||
|
\`\`\`bash
|
||||||
|
export COMMUNITY_SCRIPTS_URL=https://raw.githubusercontent.com/${GITHUB_REPOSITORY}/${branch}
|
||||||
|
bash -c "\$(curl -fsSL "\$COMMUNITY_SCRIPTS_URL/ct/${slug}.sh")"
|
||||||
|
\`\`\`
|
||||||
|
|
||||||
|
Both lines are needed — each script pins \`_CS_DEFAULT_URL\` to \`main\`, and that pin is what fills \`COMMUNITY_SCRIPTS_URL\` when it is unset.
|
||||||
|
|
||||||
|
If the bump is wrong — upstream ships a newer Node than the app needs, or this script is deliberately held back — **close this PR**. It gets recorded on the drift report and this exact bump is not proposed again.
|
||||||
|
PR_EOF
|
||||||
|
)
|
||||||
|
|
||||||
|
# The label goes on at creation, not in a second call: it is what
|
||||||
|
# exempts the PR from the template check, and that check runs on
|
||||||
|
# "opened" — a label added a moment later can arrive too late.
|
||||||
|
if url=$(gh pr create \
|
||||||
|
--title "${slug}: bump Node.js from ${our} to ${upstream}" \
|
||||||
|
--body "$body" \
|
||||||
|
--base main \
|
||||||
|
--head "$branch" \
|
||||||
|
--label "automated pr" 2>/dev/null); then
|
||||||
|
printf '%s|open|%s\n' "$slug" "$url" >>/tmp/drift_prs.txt
|
||||||
|
else
|
||||||
|
printf '%s|failed||\n' "$slug" >>/tmp/drift_prs.txt
|
||||||
|
fi
|
||||||
|
|
||||||
|
git checkout -q main
|
||||||
|
done </tmp/drift_scripts.txt
|
||||||
|
|
||||||
|
echo "Pull request status per script:"
|
||||||
|
cat /tmp/drift_prs.txt
|
||||||
|
|
||||||
- name: Create or update summary issue
|
- name: Create or update summary issue
|
||||||
if: steps.check.outputs.drift_count != '0'
|
if: steps.check.outputs.drift_count != '0'
|
||||||
env:
|
env:
|
||||||
@@ -403,11 +530,31 @@ jobs:
|
|||||||
TOTAL="${{ steps.check.outputs.total }}"
|
TOTAL="${{ steps.check.outputs.total }}"
|
||||||
CHECKED="${{ steps.check.outputs.checked }}"
|
CHECKED="${{ steps.check.outputs.checked }}"
|
||||||
|
|
||||||
# Build checklist from drift data
|
# Build checklist from drift data. Each item carries the state of its
|
||||||
|
# own PR, so the list tracks itself instead of relying on someone
|
||||||
|
# ticking a box that the next run would overwrite anyway.
|
||||||
CHECKLIST=""
|
CHECKLIST=""
|
||||||
while IFS='|' read -r slug our_version upstream_major upstream_hint repo; do
|
while IFS='|' read -r slug our_version upstream_major upstream_hint repo; do
|
||||||
[[ -z "$slug" ]] && continue
|
[[ -z "$slug" ]] && continue
|
||||||
CHECKLIST+="- [ ] **\`${slug}\`** — ours: \`${our_version}\` → upstream: \`${upstream_major}\` (${upstream_hint}) — [repo](https://github.com/${repo})"$'\n'
|
|
||||||
|
pr_state=""
|
||||||
|
pr_url=""
|
||||||
|
if [[ -f /tmp/drift_prs.txt ]]; then
|
||||||
|
pr_line=$(grep -m1 "^${slug}|" /tmp/drift_prs.txt || echo "")
|
||||||
|
pr_state=$(cut -d'|' -f2 <<<"$pr_line")
|
||||||
|
pr_url=$(cut -d'|' -f3 <<<"$pr_line")
|
||||||
|
fi
|
||||||
|
|
||||||
|
case "$pr_state" in
|
||||||
|
open) mark="- [ ]"; note="— ${pr_url}" ;;
|
||||||
|
declined) mark="- [x]"; note="— declined in ${pr_url}, not proposed again" ;;
|
||||||
|
merged) mark="- [x]"; note="— merged in ${pr_url}" ;;
|
||||||
|
manual) mark="- [ ]"; note="— needs a manual change (no fixed \`NODE_VERSION\` to rewrite)" ;;
|
||||||
|
failed) mark="- [ ]"; note="— could not open a PR automatically" ;;
|
||||||
|
*) mark="- [ ]"; note="" ;;
|
||||||
|
esac
|
||||||
|
|
||||||
|
CHECKLIST+="${mark} **\`${slug}\`** — ours: \`${our_version}\` → upstream: \`${upstream_major}\` (${upstream_hint}) — [repo](https://github.com/${repo}) ${note}"$'\n'
|
||||||
done < /tmp/drift_scripts.txt
|
done < /tmp/drift_scripts.txt
|
||||||
|
|
||||||
# Build full report table
|
# Build full report table
|
||||||
@@ -424,11 +571,12 @@ jobs:
|
|||||||
|
|
||||||
### How to resolve
|
### How to resolve
|
||||||
|
|
||||||
1. Check upstream Dockerfile / package.json to confirm the required Node.js version
|
Each item above has its own pull request with the bump already applied and a ready-to-run test command in the description.
|
||||||
2. Test the script with the new Node version
|
|
||||||
3. Update \`NODE_VERSION\` in \`install/<slug>-install.sh\`
|
1. Check the upstream Dockerfile / package.json to confirm the required Node.js version
|
||||||
4. Update \`NODE_VERSION\` in \`ct/<slug>.sh\` (update section) if applicable
|
2. Run the test command from the PR against a host
|
||||||
5. Check off the item above once done
|
3. Merge the PR if it works — the item disappears from this list on the next run
|
||||||
|
4. Close the PR if the bump is wrong: the script stays as it is and this exact bump is never proposed again
|
||||||
|
|
||||||
<details>
|
<details>
|
||||||
<summary>Full report</summary>
|
<summary>Full report</summary>
|
||||||
|
|||||||
55
.github/workflows/node-drift-pr-closed.yml
generated
vendored
Normal file
55
.github/workflows/node-drift-pr-closed.yml
generated
vendored
Normal file
@@ -0,0 +1,55 @@
|
|||||||
|
name: Record closed Node.js drift PR
|
||||||
|
|
||||||
|
# The drift check opens one PR per script and treats a closed one as a verdict:
|
||||||
|
# that bump is not proposed again. That decision is invisible on the report
|
||||||
|
# unless it is written there, so record it as a comment naming the script.
|
||||||
|
|
||||||
|
on:
|
||||||
|
pull_request:
|
||||||
|
types: [closed]
|
||||||
|
|
||||||
|
jobs:
|
||||||
|
record:
|
||||||
|
if: >
|
||||||
|
github.repository == 'community-scripts/ProxmoxVE' &&
|
||||||
|
github.event.pull_request.merged == false &&
|
||||||
|
startsWith(github.event.pull_request.head.ref, 'node-drift/')
|
||||||
|
runs-on: ubuntu-latest
|
||||||
|
permissions:
|
||||||
|
issues: write
|
||||||
|
steps:
|
||||||
|
- uses: actions/github-script@v9
|
||||||
|
with:
|
||||||
|
script: |
|
||||||
|
const pr = context.payload.pull_request;
|
||||||
|
const owner = context.repo.owner;
|
||||||
|
const repo = context.repo.repo;
|
||||||
|
|
||||||
|
// node-drift/<slug>-<from>-to-<to>
|
||||||
|
const m = pr.head.ref.match(/^node-drift\/(.+)-(\d+)-to-(\d+)$/);
|
||||||
|
if (!m) return;
|
||||||
|
const [, slug, from, to] = m;
|
||||||
|
|
||||||
|
// A close by the stale bot is a lapsed review, not a decision on
|
||||||
|
// the bump, and the drift check reopens those. Saying "declined"
|
||||||
|
// here would contradict it.
|
||||||
|
const stale = pr.labels.some((l) => l.name === 'stale');
|
||||||
|
|
||||||
|
const issues = await github.rest.issues.listForRepo({
|
||||||
|
owner, repo, state: 'open', labels: 'automated,dependencies', per_page: 100,
|
||||||
|
});
|
||||||
|
const issue = issues.data.find(
|
||||||
|
(i) => !i.pull_request && i.title === '[Automated] Node.js Version Drift Report',
|
||||||
|
);
|
||||||
|
if (!issue) return;
|
||||||
|
|
||||||
|
const body = stale
|
||||||
|
? `\`${slug}\` — PR #${pr.number} (Node ${from} → ${to}) was closed as stale. `
|
||||||
|
+ `No decision was recorded, so the next drift check opens it again.`
|
||||||
|
: `\`${slug}\` — PR #${pr.number} (Node ${from} → ${to}) was closed without merging. `
|
||||||
|
+ `The script keeps Node ${from} and this bump will not be proposed again. `
|
||||||
|
+ `If it was closed by mistake, reopen the PR.`;
|
||||||
|
|
||||||
|
await github.rest.issues.createComment({
|
||||||
|
owner, repo, issue_number: issue.number, body,
|
||||||
|
});
|
||||||
22
CHANGELOG.md
22
CHANGELOG.md
@@ -540,6 +540,28 @@ Exercise vigilance regarding copycat or coat-tailing sites that seek to exploit
|
|||||||
|
|
||||||
</details>
|
</details>
|
||||||
|
|
||||||
|
## 2026-09-07
|
||||||
|
|
||||||
|
### 🚀 Updated Scripts
|
||||||
|
|
||||||
|
- #### 🐞 Bug Fixes
|
||||||
|
|
||||||
|
- reactive-resume: repair any wrong WorkingDirectory on update [@MickLesk](https://github.com/MickLesk) ([#17068](https://github.com/community-scripts/ProxmoxVE/pull/17068))
|
||||||
|
- mediamtx: keep mediamtx.yml across updates [@MickLesk](https://github.com/MickLesk) ([#17069](https://github.com/community-scripts/ProxmoxVE/pull/17069))
|
||||||
|
- omnitools: allow remote action while npm ci [@MickLesk](https://github.com/MickLesk) ([#17070](https://github.com/community-scripts/ProxmoxVE/pull/17070))
|
||||||
|
|
||||||
|
- #### ✨ New Features
|
||||||
|
|
||||||
|
- netboot-xyz: add Secure Boot and Legacy assets [@MickLesk](https://github.com/MickLesk) ([#17066](https://github.com/community-scripts/ProxmoxVE/pull/17066))
|
||||||
|
|
||||||
|
- #### 🔧 Refactor
|
||||||
|
|
||||||
|
- heimdall: set up PHP 8.4 on update, keep only the database, run migrations [@MickLesk](https://github.com/MickLesk) ([#17067](https://github.com/community-scripts/ProxmoxVE/pull/17067))
|
||||||
|
|
||||||
|
### 📂 Github
|
||||||
|
|
||||||
|
- github: Open per-script Node bump PRs [@MickLesk](https://github.com/MickLesk) ([#17065](https://github.com/community-scripts/ProxmoxVE/pull/17065))
|
||||||
|
|
||||||
## 2026-09-06
|
## 2026-09-06
|
||||||
|
|
||||||
### 🚀 Updated Scripts
|
### 🚀 Updated Scripts
|
||||||
|
|||||||
@@ -37,12 +37,9 @@ function update_script() {
|
|||||||
sleep 1
|
sleep 1
|
||||||
msg_ok "Stopped Service"
|
msg_ok "Stopped Service"
|
||||||
|
|
||||||
msg_info "Backing up Data"
|
create_backup /opt/Heimdall/database/app.sqlite
|
||||||
cp -R /opt/Heimdall/database database-backup
|
|
||||||
cp -R /opt/Heimdall/public public-backup
|
|
||||||
sleep 1
|
|
||||||
msg_ok "Backed up Data"
|
|
||||||
|
|
||||||
|
PHP_VERSION="8.4" PHP_FPM="YES" setup_php
|
||||||
setup_composer
|
setup_composer
|
||||||
fetch_and_deploy_gh_release "Heimdall" "linuxserver/Heimdall" "tarball"
|
fetch_and_deploy_gh_release "Heimdall" "linuxserver/Heimdall" "tarball"
|
||||||
|
|
||||||
@@ -52,20 +49,15 @@ function update_script() {
|
|||||||
rm -f bootstrap/cache/*.php
|
rm -f bootstrap/cache/*.php
|
||||||
export COMPOSER_ALLOW_SUPERUSER=1
|
export COMPOSER_ALLOW_SUPERUSER=1
|
||||||
$STD composer install --no-dev --no-interaction --prefer-dist --optimize-autoloader
|
$STD composer install --no-dev --no-interaction --prefer-dist --optimize-autoloader
|
||||||
$STD php artisan optimize:clear
|
|
||||||
msg_ok "Updated Heimdall-Dashboard"
|
msg_ok "Updated Heimdall-Dashboard"
|
||||||
|
|
||||||
msg_info "Restoring Data"
|
restore_backup
|
||||||
cd ~
|
|
||||||
cp -R database-backup/* /opt/Heimdall/database
|
|
||||||
cp -R public-backup/* /opt/Heimdall/public
|
|
||||||
sleep 1
|
|
||||||
msg_ok "Restored Data"
|
|
||||||
|
|
||||||
msg_info "Cleaning Up"
|
msg_info "Migrating Database"
|
||||||
rm -rf {public-backup,database-backup}
|
cd /opt/Heimdall
|
||||||
sleep 1
|
$STD php artisan migrate --force
|
||||||
msg_ok "Cleaned Up"
|
$STD php artisan optimize:clear
|
||||||
|
msg_ok "Migrated Database"
|
||||||
|
|
||||||
msg_info "Starting Service"
|
msg_info "Starting Service"
|
||||||
systemctl start heimdall.service
|
systemctl start heimdall.service
|
||||||
|
|||||||
@@ -42,7 +42,7 @@ function update_script() {
|
|||||||
CLEAN_INSTALL=1 fetch_and_deploy_gh_release "kaneo" "usekaneo/kaneo" "tarball"
|
CLEAN_INSTALL=1 fetch_and_deploy_gh_release "kaneo" "usekaneo/kaneo" "tarball"
|
||||||
|
|
||||||
PNPM_VERSION=$(sed -n 's/.*"packageManager": "pnpm@\([^"+]*\).*/\1/p' /opt/kaneo/package.json)
|
PNPM_VERSION=$(sed -n 's/.*"packageManager": "pnpm@\([^"+]*\).*/\1/p' /opt/kaneo/package.json)
|
||||||
NODE_VERSION="22" NODE_MODULE="pnpm@${PNPM_VERSION:-10.32.1}" setup_nodejs
|
NODE_VERSION="24" NODE_MODULE="pnpm@${PNPM_VERSION:-10.32.1}" setup_nodejs
|
||||||
|
|
||||||
restore_backup
|
restore_backup
|
||||||
|
|
||||||
|
|||||||
@@ -37,7 +37,9 @@ function update_script() {
|
|||||||
systemctl stop mediamtx
|
systemctl stop mediamtx
|
||||||
msg_ok "Service stopped"
|
msg_ok "Service stopped"
|
||||||
|
|
||||||
|
create_backup /opt/mediamtx/mediamtx.yml
|
||||||
fetch_and_deploy_gh_release "mediamtx" "bluenviron/mediamtx" "prebuild" "latest" "/opt/mediamtx" "mediamtx*linux_$(arch_resolve).tar.gz"
|
fetch_and_deploy_gh_release "mediamtx" "bluenviron/mediamtx" "prebuild" "latest" "/opt/mediamtx" "mediamtx*linux_$(arch_resolve).tar.gz"
|
||||||
|
restore_backup
|
||||||
|
|
||||||
msg_info "Starting service"
|
msg_info "Starting service"
|
||||||
systemctl start mediamtx
|
systemctl start mediamtx
|
||||||
|
|||||||
@@ -58,6 +58,14 @@ function update_script() {
|
|||||||
USE_ORIGINAL_FILENAME=true fetch_and_deploy_gh_release "netboot-xyz-linux-bin" "netbootxyz/netboot.xyz" "singlefile" "latest" "/var/www/html" "netboot.xyz-linux.bin"
|
USE_ORIGINAL_FILENAME=true fetch_and_deploy_gh_release "netboot-xyz-linux-bin" "netbootxyz/netboot.xyz" "singlefile" "latest" "/var/www/html" "netboot.xyz-linux.bin"
|
||||||
USE_ORIGINAL_FILENAME=true fetch_and_deploy_gh_release "netboot-xyz-dsk" "netbootxyz/netboot.xyz" "singlefile" "latest" "/var/www/html" "netboot.xyz.dsk"
|
USE_ORIGINAL_FILENAME=true fetch_and_deploy_gh_release "netboot-xyz-dsk" "netbootxyz/netboot.xyz" "singlefile" "latest" "/var/www/html" "netboot.xyz.dsk"
|
||||||
USE_ORIGINAL_FILENAME=true fetch_and_deploy_gh_release "netboot-xyz-pdsk" "netbootxyz/netboot.xyz" "singlefile" "latest" "/var/www/html" "netboot.xyz.pdsk"
|
USE_ORIGINAL_FILENAME=true fetch_and_deploy_gh_release "netboot-xyz-pdsk" "netbootxyz/netboot.xyz" "singlefile" "latest" "/var/www/html" "netboot.xyz.pdsk"
|
||||||
|
|
||||||
|
USE_ORIGINAL_FILENAME=true fetch_and_deploy_gh_release "netboot-xyz-legacy-efi" "netbootxyz/netboot.xyz" "singlefile" "latest" "/var/www/html" "netboot.xyz-legacy.efi"
|
||||||
|
USE_ORIGINAL_FILENAME=true fetch_and_deploy_gh_release "netboot-xyz-legacy-kpxe" "netbootxyz/netboot.xyz" "singlefile" "latest" "/var/www/html" "netboot.xyz-legacy.kpxe"
|
||||||
|
USE_ORIGINAL_FILENAME=true fetch_and_deploy_gh_release "netboot-xyz-legacy-lkrn" "netbootxyz/netboot.xyz" "singlefile" "latest" "/var/www/html" "netboot.xyz-legacy.lkrn"
|
||||||
|
USE_ORIGINAL_FILENAME=true fetch_and_deploy_gh_release "netboot-xyz-legacy-dsk" "netbootxyz/netboot.xyz" "singlefile" "latest" "/var/www/html" "netboot.xyz-legacy.dsk"
|
||||||
|
USE_ORIGINAL_FILENAME=true fetch_and_deploy_gh_release "netboot-xyz-legacy-pdsk" "netbootxyz/netboot.xyz" "singlefile" "latest" "/var/www/html" "netboot.xyz-legacy.pdsk"
|
||||||
|
USE_ORIGINAL_FILENAME=true fetch_and_deploy_gh_release "netboot-xyz-metal-legacy-efi" "netbootxyz/netboot.xyz" "singlefile" "latest" "/var/www/html" "netboot.xyz-metal-legacy.efi"
|
||||||
|
USE_ORIGINAL_FILENAME=true fetch_and_deploy_gh_release "netboot-xyz-metal-legacy-kpxe" "netbootxyz/netboot.xyz" "singlefile" "latest" "/var/www/html" "netboot.xyz-metal-legacy.kpxe"
|
||||||
USE_ORIGINAL_FILENAME=true fetch_and_deploy_gh_release "netboot-xyz-arm64" "netbootxyz/netboot.xyz" "singlefile" "latest" "/var/www/html" "netboot.xyz-arm64.efi"
|
USE_ORIGINAL_FILENAME=true fetch_and_deploy_gh_release "netboot-xyz-arm64" "netbootxyz/netboot.xyz" "singlefile" "latest" "/var/www/html" "netboot.xyz-arm64.efi"
|
||||||
USE_ORIGINAL_FILENAME=true fetch_and_deploy_gh_release "netboot-xyz-arm64-snp" "netbootxyz/netboot.xyz" "singlefile" "latest" "/var/www/html" "netboot.xyz-arm64-snp.efi"
|
USE_ORIGINAL_FILENAME=true fetch_and_deploy_gh_release "netboot-xyz-arm64-snp" "netbootxyz/netboot.xyz" "singlefile" "latest" "/var/www/html" "netboot.xyz-arm64-snp.efi"
|
||||||
USE_ORIGINAL_FILENAME=true fetch_and_deploy_gh_release "netboot-xyz-arm64-snponly" "netbootxyz/netboot.xyz" "singlefile" "latest" "/var/www/html" "netboot.xyz-arm64-snponly.efi"
|
USE_ORIGINAL_FILENAME=true fetch_and_deploy_gh_release "netboot-xyz-arm64-snponly" "netbootxyz/netboot.xyz" "singlefile" "latest" "/var/www/html" "netboot.xyz-arm64-snponly.efi"
|
||||||
@@ -70,6 +78,12 @@ function update_script() {
|
|||||||
USE_ORIGINAL_FILENAME=true fetch_and_deploy_gh_release "netboot-xyz-arm64-img" "netbootxyz/netboot.xyz" "singlefile" "latest" "/var/www/html" "netboot.xyz-arm64.img"
|
USE_ORIGINAL_FILENAME=true fetch_and_deploy_gh_release "netboot-xyz-arm64-img" "netbootxyz/netboot.xyz" "singlefile" "latest" "/var/www/html" "netboot.xyz-arm64.img"
|
||||||
USE_ORIGINAL_FILENAME=true fetch_and_deploy_gh_release "netboot-xyz-multiarch-iso" "netbootxyz/netboot.xyz" "singlefile" "latest" "/var/www/html" "netboot.xyz-multiarch.iso"
|
USE_ORIGINAL_FILENAME=true fetch_and_deploy_gh_release "netboot-xyz-multiarch-iso" "netbootxyz/netboot.xyz" "singlefile" "latest" "/var/www/html" "netboot.xyz-multiarch.iso"
|
||||||
USE_ORIGINAL_FILENAME=true fetch_and_deploy_gh_release "netboot-xyz-multiarch-img" "netbootxyz/netboot.xyz" "singlefile" "latest" "/var/www/html" "netboot.xyz-multiarch.img"
|
USE_ORIGINAL_FILENAME=true fetch_and_deploy_gh_release "netboot-xyz-multiarch-img" "netbootxyz/netboot.xyz" "singlefile" "latest" "/var/www/html" "netboot.xyz-multiarch.img"
|
||||||
|
USE_ORIGINAL_FILENAME=true fetch_and_deploy_gh_release "netboot-xyz-legacy-iso" "netbootxyz/netboot.xyz" "singlefile" "latest" "/var/www/html" "netboot.xyz-legacy.iso"
|
||||||
|
USE_ORIGINAL_FILENAME=true fetch_and_deploy_gh_release "netboot-xyz-legacy-img" "netbootxyz/netboot.xyz" "singlefile" "latest" "/var/www/html" "netboot.xyz-legacy.img"
|
||||||
|
USE_ORIGINAL_FILENAME=true fetch_and_deploy_gh_release "netboot-xyz-sb-iso" "netbootxyz/netboot.xyz" "singlefile" "latest" "/var/www/html" "netboot.xyz-sb.iso"
|
||||||
|
USE_ORIGINAL_FILENAME=true fetch_and_deploy_gh_release "netboot-xyz-sb-img" "netbootxyz/netboot.xyz" "singlefile" "latest" "/var/www/html" "netboot.xyz-sb.img"
|
||||||
|
USE_ORIGINAL_FILENAME=true fetch_and_deploy_gh_release "netboot-xyz-sb-arm64-iso" "netbootxyz/netboot.xyz" "singlefile" "latest" "/var/www/html" "netboot.xyz-sb-arm64.iso"
|
||||||
|
USE_ORIGINAL_FILENAME=true fetch_and_deploy_gh_release "netboot-xyz-sb-arm64-img" "netbootxyz/netboot.xyz" "singlefile" "latest" "/var/www/html" "netboot.xyz-sb-arm64.img"
|
||||||
USE_ORIGINAL_FILENAME=true fetch_and_deploy_gh_release "netboot-xyz-checksums" "netbootxyz/netboot.xyz" "singlefile" "latest" "/var/www/html" "netboot.xyz-sha256-checksums.txt"
|
USE_ORIGINAL_FILENAME=true fetch_and_deploy_gh_release "netboot-xyz-checksums" "netbootxyz/netboot.xyz" "singlefile" "latest" "/var/www/html" "netboot.xyz-sha256-checksums.txt"
|
||||||
|
|
||||||
msg_info "Restoring Configuration"
|
msg_info "Restoring Configuration"
|
||||||
|
|||||||
@@ -40,7 +40,7 @@ function update_script() {
|
|||||||
msg_info "Building OmniTools"
|
msg_info "Building OmniTools"
|
||||||
cd /opt/omnitools
|
cd /opt/omnitools
|
||||||
export HUSKY=0
|
export HUSKY=0
|
||||||
$STD npm ci
|
$STD npm ci --allow-remote=all
|
||||||
$STD npm run build
|
$STD npm run build
|
||||||
msg_ok "Built OmniTools"
|
msg_ok "Built OmniTools"
|
||||||
|
|
||||||
|
|||||||
@@ -55,7 +55,7 @@ function update_script() {
|
|||||||
msg_ok "Updated Reactive Resume"
|
msg_ok "Updated Reactive Resume"
|
||||||
|
|
||||||
msg_info "Updating Service"
|
msg_info "Updating Service"
|
||||||
sed -i 's|WorkingDirectory=/opt/reactive-resume/apps/web|WorkingDirectory=/opt/reactive-resume/apps/server|; s|ExecStart=/usr/bin/node .output/server/index.mjs|ExecStart=/usr/bin/node dist/index.mjs|' /etc/systemd/system/reactive-resume.service
|
sed -i -E 's|^WorkingDirectory=/opt/reactive-resume(/.*)?$|WorkingDirectory=/opt/reactive-resume/apps/server|; s|ExecStart=/usr/bin/node .output/server/index.mjs|ExecStart=/usr/bin/node dist/index.mjs|' /etc/systemd/system/reactive-resume.service
|
||||||
systemctl daemon-reload
|
systemctl daemon-reload
|
||||||
msg_ok "Updated Service"
|
msg_ok "Updated Service"
|
||||||
|
|
||||||
|
|||||||
@@ -22,7 +22,7 @@ PG_DB_NAME="kaneo" PG_DB_USER="kaneo" setup_postgresql_db
|
|||||||
fetch_and_deploy_gh_release "kaneo" "usekaneo/kaneo" "tarball"
|
fetch_and_deploy_gh_release "kaneo" "usekaneo/kaneo" "tarball"
|
||||||
|
|
||||||
PNPM_VERSION=$(sed -n 's/.*"packageManager": "pnpm@\([^"+]*\).*/\1/p' /opt/kaneo/package.json)
|
PNPM_VERSION=$(sed -n 's/.*"packageManager": "pnpm@\([^"+]*\).*/\1/p' /opt/kaneo/package.json)
|
||||||
NODE_VERSION="22" NODE_MODULE="pnpm@${PNPM_VERSION:-10.32.1}" setup_nodejs
|
NODE_VERSION="24" NODE_MODULE="pnpm@${PNPM_VERSION:-10.32.1}" setup_nodejs
|
||||||
|
|
||||||
msg_info "Configuring Kaneo"
|
msg_info "Configuring Kaneo"
|
||||||
cat <<EOF >/opt/kaneo/.env
|
cat <<EOF >/opt/kaneo/.env
|
||||||
|
|||||||
@@ -41,6 +41,14 @@ USE_ORIGINAL_FILENAME=true fetch_and_deploy_gh_release "netboot-xyz-lkrn" "netbo
|
|||||||
USE_ORIGINAL_FILENAME=true fetch_and_deploy_gh_release "netboot-xyz-linux-bin" "netbootxyz/netboot.xyz" "singlefile" "latest" "/var/www/html" "netboot.xyz-linux.bin"
|
USE_ORIGINAL_FILENAME=true fetch_and_deploy_gh_release "netboot-xyz-linux-bin" "netbootxyz/netboot.xyz" "singlefile" "latest" "/var/www/html" "netboot.xyz-linux.bin"
|
||||||
USE_ORIGINAL_FILENAME=true fetch_and_deploy_gh_release "netboot-xyz-dsk" "netbootxyz/netboot.xyz" "singlefile" "latest" "/var/www/html" "netboot.xyz.dsk"
|
USE_ORIGINAL_FILENAME=true fetch_and_deploy_gh_release "netboot-xyz-dsk" "netbootxyz/netboot.xyz" "singlefile" "latest" "/var/www/html" "netboot.xyz.dsk"
|
||||||
USE_ORIGINAL_FILENAME=true fetch_and_deploy_gh_release "netboot-xyz-pdsk" "netbootxyz/netboot.xyz" "singlefile" "latest" "/var/www/html" "netboot.xyz.pdsk"
|
USE_ORIGINAL_FILENAME=true fetch_and_deploy_gh_release "netboot-xyz-pdsk" "netbootxyz/netboot.xyz" "singlefile" "latest" "/var/www/html" "netboot.xyz.pdsk"
|
||||||
|
|
||||||
|
USE_ORIGINAL_FILENAME=true fetch_and_deploy_gh_release "netboot-xyz-legacy-efi" "netbootxyz/netboot.xyz" "singlefile" "latest" "/var/www/html" "netboot.xyz-legacy.efi"
|
||||||
|
USE_ORIGINAL_FILENAME=true fetch_and_deploy_gh_release "netboot-xyz-legacy-kpxe" "netbootxyz/netboot.xyz" "singlefile" "latest" "/var/www/html" "netboot.xyz-legacy.kpxe"
|
||||||
|
USE_ORIGINAL_FILENAME=true fetch_and_deploy_gh_release "netboot-xyz-legacy-lkrn" "netbootxyz/netboot.xyz" "singlefile" "latest" "/var/www/html" "netboot.xyz-legacy.lkrn"
|
||||||
|
USE_ORIGINAL_FILENAME=true fetch_and_deploy_gh_release "netboot-xyz-legacy-dsk" "netbootxyz/netboot.xyz" "singlefile" "latest" "/var/www/html" "netboot.xyz-legacy.dsk"
|
||||||
|
USE_ORIGINAL_FILENAME=true fetch_and_deploy_gh_release "netboot-xyz-legacy-pdsk" "netbootxyz/netboot.xyz" "singlefile" "latest" "/var/www/html" "netboot.xyz-legacy.pdsk"
|
||||||
|
USE_ORIGINAL_FILENAME=true fetch_and_deploy_gh_release "netboot-xyz-metal-legacy-efi" "netbootxyz/netboot.xyz" "singlefile" "latest" "/var/www/html" "netboot.xyz-metal-legacy.efi"
|
||||||
|
USE_ORIGINAL_FILENAME=true fetch_and_deploy_gh_release "netboot-xyz-metal-legacy-kpxe" "netbootxyz/netboot.xyz" "singlefile" "latest" "/var/www/html" "netboot.xyz-metal-legacy.kpxe"
|
||||||
# ARM64 bootloaders
|
# ARM64 bootloaders
|
||||||
USE_ORIGINAL_FILENAME=true fetch_and_deploy_gh_release "netboot-xyz-arm64" "netbootxyz/netboot.xyz" "singlefile" "latest" "/var/www/html" "netboot.xyz-arm64.efi"
|
USE_ORIGINAL_FILENAME=true fetch_and_deploy_gh_release "netboot-xyz-arm64" "netbootxyz/netboot.xyz" "singlefile" "latest" "/var/www/html" "netboot.xyz-arm64.efi"
|
||||||
USE_ORIGINAL_FILENAME=true fetch_and_deploy_gh_release "netboot-xyz-arm64-snp" "netbootxyz/netboot.xyz" "singlefile" "latest" "/var/www/html" "netboot.xyz-arm64-snp.efi"
|
USE_ORIGINAL_FILENAME=true fetch_and_deploy_gh_release "netboot-xyz-arm64-snp" "netbootxyz/netboot.xyz" "singlefile" "latest" "/var/www/html" "netboot.xyz-arm64-snp.efi"
|
||||||
@@ -55,6 +63,12 @@ USE_ORIGINAL_FILENAME=true fetch_and_deploy_gh_release "netboot-xyz-arm64-iso" "
|
|||||||
USE_ORIGINAL_FILENAME=true fetch_and_deploy_gh_release "netboot-xyz-arm64-img" "netbootxyz/netboot.xyz" "singlefile" "latest" "/var/www/html" "netboot.xyz-arm64.img"
|
USE_ORIGINAL_FILENAME=true fetch_and_deploy_gh_release "netboot-xyz-arm64-img" "netbootxyz/netboot.xyz" "singlefile" "latest" "/var/www/html" "netboot.xyz-arm64.img"
|
||||||
USE_ORIGINAL_FILENAME=true fetch_and_deploy_gh_release "netboot-xyz-multiarch-iso" "netbootxyz/netboot.xyz" "singlefile" "latest" "/var/www/html" "netboot.xyz-multiarch.iso"
|
USE_ORIGINAL_FILENAME=true fetch_and_deploy_gh_release "netboot-xyz-multiarch-iso" "netbootxyz/netboot.xyz" "singlefile" "latest" "/var/www/html" "netboot.xyz-multiarch.iso"
|
||||||
USE_ORIGINAL_FILENAME=true fetch_and_deploy_gh_release "netboot-xyz-multiarch-img" "netbootxyz/netboot.xyz" "singlefile" "latest" "/var/www/html" "netboot.xyz-multiarch.img"
|
USE_ORIGINAL_FILENAME=true fetch_and_deploy_gh_release "netboot-xyz-multiarch-img" "netbootxyz/netboot.xyz" "singlefile" "latest" "/var/www/html" "netboot.xyz-multiarch.img"
|
||||||
|
USE_ORIGINAL_FILENAME=true fetch_and_deploy_gh_release "netboot-xyz-legacy-iso" "netbootxyz/netboot.xyz" "singlefile" "latest" "/var/www/html" "netboot.xyz-legacy.iso"
|
||||||
|
USE_ORIGINAL_FILENAME=true fetch_and_deploy_gh_release "netboot-xyz-legacy-img" "netbootxyz/netboot.xyz" "singlefile" "latest" "/var/www/html" "netboot.xyz-legacy.img"
|
||||||
|
USE_ORIGINAL_FILENAME=true fetch_and_deploy_gh_release "netboot-xyz-sb-iso" "netbootxyz/netboot.xyz" "singlefile" "latest" "/var/www/html" "netboot.xyz-sb.iso"
|
||||||
|
USE_ORIGINAL_FILENAME=true fetch_and_deploy_gh_release "netboot-xyz-sb-img" "netbootxyz/netboot.xyz" "singlefile" "latest" "/var/www/html" "netboot.xyz-sb.img"
|
||||||
|
USE_ORIGINAL_FILENAME=true fetch_and_deploy_gh_release "netboot-xyz-sb-arm64-iso" "netbootxyz/netboot.xyz" "singlefile" "latest" "/var/www/html" "netboot.xyz-sb-arm64.iso"
|
||||||
|
USE_ORIGINAL_FILENAME=true fetch_and_deploy_gh_release "netboot-xyz-sb-arm64-img" "netbootxyz/netboot.xyz" "singlefile" "latest" "/var/www/html" "netboot.xyz-sb-arm64.img"
|
||||||
# SHA256 checksums
|
# SHA256 checksums
|
||||||
USE_ORIGINAL_FILENAME=true fetch_and_deploy_gh_release "netboot-xyz-checksums" "netbootxyz/netboot.xyz" "singlefile" "latest" "/var/www/html" "netboot.xyz-sha256-checksums.txt"
|
USE_ORIGINAL_FILENAME=true fetch_and_deploy_gh_release "netboot-xyz-checksums" "netbootxyz/netboot.xyz" "singlefile" "latest" "/var/www/html" "netboot.xyz-sha256-checksums.txt"
|
||||||
|
|
||||||
|
|||||||
@@ -23,7 +23,7 @@ fetch_and_deploy_gh_release "omnitools" "iib0011/omni-tools" "tarball"
|
|||||||
msg_info "Building OmniTools"
|
msg_info "Building OmniTools"
|
||||||
cd /opt/omnitools
|
cd /opt/omnitools
|
||||||
export HUSKY=0
|
export HUSKY=0
|
||||||
$STD npm ci
|
$STD npm ci --allow-remote=all
|
||||||
$STD npm run build
|
$STD npm run build
|
||||||
msg_ok "Built OmniTools"
|
msg_ok "Built OmniTools"
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user