mirror of
https://github.com/community-scripts/ProxmoxVE.git
synced 2026-08-31 12:35:54 +00:00
Compare commits
126 Commits
2026-08-23
...
fix-nodejs
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
7a4766e888 | ||
|
|
ff606af7ba | ||
|
|
6713f7e17f | ||
|
|
9955cd222e | ||
|
|
dbb28d54e2 | ||
|
|
55c9d8c5f2 | ||
|
|
de1d6c0d21 | ||
|
|
c45ce24995 | ||
|
|
a3b0d9fcbd | ||
|
|
5a71eb99f7 | ||
|
|
ef89bd76f0 | ||
|
|
97c00113be | ||
|
|
a03866e79a | ||
|
|
fd13dff335 | ||
|
|
426244e384 | ||
|
|
27cb42d423 | ||
|
|
3921f056f4 | ||
|
|
35b378761c | ||
|
|
c47b60e275 | ||
|
|
dcf355097a | ||
|
|
fa45c6b28a | ||
|
|
521fde3284 | ||
|
|
40373f17ae | ||
|
|
8e729543a0 | ||
|
|
21b98a4d4d | ||
|
|
e6687be6e5 | ||
|
|
cd72073434 | ||
|
|
c152912552 | ||
|
|
2638197aff | ||
|
|
a25627c7b3 | ||
|
|
bddc28bb57 | ||
|
|
ceb783d62c | ||
|
|
b4398bacc2 | ||
|
|
a61c3882b5 | ||
|
|
856bd4301f | ||
|
|
c1cff5ce2e | ||
|
|
bd0529547c | ||
|
|
7b1c60f57a | ||
|
|
61d5c61071 | ||
|
|
374230d387 | ||
|
|
6c3ef6fc8b | ||
|
|
3334ac5bcd | ||
|
|
e87cc87857 | ||
|
|
1e777012c0 | ||
|
|
81ad04344d | ||
|
|
b194287cd5 | ||
|
|
d14ca63429 | ||
|
|
1b714dceda | ||
|
|
519f5630ce | ||
|
|
8734eba9a7 | ||
|
|
d80fbc9629 | ||
|
|
f114aa553c | ||
|
|
db80438531 | ||
|
|
07d1f0837d | ||
|
|
45a6102d48 | ||
|
|
6cc27497a0 | ||
|
|
beb5c3a573 | ||
|
|
e60b90f385 | ||
|
|
fadcb0c375 | ||
|
|
89f5d3000e | ||
|
|
0a6e59dab2 | ||
|
|
4168f6c5d4 | ||
|
|
a51488a406 | ||
|
|
ab1869fbb0 | ||
|
|
e470b6ddf1 | ||
|
|
416deb8fd0 | ||
|
|
408e74da4a | ||
|
|
d2883d54ee | ||
|
|
ef6a3f0076 | ||
|
|
e9b1fb2a9d | ||
|
|
984aaf8daa | ||
|
|
626d0ba7f2 | ||
|
|
e48392533c | ||
|
|
7f3af58220 | ||
|
|
ddb29278e1 | ||
|
|
c463892c3e | ||
|
|
845c1bac2d | ||
|
|
d34c75d216 | ||
|
|
0c09b7baa2 | ||
|
|
0214a75099 | ||
|
|
46921706c7 | ||
|
|
39ec4e5472 | ||
|
|
87b9d51761 | ||
|
|
803259a1b6 | ||
|
|
ff252a81c1 | ||
|
|
813bac8f2c | ||
|
|
99d4f9da3c | ||
|
|
928c930758 | ||
|
|
1f109e5714 | ||
|
|
3ee8fe5f22 | ||
|
|
61978dc2ce | ||
|
|
c4397752e0 | ||
|
|
a9c32d770a | ||
|
|
31328336f8 | ||
|
|
f4199627ef | ||
|
|
488e5a21c5 | ||
|
|
1c851fb18b | ||
|
|
7462256893 | ||
|
|
b2e2622788 | ||
|
|
1bc1b0e9bd | ||
|
|
dbfe293040 | ||
|
|
8854585a1a | ||
|
|
f23a9da365 | ||
|
|
ac561905b2 | ||
|
|
bc1962a7a8 | ||
|
|
4823b30c84 | ||
|
|
7dd73d8dee | ||
|
|
c92989da73 | ||
|
|
403f1bb198 | ||
|
|
3cb050aaf3 | ||
|
|
22b55e3640 | ||
|
|
1133ab694d | ||
|
|
433534d2c4 | ||
|
|
4c6ccdde35 | ||
|
|
8f407870b9 | ||
|
|
a876ad22bb | ||
|
|
9d719d18d2 | ||
|
|
3c56af9f33 | ||
|
|
e9744fa681 | ||
|
|
d1dd9e18e4 | ||
|
|
7cc090d508 | ||
|
|
566c203a34 | ||
|
|
803fbfdd9f | ||
|
|
19bfe87e0e | ||
|
|
c8c5b91ec4 | ||
|
|
065f34aefe |
128
.github/changelogs/2026/08.md
generated
vendored
128
.github/changelogs/2026/08.md
generated
vendored
@@ -1,3 +1,131 @@
|
||||
## 2026-08-29
|
||||
|
||||
### 📚 Documentation
|
||||
|
||||
- github action: post the command that tests a ct/ or install/ change [@MickLesk](https://github.com/MickLesk) ([#16833](https://github.com/community-scripts/ProxmoxVE/pull/16833))
|
||||
|
||||
## 2026-08-28
|
||||
|
||||
### 🚀 Updated Scripts
|
||||
|
||||
- #### 🐞 Bug Fixes
|
||||
|
||||
- homepage: set CI=true so pnpm can self-heal node_modules without a TTY [@MickLesk](https://github.com/MickLesk) ([#16841](https://github.com/community-scripts/ProxmoxVE/pull/16841))
|
||||
- droppedneedle: launch via automatic_upgrade orchestrator [@MickLesk](https://github.com/MickLesk) ([#16834](https://github.com/community-scripts/ProxmoxVE/pull/16834))
|
||||
- calibre-web: point cps at explicit db path, src-layout package has no default anymore [@MickLesk](https://github.com/MickLesk) ([#16832](https://github.com/community-scripts/ProxmoxVE/pull/16832))
|
||||
- podman: pull portainer images before systemd unit start to avoid start timeout [@MickLesk](https://github.com/MickLesk) ([#16831](https://github.com/community-scripts/ProxmoxVE/pull/16831))
|
||||
- gitea: make gitea own its home dir instead of toggling group perms [@MickLesk](https://github.com/MickLesk) ([#16830](https://github.com/community-scripts/ProxmoxVE/pull/16830))
|
||||
- pve-ups: fix: add pip binary [@CrazyWolf13](https://github.com/CrazyWolf13) ([#16820](https://github.com/community-scripts/ProxmoxVE/pull/16820))
|
||||
|
||||
- #### 🔧 Refactor
|
||||
|
||||
- Refactor: Calibre-Web database creation [@MickLesk](https://github.com/MickLesk) ([#16842](https://github.com/community-scripts/ProxmoxVE/pull/16842))
|
||||
- mastodon: read .ruby-version dynamically instead of hardcoding 4.0.5 [@MickLesk](https://github.com/MickLesk) ([#16829](https://github.com/community-scripts/ProxmoxVE/pull/16829))
|
||||
|
||||
## 2026-08-27
|
||||
|
||||
### 🆕 New Scripts
|
||||
|
||||
- Seanime ([#16777](https://github.com/community-scripts/ProxmoxVE/pull/16777))
|
||||
- Yopass ([#16778](https://github.com/community-scripts/ProxmoxVE/pull/16778))
|
||||
|
||||
### 🚀 Updated Scripts
|
||||
|
||||
- #### 🐞 Bug Fixes
|
||||
|
||||
- excalidash: Add a sed to switch to the correct DB Provider [@michelroegl-brunner](https://github.com/michelroegl-brunner) ([#16814](https://github.com/community-scripts/ProxmoxVE/pull/16814))
|
||||
- fix(stirling-pdf): remove broken ExecStop using %n [@michelroegl-brunner](https://github.com/michelroegl-brunner) ([#16813](https://github.com/community-scripts/ProxmoxVE/pull/16813))
|
||||
|
||||
### 🧰 Tools
|
||||
|
||||
- #### 🐞 Bug Fixes
|
||||
|
||||
- Fix: Incorporate the new update functions to prevent a empty grep on … [@michelroegl-brunner](https://github.com/michelroegl-brunner) ([#16809](https://github.com/community-scripts/ProxmoxVE/pull/16809))
|
||||
|
||||
## 2026-08-26
|
||||
|
||||
### 🆕 New Scripts
|
||||
|
||||
- CentOS ([#16772](https://github.com/community-scripts/ProxmoxVE/pull/16772))
|
||||
- AlmaLinux ([#16771](https://github.com/community-scripts/ProxmoxVE/pull/16771))
|
||||
- Fedora ([#16770](https://github.com/community-scripts/ProxmoxVE/pull/16770))
|
||||
- Devuan ([#16773](https://github.com/community-scripts/ProxmoxVE/pull/16773))
|
||||
- OpenEuler ([#16774](https://github.com/community-scripts/ProxmoxVE/pull/16774))
|
||||
- Gentoo ([#16775](https://github.com/community-scripts/ProxmoxVE/pull/16775))
|
||||
- openSUSE ([#16776](https://github.com/community-scripts/ProxmoxVE/pull/16776))
|
||||
- Directus ([#16779](https://github.com/community-scripts/ProxmoxVE/pull/16779))
|
||||
- HAProxy ([#16760](https://github.com/community-scripts/ProxmoxVE/pull/16760))
|
||||
|
||||
### 🚀 Updated Scripts
|
||||
|
||||
- #### 🐞 Bug Fixes
|
||||
|
||||
- [Fix]: LimeSurvey - enable Apache mod_rewrite [@jonathan8devs](https://github.com/jonathan8devs) ([#16767](https://github.com/community-scripts/ProxmoxVE/pull/16767))
|
||||
- endurain: migrate legacy FRONTEND_DIR path on update [@MickLesk](https://github.com/MickLesk) ([#16794](https://github.com/community-scripts/ProxmoxVE/pull/16794))
|
||||
|
||||
### 💾 Core
|
||||
|
||||
- #### 🐞 Bug Fixes
|
||||
|
||||
- tools.func: recognize bare XZ-compressed tarballs in fetch_and_deploy* [@MickLesk](https://github.com/MickLesk) ([#16796](https://github.com/community-scripts/ProxmoxVE/pull/16796))
|
||||
- tools.func: fix mongodb version comparison, guard apt purge against removing dependents [@MickLesk](https://github.com/MickLesk) ([#16795](https://github.com/community-scripts/ProxmoxVE/pull/16795))
|
||||
|
||||
### 📂 Github
|
||||
|
||||
- github: teach the PocketBase bot every field [@MickLesk](https://github.com/MickLesk) ([#16781](https://github.com/community-scripts/ProxmoxVE/pull/16781))
|
||||
|
||||
## 2026-08-25
|
||||
|
||||
### 🆕 New Scripts
|
||||
|
||||
- Budget-Board ([#16714](https://github.com/community-scripts/ProxmoxVE/pull/16714))
|
||||
- Maintainerr ([#16716](https://github.com/community-scripts/ProxmoxVE/pull/16716))
|
||||
- pyLoad ([#16717](https://github.com/community-scripts/ProxmoxVE/pull/16717))
|
||||
|
||||
### 🚀 Updated Scripts
|
||||
|
||||
- #### 🐞 Bug Fixes
|
||||
|
||||
- fix(apache-tika): handle upstream's switch from jar to zip distribution [@Munza2020](https://github.com/Munza2020) ([#16726](https://github.com/community-scripts/ProxmoxVE/pull/16726))
|
||||
- Fix Firecrawl install: add ccache dependency for koffi native build [@michelroegl-brunner](https://github.com/michelroegl-brunner) ([#16746](https://github.com/community-scripts/ProxmoxVE/pull/16746))
|
||||
- excalidash: Fix broken Update [@michelroegl-brunner](https://github.com/michelroegl-brunner) ([#16747](https://github.com/community-scripts/ProxmoxVE/pull/16747))
|
||||
|
||||
- #### 💥 Breaking Changes
|
||||
|
||||
- Migrate the (remaining) Top 25 scripts to the new core engine [@MickLesk](https://github.com/MickLesk) ([#16749](https://github.com/community-scripts/ProxmoxVE/pull/16749))
|
||||
|
||||
## 2026-08-24
|
||||
|
||||
### 🆕 New Scripts
|
||||
|
||||
- ArchLinux ([#16715](https://github.com/community-scripts/ProxmoxVE/pull/16715))
|
||||
- AirTrail ([#16713](https://github.com/community-scripts/ProxmoxVE/pull/16713))
|
||||
- RockyLinux ([#16718](https://github.com/community-scripts/ProxmoxVE/pull/16718))
|
||||
|
||||
### 🚀 Updated Scripts
|
||||
|
||||
- #### 🐞 Bug Fixes
|
||||
|
||||
- Add setup_mongodb back in Omada [@lucacome](https://github.com/lucacome) ([#16736](https://github.com/community-scripts/ProxmoxVE/pull/16736))
|
||||
- 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
|
||||
|
||||
- #### 🐞 Bug Fixes
|
||||
|
||||
- Set default ProxmoxVE raw URL in PVE-UPS & fix var_cpu sorting [@MickLesk](https://github.com/MickLesk) ([#16689](https://github.com/community-scripts/ProxmoxVE/pull/16689))
|
||||
|
||||
## 2026-08-22
|
||||
|
||||
### 🆕 New Scripts
|
||||
|
||||
32
.github/pull_request_template.md
generated
vendored
32
.github/pull_request_template.md
generated
vendored
@@ -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. -->
|
||||
|
||||
76
.github/workflows/changelog-pr.yml
generated
vendored
76
.github/workflows/changelog-pr.yml
generated
vendored
@@ -4,6 +4,11 @@ on:
|
||||
push:
|
||||
branches: ["main"]
|
||||
workflow_dispatch:
|
||||
# Fired by community-scripts/core when an engine pull request is merged, so a
|
||||
# change there does not wait for the next push here. Optional: engine PRs are
|
||||
# collected on every run regardless, this only decides how soon.
|
||||
repository_dispatch:
|
||||
types: [core-pr-merged]
|
||||
|
||||
jobs:
|
||||
update-changelog-pull-request:
|
||||
@@ -207,6 +212,77 @@ jobs:
|
||||
|
||||
}
|
||||
|
||||
// ── Engine pull requests ────────────────────────────────────────
|
||||
// The engine lives in community-scripts/core, so its changes never
|
||||
// show up in this repository's PR list -- and a fix there reaches
|
||||
// every script here. The "💾 Core" category already existed for
|
||||
// ProxmoxVE PRs labelled `core`; engine PRs land in the same place.
|
||||
try {
|
||||
const { data: corePulls } = await github.rest.pulls.list({
|
||||
owner: context.repo.owner,
|
||||
repo: "core",
|
||||
base: "main",
|
||||
state: "closed",
|
||||
sort: "updated",
|
||||
direction: "desc",
|
||||
per_page: 100,
|
||||
});
|
||||
|
||||
const coreCategory = categorizedPRs.find(category =>
|
||||
category.title.includes("Core") || category.labels.includes("core"));
|
||||
|
||||
// core carries GitHub's default label set, and most of its pull
|
||||
// requests carry none at all, so map what maps and let the rest
|
||||
// sit directly under the category.
|
||||
const coreLabelAliases = {
|
||||
bug: "bugfix",
|
||||
bugfix: "bugfix",
|
||||
enhancement: "feature",
|
||||
feature: "feature",
|
||||
refactor: "refactor",
|
||||
"breaking change": "breaking change",
|
||||
};
|
||||
const corePriority = ["breaking change", "bugfix", "feature", "refactor"];
|
||||
|
||||
for (const pr of corePulls) {
|
||||
if (!pr.merged_at) continue;
|
||||
if (new Date(pr.merged_at) <= latestDateInChangelog) continue;
|
||||
|
||||
const rawLabels = pr.labels.map(label => label.name.toLowerCase());
|
||||
if (rawLabels.some(l => ["invalid", "wontdo", "wontfix", "duplicate"].includes(l))) continue;
|
||||
|
||||
if (!coreCategory) {
|
||||
console.log(`No Core category configured; skipping core#${pr.number}`);
|
||||
continue;
|
||||
}
|
||||
|
||||
// core#N rather than #N: a bare number reads as a pull request
|
||||
// in this repository, so the link would lead somewhere other
|
||||
// than the text promises.
|
||||
const coreNote = `- ${pr.title} [@${pr.user.login}](https://github.com/${pr.user.login}) ([core#${pr.number}](${pr.html_url}))`;
|
||||
|
||||
const mapped = rawLabels.map(l => coreLabelAliases[l]).filter(Boolean);
|
||||
let placed = false;
|
||||
if (coreCategory.subCategories && coreCategory.subCategories.length > 0) {
|
||||
for (const priorityLabel of corePriority) {
|
||||
if (!mapped.includes(priorityLabel)) continue;
|
||||
const subCategory = coreCategory.subCategories.find(sub =>
|
||||
sub.labels.includes(priorityLabel));
|
||||
if (subCategory) {
|
||||
subCategory.notes.push(coreNote);
|
||||
placed = true;
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
if (!placed) coreCategory.notes.push(coreNote);
|
||||
}
|
||||
} catch (error) {
|
||||
// The engine repository being unreachable must not cost this
|
||||
// repository its changelog.
|
||||
console.error(`Could not read core pull requests: ${error}`);
|
||||
}
|
||||
|
||||
return categorizedPRs;
|
||||
}
|
||||
|
||||
|
||||
58
.github/workflows/notify-breaking-change.yml
generated
vendored
Normal file
58
.github/workflows/notify-breaking-change.yml
generated
vendored
Normal 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
|
||||
209
.github/workflows/pocketbase-bot.yml
generated
vendored
209
.github/workflows/pocketbase-bot.yml
generated
vendored
@@ -33,6 +33,10 @@ jobs:
|
||||
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
|
||||
FRONTEND_URL: ${{ secrets.FRONTEND_URL }}
|
||||
REVALIDATE_SECRET: ${{ secrets.REVALIDATE_SECRET }}
|
||||
# Screenshot attaching is delegated to the frontend, which owns the
|
||||
# fetching and validation. Without this the subcommand says so rather
|
||||
# than failing halfway.
|
||||
SCREENSHOT_IMPORT_SECRET: ${{ secrets.SCREENSHOT_IMPORT_SECRET }}
|
||||
run: |
|
||||
node << 'ENDSCRIPT'
|
||||
(async function () {
|
||||
@@ -323,11 +327,21 @@ jobs:
|
||||
'/pocketbase <slug> method remove <type>\n' +
|
||||
'```\n' +
|
||||
'Method fields: `cpu` `ram` `hdd` `os` `version` `config_path` `script`\n\n' +
|
||||
'`cpu` `ram` `hdd` `os` `version` also work without `method` — they go to the\n' +
|
||||
'default install method, e.g. `/pocketbase <slug> hdd=25`\n\n' +
|
||||
'**Editable fields:** `name` `description` `logo` `documentation` `website` `project_url` `repository` ' +
|
||||
'`config_path` `port` `default_user` `default_passwd` ' +
|
||||
'`updateable` `privileged` `is_dev` ' +
|
||||
'`updateable` `privileged` `is_dev` `has_arm` ' +
|
||||
'`architectures` (amd64,arm64) `platforms` (pve,incus) ' +
|
||||
'`is_disabled` `disable_message` `is_deleted` `deleted_message`';
|
||||
'`execute_in` (pve,lxc,pbs,vm,pmg,pdm) `categories` (names or ids) ' +
|
||||
'`type` (ct, vm, addon, …) ' +
|
||||
'`is_disabled` `disable_message` `is_deleted` `deleted_message`\n\n' +
|
||||
'**Screenshots:**\n' +
|
||||
'```\n' +
|
||||
'/pocketbase <slug> screenshot https://example.com/one.png https://example.com/two.png\n' +
|
||||
'```\n\n' +
|
||||
'`slug` is deliberately not editable: it is the URL, the JSON filename and the\n' +
|
||||
'ct/<slug>.sh path all at once, so renaming it is a migration rather than an edit.';
|
||||
|
||||
if (!withoutCmd) {
|
||||
await addReaction('-1');
|
||||
@@ -490,6 +504,7 @@ jobs:
|
||||
const noteMatch = rest.match(/^note\s+(list|add|edit|remove)\b/i);
|
||||
const methodMatch = rest.match(/^method\b/i);
|
||||
const setMatch = rest.match(/^set\s+(\S+)/i);
|
||||
const shotMatch = rest.match(/^screenshots?\s+(.+)$/i);
|
||||
|
||||
if (infoMatch) {
|
||||
// ── INFO SUBCOMMAND ──────────────────────────────────────────────
|
||||
@@ -535,6 +550,44 @@ jobs:
|
||||
await addReaction('+1');
|
||||
await postComment(out.join('\n'));
|
||||
|
||||
} else if (shotMatch) {
|
||||
// ── SCREENSHOT SUBCOMMAND ────────────────────────────────────────
|
||||
// Delegated to the frontend rather than reimplemented here: it
|
||||
// already fetches the URL, checks the content type and size, and
|
||||
// attaches the file to PocketBase. Doing that a second time in a
|
||||
// workflow would be a second set of bugs.
|
||||
const shotUrls = shotMatch[1].split(/[\s,]+/).map(function (u) { return u.trim(); }).filter(Boolean);
|
||||
const bad = shotUrls.filter(function (u) { return !/^https?:\/\//i.test(u); });
|
||||
if (bad.length > 0) {
|
||||
await addReaction('-1');
|
||||
await postComment('❌ **PocketBase Bot**: not a URL: `' + bad.join('`, `') + '`');
|
||||
process.exit(0);
|
||||
}
|
||||
const frontendUrl = process.env.FRONTEND_URL;
|
||||
const shotSecret = process.env.SCREENSHOT_IMPORT_SECRET;
|
||||
if (!frontendUrl || !shotSecret) {
|
||||
await addReaction('-1');
|
||||
await postComment('❌ **PocketBase Bot**: screenshot import is not configured (FRONTEND_URL / SCREENSHOT_IMPORT_SECRET).');
|
||||
process.exit(1);
|
||||
}
|
||||
const shotRes = await request(frontendUrl.replace(/\/$/, '') + '/api/screenshots', {
|
||||
method: 'POST',
|
||||
headers: { 'Content-Type': 'application/json' },
|
||||
body: JSON.stringify({ slug: slug, secret: shotSecret, urls: shotUrls })
|
||||
});
|
||||
if (!shotRes.ok) {
|
||||
await addReaction('-1');
|
||||
await postComment('❌ **PocketBase Bot**: screenshot import failed:\n```\n' + shotRes.body + '\n```');
|
||||
process.exit(1);
|
||||
}
|
||||
await revalidate(slug);
|
||||
await addReaction('+1');
|
||||
await postComment(
|
||||
'✅ **PocketBase Bot**: attached ' + shotUrls.length + ' screenshot' + (shotUrls.length === 1 ? '' : 's') +
|
||||
' to **`' + slug + '`**\n\n' + shotUrls.map(function (u) { return '- ' + u; }).join('\n') +
|
||||
'\n\n*Executed by @' + actor + '*'
|
||||
);
|
||||
|
||||
} else if (noteMatch) {
|
||||
// ── NOTE SUBCOMMAND ──────────────────────────────────────────────
|
||||
const noteAction = noteMatch[1].toLowerCase();
|
||||
@@ -838,15 +891,20 @@ jobs:
|
||||
} else if (setMatch) {
|
||||
// ── SET SUBCOMMAND (value from code block) ───────────────────────
|
||||
const fieldName = setMatch[1].toLowerCase();
|
||||
// app_vars is a JSON column, so it rides the code-block path like
|
||||
// the long text fields - but its content is parsed, not stored
|
||||
// verbatim, or PocketBase ends up with a string where an object
|
||||
// belongs and every reader has to guess.
|
||||
const SET_ALLOWED = {
|
||||
name: 'string', description: 'string', logo: 'string',
|
||||
documentation: 'string', website: 'string', project_url: 'string', repository: 'string',
|
||||
config_path: 'string', disable_message: 'string', deleted_message: 'string'
|
||||
config_path: 'string', disable_message: 'string', deleted_message: 'string',
|
||||
app_vars: 'json'
|
||||
};
|
||||
if (!SET_ALLOWED[fieldName]) {
|
||||
await addReaction('-1');
|
||||
await postComment(
|
||||
'❌ **PocketBase Bot**: `set` only supports text fields.\n\n' +
|
||||
'❌ **PocketBase Bot**: `set` only supports text and JSON fields.\n\n' +
|
||||
'**Allowed:** `' + Object.keys(SET_ALLOWED).join('`, `') + '`\n\n' +
|
||||
'For boolean/number fields use `field=value` syntax instead.'
|
||||
);
|
||||
@@ -861,7 +919,21 @@ jobs:
|
||||
process.exit(0);
|
||||
}
|
||||
const setPayload = {};
|
||||
setPayload[fieldName] = codeBlockValue;
|
||||
if (SET_ALLOWED[fieldName] === 'json') {
|
||||
let parsedJson;
|
||||
try {
|
||||
parsedJson = JSON.parse(codeBlockValue);
|
||||
} catch (e) {
|
||||
await addReaction('-1');
|
||||
await postComment(
|
||||
'❌ **PocketBase Bot**: `' + fieldName + '` must be valid JSON.\n\n```\n' + e.message + '\n```'
|
||||
);
|
||||
process.exit(0);
|
||||
}
|
||||
setPayload[fieldName] = parsedJson;
|
||||
} else {
|
||||
setPayload[fieldName] = codeBlockValue;
|
||||
}
|
||||
const setPatchRes = await request(recordsUrl + '/' + record.id, {
|
||||
method: 'PATCH',
|
||||
headers: { 'Authorization': token, 'Content-Type': 'application/json' },
|
||||
@@ -901,6 +973,10 @@ jobs:
|
||||
privileged: 'boolean',
|
||||
architectures: 'select_list',
|
||||
platforms: 'select_list',
|
||||
execute_in: 'select_list',
|
||||
has_arm: 'boolean',
|
||||
categories: 'relation_list',
|
||||
type: 'relation_single',
|
||||
is_dev: 'boolean',
|
||||
is_disabled: 'boolean',
|
||||
disable_message: 'string',
|
||||
@@ -910,7 +986,18 @@ jobs:
|
||||
|
||||
const parsedFields = parseKVPairs(rest);
|
||||
|
||||
const unknownFields = Object.keys(parsedFields).filter(function (f) { return !ALLOWED_FIELDS[f]; });
|
||||
// cpu/ram/hdd/os/version live inside install_methods, not on the
|
||||
// record itself. "/pocketbase immich hdd=25" is how people ask for
|
||||
// it, so route those keys there instead of rejecting them as
|
||||
// unknown fields. Everything else stays a plain record field.
|
||||
const TOP_RESOURCE_KEYS = { cpu: 'number', ram: 'number', hdd: 'number', os: 'string', version: 'string' };
|
||||
const resourceFields = {};
|
||||
const scriptFields = {};
|
||||
for (const [rk, rv] of Object.entries(parsedFields)) {
|
||||
if (TOP_RESOURCE_KEYS[rk]) resourceFields[rk] = rv; else scriptFields[rk] = rv;
|
||||
}
|
||||
|
||||
const unknownFields = Object.keys(scriptFields).filter(function (f) { return !ALLOWED_FIELDS[f]; });
|
||||
if (unknownFields.length > 0) {
|
||||
await addReaction('-1');
|
||||
await postComment(
|
||||
@@ -930,9 +1017,10 @@ jobs:
|
||||
const SELECT_VALUES = {
|
||||
architectures: ['amd64', 'arm64'],
|
||||
platforms: ['pve', 'incus'],
|
||||
execute_in: ['pve', 'lxc', 'pbs', 'vm', 'pmg', 'pdm'],
|
||||
};
|
||||
const payload = {};
|
||||
for (const [key, rawVal] of Object.entries(parsedFields)) {
|
||||
for (const [key, rawVal] of Object.entries(scriptFields)) {
|
||||
const type = ALLOWED_FIELDS[key];
|
||||
if (type === 'boolean') {
|
||||
if (rawVal === 'true') payload[key] = true;
|
||||
@@ -962,6 +1050,65 @@ jobs:
|
||||
process.exit(0);
|
||||
}
|
||||
payload[key] = values;
|
||||
} else if (type === 'relation_list') {
|
||||
// categories is a relation, so the stored value is a list of
|
||||
// record ids. People write category names, so resolve them —
|
||||
// and accept ids too, which is what a copy out of the
|
||||
// PocketBase UI gives you.
|
||||
const wanted = rawVal.split(',').map(function (v) { return v.trim(); }).filter(Boolean);
|
||||
const catRes = await request(apiBase + '/collections/script_categories/records?perPage=500&fields=id,name', {
|
||||
headers: { 'Authorization': token }
|
||||
});
|
||||
if (!catRes.ok) {
|
||||
await addReaction('-1');
|
||||
await postComment('❌ **PocketBase Bot**: could not read `script_categories` to resolve `' + key + '`.');
|
||||
process.exit(1);
|
||||
}
|
||||
const cats = JSON.parse(catRes.body).items || [];
|
||||
const byName = {};
|
||||
const ids = {};
|
||||
cats.forEach(function (c) { byName[String(c.name).toLowerCase()] = c.id; ids[c.id] = true; });
|
||||
const resolved = [];
|
||||
const unknownCats = [];
|
||||
wanted.forEach(function (w) {
|
||||
if (ids[w]) { resolved.push(w); return; }
|
||||
const id = byName[w.toLowerCase()];
|
||||
if (id) resolved.push(id); else unknownCats.push(w);
|
||||
});
|
||||
if (unknownCats.length > 0) {
|
||||
await addReaction('-1');
|
||||
await postComment(
|
||||
'❌ **PocketBase Bot**: unknown ' + key + ': `' + unknownCats.join('`, `') + '`\n\n' +
|
||||
'**Available:** `' + cats.map(function (c) { return c.name; }).sort().join('`, `') + '`'
|
||||
);
|
||||
process.exit(0);
|
||||
}
|
||||
payload[key] = resolved;
|
||||
} else if (type === 'relation_single') {
|
||||
// type points at one z_ref_script_types record. People write
|
||||
// "ct" or "vm", not a 15-character id.
|
||||
const typeRes = await request(apiBase + '/collections/z_ref_script_types/records?perPage=200&fields=id,type', {
|
||||
headers: { 'Authorization': token }
|
||||
});
|
||||
if (!typeRes.ok) {
|
||||
await addReaction('-1');
|
||||
await postComment('❌ **PocketBase Bot**: could not read `z_ref_script_types` to resolve `' + key + '`.');
|
||||
process.exit(1);
|
||||
}
|
||||
const types = JSON.parse(typeRes.body).items || [];
|
||||
const wantType = rawVal.trim().toLowerCase();
|
||||
const hit = types.find(function (t) {
|
||||
return t.id === rawVal.trim() || String(t.type).toLowerCase() === wantType;
|
||||
});
|
||||
if (!hit) {
|
||||
await addReaction('-1');
|
||||
await postComment(
|
||||
'❌ **PocketBase Bot**: unknown type `' + rawVal + '`\n\n' +
|
||||
'**Available:** `' + types.map(function (t) { return t.type; }).sort().join('`, `') + '`'
|
||||
);
|
||||
process.exit(0);
|
||||
}
|
||||
payload[key] = hit.id;
|
||||
} else if (type === 'nullable_string') {
|
||||
payload[key] = rawVal === '' ? null : rawVal;
|
||||
} else {
|
||||
@@ -969,6 +1116,42 @@ jobs:
|
||||
}
|
||||
}
|
||||
|
||||
// Resources go into install_methods. Which method: the only one if
|
||||
// there is only one, otherwise the non-Alpine default — and the
|
||||
// reply says which, so nobody has to guess where 25 GB landed.
|
||||
const resourceKeys = Object.keys(resourceFields);
|
||||
let resourceTargetType = null;
|
||||
if (resourceKeys.length > 0) {
|
||||
const methodsArr = readJsonBlob(record.install_methods) || [];
|
||||
if (methodsArr.length === 0) {
|
||||
await addReaction('-1');
|
||||
await postComment(
|
||||
'❌ **PocketBase Bot**: `' + slug + '` has no install methods, so there is nowhere to put `' +
|
||||
resourceKeys.join('`, `') + '`.\n\nAdd one first: `/pocketbase ' + slug + ' method add default cpu=2 ram=2048 hdd=8`'
|
||||
);
|
||||
process.exit(0);
|
||||
}
|
||||
let target = methodsArr.find(function (m) {
|
||||
return String(m.type || '').toLowerCase() !== 'alpine';
|
||||
}) || methodsArr[0];
|
||||
resourceTargetType = target.type || 'default';
|
||||
if (!target.resources) target.resources = {};
|
||||
for (const [rk, rv] of Object.entries(resourceFields)) {
|
||||
if (TOP_RESOURCE_KEYS[rk] === 'number') {
|
||||
const n = parseInt(rv, 10);
|
||||
if (isNaN(n)) {
|
||||
await addReaction('-1');
|
||||
await postComment('❌ **PocketBase Bot**: `' + rk + '` must be a number, got: `' + rv + '`');
|
||||
process.exit(0);
|
||||
}
|
||||
target.resources[rk] = n;
|
||||
} else {
|
||||
target.resources[rk] = rv;
|
||||
}
|
||||
}
|
||||
payload.install_methods = methodsArr;
|
||||
}
|
||||
|
||||
const patchRes = await request(recordsUrl + '/' + record.id, {
|
||||
method: 'PATCH',
|
||||
headers: { 'Authorization': token, 'Content-Type': 'application/json' },
|
||||
@@ -981,10 +1164,16 @@ jobs:
|
||||
}
|
||||
await revalidate(slug);
|
||||
const FIELD_TO_CT_VAR = { tags: 'var_tags', unprivileged: 'var_unprivileged' };
|
||||
const RESOURCE_CT_VAR = { cpu: 'var_cpu', ram: 'var_ram', hdd: 'var_disk', os: 'var_os', version: 'var_version' };
|
||||
const fieldCtChanges = {};
|
||||
for (const [k, v] of Object.entries(payload)) {
|
||||
if (FIELD_TO_CT_VAR[k]) fieldCtChanges[FIELD_TO_CT_VAR[k]] = v;
|
||||
}
|
||||
// Resources belong in the CT script too, exactly as the `method`
|
||||
// path syncs them - otherwise PocketBase and ct/<slug>.sh drift.
|
||||
for (const [k, v] of Object.entries(resourceFields)) {
|
||||
if (RESOURCE_CT_VAR[k]) fieldCtChanges[RESOURCE_CT_VAR[k]] = v;
|
||||
}
|
||||
let fieldCtSync = null;
|
||||
try {
|
||||
fieldCtSync = await upsertCtDefaultsPr(slug, fieldCtChanges);
|
||||
@@ -992,8 +1181,14 @@ jobs:
|
||||
fieldCtSync = { status: 'skipped', reason: 'CT sync failed: ' + e.message };
|
||||
}
|
||||
await addReaction('+1');
|
||||
// install_methods is skipped here: dumping the whole array as JSON
|
||||
// buries the one number that actually changed.
|
||||
const changesLines = Object.entries(payload)
|
||||
.filter(function (e) { return e[0] !== 'install_methods'; })
|
||||
.map(function ([k, v]) { return '- `' + k + '` → `' + JSON.stringify(v) + '`'; })
|
||||
.concat(Object.entries(resourceFields).map(function ([k, v]) {
|
||||
return '- `' + k + '` → `' + v + '` *(install method `' + resourceTargetType + '`)*';
|
||||
}))
|
||||
.join('\n');
|
||||
await postComment(
|
||||
'✅ **PocketBase Bot**: Updated **`' + slug + '`** successfully!\n\n' +
|
||||
|
||||
171
.github/workflows/pr-test-command.yml
generated
vendored
Normal file
171
.github/workflows/pr-test-command.yml
generated
vendored
Normal file
@@ -0,0 +1,171 @@
|
||||
name: PR test command
|
||||
|
||||
# Posts a ready-to-run test command for reviewers.
|
||||
# It uses this PR’s script branch with the production engine, since both resolve
|
||||
# independently. Only scripts using community-scripts/core are supported.
|
||||
#
|
||||
# pull_request_target allows comments on fork PRs. No PR code is checked out or
|
||||
# executed; API inputs are validated and the comment is assembled in JavaScript.
|
||||
|
||||
on:
|
||||
pull_request_target:
|
||||
branches: ["main"]
|
||||
types: [opened, synchronize, reopened]
|
||||
paths:
|
||||
- "ct/**"
|
||||
- "install/**"
|
||||
|
||||
jobs:
|
||||
comment:
|
||||
if: github.repository == 'community-scripts/ProxmoxVE'
|
||||
runs-on: self-hosted
|
||||
permissions:
|
||||
pull-requests: write
|
||||
contents: read
|
||||
steps:
|
||||
- uses: actions/github-script@v9
|
||||
with:
|
||||
script: |
|
||||
const MARKER = '<!-- pr-test-command -->';
|
||||
const MAX_APPS = 10;
|
||||
|
||||
const pr = context.payload.pull_request;
|
||||
const head = pr.head.repo; // null when the fork is gone
|
||||
if (!head) return;
|
||||
|
||||
const owner = context.repo.owner;
|
||||
const repo = context.repo.repo;
|
||||
|
||||
// Git allows backticks in a ref name, and this one ends up inside a
|
||||
// fenced block. Anything outside the ordinary set is not worth
|
||||
// rendering, so bail rather than escape.
|
||||
const ref = pr.head.ref;
|
||||
if (!/^[A-Za-z0-9._\/-]+$/.test(ref)) return;
|
||||
const base = `https://raw.githubusercontent.com/${head.full_name}/${ref}`;
|
||||
|
||||
const files = await github.paginate(github.rest.pulls.listFiles, {
|
||||
owner, repo, pull_number: pr.number, per_page: 100,
|
||||
});
|
||||
|
||||
// ct/foo.sh and install/foo-install.sh are the same app. A removed
|
||||
// file has nothing left to run.
|
||||
const apps = new Map(); // slug -> {ct, install}
|
||||
for (const f of files) {
|
||||
if (f.status === 'removed') continue;
|
||||
let m = f.filename.match(/^ct\/([a-z0-9][a-z0-9._-]*)\.sh$/);
|
||||
if (m) { apps.set(m[1], { ...apps.get(m[1]), ct: true }); continue; }
|
||||
m = f.filename.match(/^install\/([a-z0-9][a-z0-9._-]*)-install\.sh$/);
|
||||
if (m) apps.set(m[1], { ...apps.get(m[1]), install: true });
|
||||
}
|
||||
if (apps.size === 0) return;
|
||||
|
||||
// Read the ct script at the PR head to see which engine it loads.
|
||||
// Read only -- it is never sourced or run.
|
||||
async function bootstrapOf(slug) {
|
||||
try {
|
||||
const res = await github.rest.repos.getContent({
|
||||
owner: head.owner.login, repo: head.name,
|
||||
path: `ct/${slug}.sh`, ref: pr.head.sha,
|
||||
});
|
||||
if (!res.data.content) return 'unknown';
|
||||
const text = Buffer.from(res.data.content, 'base64').toString('utf8');
|
||||
const firstLines = text.split('\n').slice(0, 12).join('\n');
|
||||
return /_cs_boot=/.test(firstLines) ? 'core' : 'legacy';
|
||||
} catch (e) {
|
||||
return e.status === 404 ? 'missing' : 'unknown';
|
||||
}
|
||||
}
|
||||
|
||||
const ready = [], legacy = [], missing = [];
|
||||
for (const slug of [...apps.keys()].sort()) {
|
||||
const kind = await bootstrapOf(slug);
|
||||
if (kind === 'core') ready.push(slug);
|
||||
else if (kind === 'legacy') legacy.push(slug);
|
||||
else if (kind === 'missing') missing.push(slug);
|
||||
}
|
||||
|
||||
const lines = [MARKER];
|
||||
|
||||
if (ready.length > 0) {
|
||||
const shown = ready.slice(0, MAX_APPS);
|
||||
lines.push(
|
||||
'### Try this branch',
|
||||
'',
|
||||
'The engine and the scripts resolve independently, so this runs the changed',
|
||||
'`ct/` and `install/` scripts against the **production** engine:',
|
||||
'',
|
||||
);
|
||||
for (const slug of shown) {
|
||||
lines.push(
|
||||
'```bash',
|
||||
`export COMMUNITY_SCRIPTS_URL=${base}`,
|
||||
`bash -c "$(curl -fsSL "$COMMUNITY_SCRIPTS_URL/ct/${slug}.sh")"`,
|
||||
'```',
|
||||
'',
|
||||
);
|
||||
}
|
||||
if (ready.length > shown.length) {
|
||||
lines.push(
|
||||
`${ready.length - shown.length} more script(s) changed; same command, different slug.`,
|
||||
'',
|
||||
);
|
||||
}
|
||||
lines.push(
|
||||
'Both lines are needed. Each script pins `_CS_DEFAULT_URL` to `main`, and that',
|
||||
'pin is what fills `COMMUNITY_SCRIPTS_URL` when the variable is unset — so',
|
||||
'curling the branch URL on its own gives you the `ct/` script from this PR and',
|
||||
'the `install/` script from `main`. Frequently the one you meant to test.',
|
||||
'',
|
||||
'The same command works on an Incus host: the engine detects the platform and',
|
||||
'loads the matching backend, while the scripts still come from this branch.',
|
||||
'',
|
||||
'<details><summary>Useful while testing</summary>',
|
||||
'',
|
||||
'`dev_mode=net` logs every fetch with status and URL, which is the quickest way',
|
||||
'to confirm the branch is really being used. `dev_mode=keep` stops a failed',
|
||||
'build from deleting the container along with the evidence.',
|
||||
'',
|
||||
'```bash',
|
||||
`export COMMUNITY_SCRIPTS_URL=${base}`,
|
||||
`dev_mode=net,keep bash -c "$(curl -fsSL "$COMMUNITY_SCRIPTS_URL/ct/${shown[0]}.sh")"`,
|
||||
'```',
|
||||
'</details>',
|
||||
);
|
||||
}
|
||||
|
||||
if (legacy.length > 0) {
|
||||
lines.push(
|
||||
'',
|
||||
ready.length > 0 ? '---' : '### Not testable this way yet',
|
||||
'',
|
||||
`\`${legacy.join('`, `')}\` still uses the older one-liner bootstrap, which`,
|
||||
'resolves everything from `ProxmoxVE/main` and ignores `COMMUNITY_SCRIPTS_URL`.',
|
||||
'There is no way to point it at this branch — test it from a checkout on the',
|
||||
'host instead, or migrate the script to the `_cs_boot` bootstrap first.',
|
||||
);
|
||||
}
|
||||
|
||||
if (missing.length > 0) {
|
||||
lines.push(
|
||||
'',
|
||||
`No \`ct/\` script found for \`${missing.join('`, `')}\`, so there is nothing to`,
|
||||
'run. If the install script was renamed, its `ct/` counterpart needs the same',
|
||||
'name.',
|
||||
);
|
||||
}
|
||||
|
||||
if (lines.length === 1) return; // marker only, nothing worth saying
|
||||
const body = lines.join('\n');
|
||||
|
||||
// Update in place rather than posting again on every push.
|
||||
const comments = await github.paginate(github.rest.issues.listComments, {
|
||||
owner, repo, issue_number: pr.number, per_page: 100,
|
||||
});
|
||||
const mine = comments.find(c => c.body.includes(MARKER));
|
||||
if (mine) {
|
||||
if (mine.body !== body) {
|
||||
await github.rest.issues.updateComment({ owner, repo, comment_id: mine.id, body });
|
||||
}
|
||||
} else {
|
||||
await github.rest.issues.createComment({ owner, repo, issue_number: pr.number, body });
|
||||
}
|
||||
56
.github/workflows/sync-to-incus.yml
generated
vendored
Normal file
56
.github/workflows/sync-to-incus.yml
generated
vendored
Normal file
@@ -0,0 +1,56 @@
|
||||
name: Sync ct/install to Incus
|
||||
|
||||
# When a ct/*.sh or install/*.sh file changes on main, trigger the Incus repo's
|
||||
# own sync workflow immediately instead of waiting for its daily 04:00 cron.
|
||||
#
|
||||
# The actual mirroring + transformation lives in community-scripts/Incus
|
||||
# (.github/workflows/sync-scripts.yml): it rewrites each script's bootstrap line
|
||||
# to load the engine from community-scripts/core (ProxmoxVE's misc/build.func is
|
||||
# a monolith with no Incus backend), so a plain 1:1 copy would break every Incus
|
||||
# script. We therefore only fire a repository_dispatch and let that single
|
||||
# source of truth do the work (and auto-approve + merge its own PR).
|
||||
#
|
||||
# Auth: the "push-app-to-main" GitHub App (vars.PUSH_MAIN_APP_ID /
|
||||
# secrets.PUSH_MAIN_APP_SECRET), scoped to community-scripts/Incus. It has
|
||||
# contents:write, which repository_dispatch requires (community-scripts-pr-app
|
||||
# only has pull_requests:write, so it cannot dispatch). The app must be
|
||||
# installed on the Incus repo.
|
||||
|
||||
on:
|
||||
push:
|
||||
branches:
|
||||
- main
|
||||
paths:
|
||||
- "ct/**.sh"
|
||||
- "install/**.sh"
|
||||
workflow_dispatch:
|
||||
|
||||
concurrency:
|
||||
group: sync-to-incus
|
||||
cancel-in-progress: false
|
||||
|
||||
jobs:
|
||||
dispatch:
|
||||
if: github.repository == 'community-scripts/ProxmoxVE'
|
||||
runs-on: ubuntu-latest
|
||||
steps:
|
||||
- name: Generate token (dispatch to Incus)
|
||||
id: token
|
||||
uses: actions/create-github-app-token@v3
|
||||
with:
|
||||
app-id: ${{ vars.PUSH_MAIN_APP_ID }}
|
||||
private-key: ${{ secrets.PUSH_MAIN_APP_SECRET }}
|
||||
owner: community-scripts
|
||||
repositories: Incus
|
||||
|
||||
- name: Trigger Incus sync workflow
|
||||
env:
|
||||
GH_TOKEN: ${{ steps.token.outputs.token }}
|
||||
SOURCE_SHA: ${{ github.sha }}
|
||||
run: |
|
||||
set -euo pipefail
|
||||
echo "Dispatching proxmoxve-scripts-changed to community-scripts/Incus (from ${SOURCE_SHA})"
|
||||
gh api repos/community-scripts/Incus/dispatches \
|
||||
-X POST \
|
||||
-f "event_type=proxmoxve-scripts-changed" \
|
||||
-F "client_payload[sha]=${SOURCE_SHA}"
|
||||
349
CHANGELOG.md
349
CHANGELOG.md
@@ -95,6 +95,9 @@ Exercise vigilance regarding copycat or coat-tailing sites that seek to exploit
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
@@ -108,7 +111,7 @@ Exercise vigilance regarding copycat or coat-tailing sites that seek to exploit
|
||||
|
||||
|
||||
<details>
|
||||
<summary><h4>August (22 entries)</h4></summary>
|
||||
<summary><h4>August (29 entries)</h4></summary>
|
||||
|
||||
[View August 2026 Changelog](.github/changelogs/2026/08.md)
|
||||
|
||||
@@ -527,6 +530,169 @@ Exercise vigilance regarding copycat or coat-tailing sites that seek to exploit
|
||||
|
||||
</details>
|
||||
|
||||
## 2026-08-31
|
||||
|
||||
### 🚀 Updated Scripts
|
||||
|
||||
- #### 🐞 Bug Fixes
|
||||
|
||||
- node-red: remove --unsafe-perm flag [@MickLesk](https://github.com/MickLesk) ([#16859](https://github.com/community-scripts/ProxmoxVE/pull/16859))
|
||||
- directus: add build-essential dependency [@MickLesk](https://github.com/MickLesk) ([#16858](https://github.com/community-scripts/ProxmoxVE/pull/16858))
|
||||
|
||||
- #### ✨ New Features
|
||||
|
||||
- haos-vm: add optional x86-64-v2-AES CPU option, future HA numpy builds need it [@MickLesk](https://github.com/MickLesk) ([#16868](https://github.com/community-scripts/ProxmoxVE/pull/16868))
|
||||
|
||||
- #### 🔧 Refactor
|
||||
|
||||
- immich: tolerate enable-maintenance-mode crash, same as disable-maintenance-mode [@MickLesk](https://github.com/MickLesk) ([#16866](https://github.com/community-scripts/ProxmoxVE/pull/16866))
|
||||
- move the hardware-accelerated scripts onto new core [@MickLesk](https://github.com/MickLesk) ([#16864](https://github.com/community-scripts/ProxmoxVE/pull/16864))
|
||||
- ntopng: use ntop.org's documented apt repo per Debian codename, not always apt-stable [@MickLesk](https://github.com/MickLesk) ([#16862](https://github.com/community-scripts/ProxmoxVE/pull/16862))
|
||||
- Refactor: OpenGist [@MickLesk](https://github.com/MickLesk) ([#16861](https://github.com/community-scripts/ProxmoxVE/pull/16861))
|
||||
|
||||
### 💾 Core
|
||||
|
||||
- Lift the settings summary and the mode fork into vm-core [@MickLesk](https://github.com/MickLesk) ([core#12](https://github.com/community-scripts/core/pull/12))
|
||||
|
||||
### 📚 Documentation
|
||||
|
||||
- Include engine pull requests in the changelog [@MickLesk](https://github.com/MickLesk) ([#16867](https://github.com/community-scripts/ProxmoxVE/pull/16867))
|
||||
|
||||
## 2026-08-30
|
||||
|
||||
### 🆕 New Scripts
|
||||
|
||||
- SolidInvoice ([#16869](https://github.com/community-scripts/ProxmoxVE/pull/16869))
|
||||
- Super-Productivity ([#16870](https://github.com/community-scripts/ProxmoxVE/pull/16870))
|
||||
- Defguard ([#16871](https://github.com/community-scripts/ProxmoxVE/pull/16871))
|
||||
- OpenBao ([#16872](https://github.com/community-scripts/ProxmoxVE/pull/16872))
|
||||
|
||||
### 🚀 Updated Scripts
|
||||
|
||||
- #### 🔧 Refactor
|
||||
|
||||
- general: remove gitea links overall [@MickLesk](https://github.com/MickLesk) ([#16863](https://github.com/community-scripts/ProxmoxVE/pull/16863))
|
||||
|
||||
## 2026-08-29
|
||||
|
||||
### 📚 Documentation
|
||||
|
||||
- github action: post the command that tests a ct/ or install/ change [@MickLesk](https://github.com/MickLesk) ([#16833](https://github.com/community-scripts/ProxmoxVE/pull/16833))
|
||||
|
||||
## 2026-08-28
|
||||
|
||||
### 🚀 Updated Scripts
|
||||
|
||||
- #### 🐞 Bug Fixes
|
||||
|
||||
- homepage: set CI=true so pnpm can self-heal node_modules without a TTY [@MickLesk](https://github.com/MickLesk) ([#16841](https://github.com/community-scripts/ProxmoxVE/pull/16841))
|
||||
- droppedneedle: launch via automatic_upgrade orchestrator [@MickLesk](https://github.com/MickLesk) ([#16834](https://github.com/community-scripts/ProxmoxVE/pull/16834))
|
||||
- calibre-web: point cps at explicit db path, src-layout package has no default anymore [@MickLesk](https://github.com/MickLesk) ([#16832](https://github.com/community-scripts/ProxmoxVE/pull/16832))
|
||||
- podman: pull portainer images before systemd unit start to avoid start timeout [@MickLesk](https://github.com/MickLesk) ([#16831](https://github.com/community-scripts/ProxmoxVE/pull/16831))
|
||||
- gitea: make gitea own its home dir instead of toggling group perms [@MickLesk](https://github.com/MickLesk) ([#16830](https://github.com/community-scripts/ProxmoxVE/pull/16830))
|
||||
- pve-ups: fix: add pip binary [@CrazyWolf13](https://github.com/CrazyWolf13) ([#16820](https://github.com/community-scripts/ProxmoxVE/pull/16820))
|
||||
|
||||
- #### 🔧 Refactor
|
||||
|
||||
- Refactor: Calibre-Web database creation [@MickLesk](https://github.com/MickLesk) ([#16842](https://github.com/community-scripts/ProxmoxVE/pull/16842))
|
||||
- mastodon: read .ruby-version dynamically instead of hardcoding 4.0.5 [@MickLesk](https://github.com/MickLesk) ([#16829](https://github.com/community-scripts/ProxmoxVE/pull/16829))
|
||||
|
||||
## 2026-08-27
|
||||
|
||||
### 🆕 New Scripts
|
||||
|
||||
- Seanime ([#16777](https://github.com/community-scripts/ProxmoxVE/pull/16777))
|
||||
- Yopass ([#16778](https://github.com/community-scripts/ProxmoxVE/pull/16778))
|
||||
|
||||
### 🚀 Updated Scripts
|
||||
|
||||
- #### 🐞 Bug Fixes
|
||||
|
||||
- excalidash: Add a sed to switch to the correct DB Provider [@michelroegl-brunner](https://github.com/michelroegl-brunner) ([#16814](https://github.com/community-scripts/ProxmoxVE/pull/16814))
|
||||
- fix(stirling-pdf): remove broken ExecStop using %n [@michelroegl-brunner](https://github.com/michelroegl-brunner) ([#16813](https://github.com/community-scripts/ProxmoxVE/pull/16813))
|
||||
|
||||
### 🧰 Tools
|
||||
|
||||
- #### 🐞 Bug Fixes
|
||||
|
||||
- Fix: Incorporate the new update functions to prevent a empty grep on … [@michelroegl-brunner](https://github.com/michelroegl-brunner) ([#16809](https://github.com/community-scripts/ProxmoxVE/pull/16809))
|
||||
|
||||
## 2026-08-26
|
||||
|
||||
### 🆕 New Scripts
|
||||
|
||||
- CentOS ([#16772](https://github.com/community-scripts/ProxmoxVE/pull/16772))
|
||||
- AlmaLinux ([#16771](https://github.com/community-scripts/ProxmoxVE/pull/16771))
|
||||
- Fedora ([#16770](https://github.com/community-scripts/ProxmoxVE/pull/16770))
|
||||
- Devuan ([#16773](https://github.com/community-scripts/ProxmoxVE/pull/16773))
|
||||
- OpenEuler ([#16774](https://github.com/community-scripts/ProxmoxVE/pull/16774))
|
||||
- Gentoo ([#16775](https://github.com/community-scripts/ProxmoxVE/pull/16775))
|
||||
- openSUSE ([#16776](https://github.com/community-scripts/ProxmoxVE/pull/16776))
|
||||
- Directus ([#16779](https://github.com/community-scripts/ProxmoxVE/pull/16779))
|
||||
- HAProxy ([#16760](https://github.com/community-scripts/ProxmoxVE/pull/16760))
|
||||
|
||||
### 🚀 Updated Scripts
|
||||
|
||||
- #### 🐞 Bug Fixes
|
||||
|
||||
- [Fix]: LimeSurvey - enable Apache mod_rewrite [@jonathan8devs](https://github.com/jonathan8devs) ([#16767](https://github.com/community-scripts/ProxmoxVE/pull/16767))
|
||||
- endurain: migrate legacy FRONTEND_DIR path on update [@MickLesk](https://github.com/MickLesk) ([#16794](https://github.com/community-scripts/ProxmoxVE/pull/16794))
|
||||
|
||||
### 💾 Core
|
||||
|
||||
- #### 🐞 Bug Fixes
|
||||
|
||||
- tools.func: recognize bare XZ-compressed tarballs in fetch_and_deploy* [@MickLesk](https://github.com/MickLesk) ([#16796](https://github.com/community-scripts/ProxmoxVE/pull/16796))
|
||||
- tools.func: fix mongodb version comparison, guard apt purge against removing dependents [@MickLesk](https://github.com/MickLesk) ([#16795](https://github.com/community-scripts/ProxmoxVE/pull/16795))
|
||||
|
||||
### 📂 Github
|
||||
|
||||
- github: teach the PocketBase bot every field [@MickLesk](https://github.com/MickLesk) ([#16781](https://github.com/community-scripts/ProxmoxVE/pull/16781))
|
||||
|
||||
## 2026-08-25
|
||||
|
||||
### 🆕 New Scripts
|
||||
|
||||
- Budget-Board ([#16714](https://github.com/community-scripts/ProxmoxVE/pull/16714))
|
||||
- Maintainerr ([#16716](https://github.com/community-scripts/ProxmoxVE/pull/16716))
|
||||
- pyLoad ([#16717](https://github.com/community-scripts/ProxmoxVE/pull/16717))
|
||||
|
||||
### 🚀 Updated Scripts
|
||||
|
||||
- #### 🐞 Bug Fixes
|
||||
|
||||
- fix(apache-tika): handle upstream's switch from jar to zip distribution [@Munza2020](https://github.com/Munza2020) ([#16726](https://github.com/community-scripts/ProxmoxVE/pull/16726))
|
||||
- Fix Firecrawl install: add ccache dependency for koffi native build [@michelroegl-brunner](https://github.com/michelroegl-brunner) ([#16746](https://github.com/community-scripts/ProxmoxVE/pull/16746))
|
||||
- excalidash: Fix broken Update [@michelroegl-brunner](https://github.com/michelroegl-brunner) ([#16747](https://github.com/community-scripts/ProxmoxVE/pull/16747))
|
||||
|
||||
- #### 💥 Breaking Changes
|
||||
|
||||
- Migrate the (remaining) Top 25 scripts to the new core engine [@MickLesk](https://github.com/MickLesk) ([#16749](https://github.com/community-scripts/ProxmoxVE/pull/16749))
|
||||
|
||||
## 2026-08-24
|
||||
|
||||
### 🆕 New Scripts
|
||||
|
||||
- ArchLinux ([#16715](https://github.com/community-scripts/ProxmoxVE/pull/16715))
|
||||
- AirTrail ([#16713](https://github.com/community-scripts/ProxmoxVE/pull/16713))
|
||||
- RockyLinux ([#16718](https://github.com/community-scripts/ProxmoxVE/pull/16718))
|
||||
|
||||
### 🚀 Updated Scripts
|
||||
|
||||
- #### 🐞 Bug Fixes
|
||||
|
||||
- Add setup_mongodb back in Omada [@lucacome](https://github.com/lucacome) ([#16736](https://github.com/community-scripts/ProxmoxVE/pull/16736))
|
||||
- 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
|
||||
@@ -976,183 +1142,4 @@ Exercise vigilance regarding copycat or coat-tailing sites that seek to exploit
|
||||
- #### 🐞 Bug Fixes
|
||||
|
||||
- Docmost: cleanup folder at update [@MickLesk](https://github.com/MickLesk) ([#16177](https://github.com/community-scripts/ProxmoxVE/pull/16177))
|
||||
- Firecrawl: Add dependency [@tremor021](https://github.com/tremor021) ([#16174](https://github.com/community-scripts/ProxmoxVE/pull/16174))
|
||||
|
||||
## 2026-07-30
|
||||
|
||||
### 🆕 New Scripts
|
||||
|
||||
- Firecrawl ([#16156](https://github.com/community-scripts/ProxmoxVE/pull/16156))
|
||||
- OmniRoute ([#16155](https://github.com/community-scripts/ProxmoxVE/pull/16155))
|
||||
- PegaProx ([#16154](https://github.com/community-scripts/ProxmoxVE/pull/16154))
|
||||
|
||||
### 🚀 Updated Scripts
|
||||
|
||||
- #### 🐞 Bug Fixes
|
||||
|
||||
- Immich: Pin version to 3.1.0 [@vhsdream](https://github.com/vhsdream) ([#16170](https://github.com/community-scripts/ProxmoxVE/pull/16170))
|
||||
- romm: remove stale 1.x alembic migrations on update [@Darkatek7](https://github.com/Darkatek7) ([#16101](https://github.com/community-scripts/ProxmoxVE/pull/16101))
|
||||
|
||||
- #### 🔧 Refactor
|
||||
|
||||
- Medusa: convert the non-free unrar source to deb822 format [@angusmaul](https://github.com/angusmaul) ([#16093](https://github.com/community-scripts/ProxmoxVE/pull/16093))
|
||||
|
||||
### 💾 Core
|
||||
|
||||
- #### ✨ New Features
|
||||
|
||||
- tools.func: support dynamic gitlab URL | add setup_mysql_db function [@MickLesk](https://github.com/MickLesk) ([#16166](https://github.com/community-scripts/ProxmoxVE/pull/16166))
|
||||
- core: add configurable host CA inheritance during bootstrap [@MickLesk](https://github.com/MickLesk) ([#15889](https://github.com/community-scripts/ProxmoxVE/pull/15889))
|
||||
|
||||
## 2026-07-29
|
||||
|
||||
### 🚀 Updated Scripts
|
||||
|
||||
- #### 🐞 Bug Fixes
|
||||
|
||||
- backup virtual printer in bambuddy [@asylumexp](https://github.com/asylumexp) ([#16142](https://github.com/community-scripts/ProxmoxVE/pull/16142))
|
||||
- ImmichFrame: check .NET SDK before update deployment [@aidaskni](https://github.com/aidaskni) ([#16104](https://github.com/community-scripts/ProxmoxVE/pull/16104))
|
||||
|
||||
- #### ✨ New Features
|
||||
|
||||
- Bichon: Migration for V2 Release [@MickLesk](https://github.com/MickLesk) ([#16145](https://github.com/community-scripts/ProxmoxVE/pull/16145))
|
||||
|
||||
### 💾 Core
|
||||
|
||||
- #### ✨ New Features
|
||||
|
||||
- core: Harden remote func bootstrapping with dns issues [@MickLesk](https://github.com/MickLesk) ([#16146](https://github.com/community-scripts/ProxmoxVE/pull/16146))
|
||||
|
||||
## 2026-07-28
|
||||
|
||||
### 🚀 Updated Scripts
|
||||
|
||||
- #### 🐞 Bug Fixes
|
||||
|
||||
- Create search directory in wanderer-install.sh [@Isnubi](https://github.com/Isnubi) ([#16134](https://github.com/community-scripts/ProxmoxVE/pull/16134))
|
||||
- npmplus: Remove duplicate msg_info for container recreation [@MickLesk](https://github.com/MickLesk) ([#16122](https://github.com/community-scripts/ProxmoxVE/pull/16122))
|
||||
- fix Node.js version drift [@asylumexp](https://github.com/asylumexp) ([#16111](https://github.com/community-scripts/ProxmoxVE/pull/16111))
|
||||
- UmlautAdaptarr: use the Debian 13 Microsoft repo with its 2025 signing key [@angusmaul](https://github.com/angusmaul) ([#16077](https://github.com/community-scripts/ProxmoxVE/pull/16077))
|
||||
- fix(bazarr): store data in /var/lib/bazarr instead of inside /opt/bazarr [@angusmaul](https://github.com/angusmaul) ([#16098](https://github.com/community-scripts/ProxmoxVE/pull/16098))
|
||||
- Cloudflare-DDNS: store API token in a 600 env file and build the binary at install time [@angusmaul](https://github.com/angusmaul) ([#16100](https://github.com/community-scripts/ProxmoxVE/pull/16100))
|
||||
|
||||
- #### ✨ New Features
|
||||
|
||||
- tools.func: add nginx site helper and PHP socket resolver [@MickLesk](https://github.com/MickLesk) ([#16118](https://github.com/community-scripts/ProxmoxVE/pull/16118))
|
||||
|
||||
- #### 💥 Breaking Changes
|
||||
|
||||
- Migrate Musicseerr to DroppedNeedle [@vhsdream](https://github.com/vhsdream) ([#15751](https://github.com/community-scripts/ProxmoxVE/pull/15751))
|
||||
|
||||
### 💾 Core
|
||||
|
||||
- #### 🐞 Bug Fixes
|
||||
|
||||
- core: fix read prompt input directly from /dev/tty [@MickLesk](https://github.com/MickLesk) ([#16126](https://github.com/community-scripts/ProxmoxVE/pull/16126))
|
||||
|
||||
### 🧰 Tools
|
||||
|
||||
- actual-budget-prometheus-exporter ([#16109](https://github.com/community-scripts/ProxmoxVE/pull/16109))
|
||||
|
||||
- #### 🐞 Bug Fixes
|
||||
|
||||
- fix: prometheus-paperless-exporter incompatibility with paperless v3 [@CrazyWolf13](https://github.com/CrazyWolf13) ([#16119](https://github.com/community-scripts/ProxmoxVE/pull/16119))
|
||||
|
||||
### 📂 Github
|
||||
|
||||
- fix keep-open for close invalid pr [@asylumexp](https://github.com/asylumexp) ([#16105](https://github.com/community-scripts/ProxmoxVE/pull/16105))
|
||||
- Bump GitHub Actions across workflows [@MickLesk](https://github.com/MickLesk) ([#16091](https://github.com/community-scripts/ProxmoxVE/pull/16091))
|
||||
|
||||
## 2026-07-27
|
||||
|
||||
### 🆕 New Scripts
|
||||
|
||||
- Unpackerr ([#16034](https://github.com/community-scripts/ProxmoxVE/pull/16034))
|
||||
- CookCLI ([#16028](https://github.com/community-scripts/ProxmoxVE/pull/16028))
|
||||
- Discourse ([#16024](https://github.com/community-scripts/ProxmoxVE/pull/16024))
|
||||
- Mastodon ([#16029](https://github.com/community-scripts/ProxmoxVE/pull/16029))
|
||||
- Docspell ([#16033](https://github.com/community-scripts/ProxmoxVE/pull/16033))
|
||||
- Poznote ([#16030](https://github.com/community-scripts/ProxmoxVE/pull/16030))
|
||||
- Shiori ([#16026](https://github.com/community-scripts/ProxmoxVE/pull/16026))
|
||||
- Nezha ([#16025](https://github.com/community-scripts/ProxmoxVE/pull/16025))
|
||||
- PasswordPusher ([#16031](https://github.com/community-scripts/ProxmoxVE/pull/16031))
|
||||
|
||||
### 🚀 Updated Scripts
|
||||
|
||||
- #### 🐞 Bug Fixes
|
||||
|
||||
- Update MeiliSearch command for database upgrade [@Isnubi](https://github.com/Isnubi) ([#16081](https://github.com/community-scripts/ProxmoxVE/pull/16081))
|
||||
- Mylar3 & Medusa: use trixie non-free for unrar, not bookworm [@angusmaul](https://github.com/angusmaul) ([#16072](https://github.com/community-scripts/ProxmoxVE/pull/16072))
|
||||
- Vikunja: pin install/update to v2.3.0 due upstream issues [@MickLesk](https://github.com/MickLesk) ([#16059](https://github.com/community-scripts/ProxmoxVE/pull/16059))
|
||||
|
||||
- #### ✨ New Features
|
||||
|
||||
- OpenThread-BR: Add runtime configuration options [@tomfrenzel](https://github.com/tomfrenzel) ([#16038](https://github.com/community-scripts/ProxmoxVE/pull/16038))
|
||||
|
||||
### 💾 Core
|
||||
|
||||
- #### 🐞 Bug Fixes
|
||||
|
||||
- core: Handle LXC upgrade prompt cancellation [@MickLesk](https://github.com/MickLesk) ([#16058](https://github.com/community-scripts/ProxmoxVE/pull/16058))
|
||||
|
||||
- #### ✨ New Features
|
||||
|
||||
- core: fix OS version fallback when the host catalog lacks the requested version & harden template validation [@MickLesk](https://github.com/MickLesk) ([#16068](https://github.com/community-scripts/ProxmoxVE/pull/16068))
|
||||
|
||||
## 2026-07-26
|
||||
|
||||
### 🆕 New Scripts
|
||||
|
||||
- Satisfactory ([#16023](https://github.com/community-scripts/ProxmoxVE/pull/16023))
|
||||
- OmniTools ([#16032](https://github.com/community-scripts/ProxmoxVE/pull/16032))
|
||||
|
||||
### 🚀 Updated Scripts
|
||||
|
||||
- #### 🐞 Bug Fixes
|
||||
|
||||
- Apache Tika: Remove software-properties-common from Apache Tika install [@andygrunwald](https://github.com/andygrunwald) ([#16054](https://github.com/community-scripts/ProxmoxVE/pull/16054))
|
||||
- Fix inventree missing db engine (upstream issue / postinstall) [@MickLesk](https://github.com/MickLesk) ([#16022](https://github.com/community-scripts/ProxmoxVE/pull/16022))
|
||||
- OPNsense VM: answer console password prompt explicitly, add inter-key delay [@MickLesk](https://github.com/MickLesk) ([#16021](https://github.com/community-scripts/ProxmoxVE/pull/16021))
|
||||
- [endurain] add node update to update script [@johanngrobe](https://github.com/johanngrobe) ([#16014](https://github.com/community-scripts/ProxmoxVE/pull/16014))
|
||||
|
||||
- #### 🔧 Refactor
|
||||
|
||||
- Apache Tika: Switch from Debian Bookworm to Debian Trixie and replace manual install of OpenJDK with setup_java [@andygrunwald](https://github.com/andygrunwald) ([#16036](https://github.com/community-scripts/ProxmoxVE/pull/16036))
|
||||
|
||||
### 💾 Core
|
||||
|
||||
- #### 🔧 Refactor
|
||||
|
||||
- core: improve OS mismatch message [@MickLesk](https://github.com/MickLesk) ([#16035](https://github.com/community-scripts/ProxmoxVE/pull/16035))
|
||||
|
||||
### 🧰 Tools
|
||||
|
||||
- #### 🔧 Refactor
|
||||
|
||||
- Improve command description for disabling pve-enterprise repo [@Marcondiro](https://github.com/Marcondiro) ([#16020](https://github.com/community-scripts/ProxmoxVE/pull/16020))
|
||||
|
||||
## 2026-07-25
|
||||
|
||||
### 🚀 Updated Scripts
|
||||
|
||||
- #### 🐞 Bug Fixes
|
||||
|
||||
- SparkyFitness: substitute SPARKY_FITNESS_FRONTEND_URL in nginx config [@MickLesk](https://github.com/MickLesk) ([#16007](https://github.com/community-scripts/ProxmoxVE/pull/16007))
|
||||
|
||||
- #### ✨ New Features
|
||||
|
||||
- AFFiNE: Bump version to v0.27.3 [@Oscar006](https://github.com/Oscar006) ([#16012](https://github.com/community-scripts/ProxmoxVE/pull/16012))
|
||||
|
||||
## 2026-07-24
|
||||
|
||||
### 🚀 Updated Scripts
|
||||
|
||||
- #### 🐞 Bug Fixes
|
||||
|
||||
- Termix: migrate database to new db/data layout [@MickLesk](https://github.com/MickLesk) ([#15996](https://github.com/community-scripts/ProxmoxVE/pull/15996))
|
||||
- Sync-in: create admin user with admin role instead of default user [@MickLesk](https://github.com/MickLesk) ([#15983](https://github.com/community-scripts/ProxmoxVE/pull/15983))
|
||||
- VM: fix machine type selection being ignored, VM always created as q35 [@MickLesk](https://github.com/MickLesk) ([#15995](https://github.com/community-scripts/ProxmoxVE/pull/15995))
|
||||
|
||||
- #### ✨ New Features
|
||||
|
||||
- Bump all Alpine scripts to 3.24 [@asylumexp](https://github.com/asylumexp) ([#15994](https://github.com/community-scripts/ProxmoxVE/pull/15994))
|
||||
- Firecrawl: Add dependency [@tremor021](https://github.com/tremor021) ([#16174](https://github.com/community-scripts/ProxmoxVE/pull/16174))
|
||||
@@ -1,5 +1,7 @@
|
||||
#!/usr/bin/env bash
|
||||
source <(curl -fsSL https://raw.githubusercontent.com/community-scripts/ProxmoxVE/main/misc/build.func)
|
||||
_CS_DEFAULT_URL="https://raw.githubusercontent.com/community-scripts/ProxmoxVE/main"
|
||||
_cs_boot="${COMMUNITY_SCRIPTS_CORE_DIR:-$(dirname "${BASH_SOURCE[0]}")/../../core}/core/build.func"
|
||||
source "$_cs_boot" 2>/dev/null || source <(curl -fsSL "${COMMUNITY_SCRIPTS_CORE_URL:-https://raw.githubusercontent.com/community-scripts/core/main}/core/build.func")
|
||||
# Copyright (c) 2021-2026 tteck
|
||||
# Author: tteck (tteckster)
|
||||
# License: MIT | https://github.com/community-scripts/ProxmoxVE/raw/main/LICENSE
|
||||
|
||||
70
ct/airtrail.sh
Normal file
70
ct/airtrail.sh
Normal file
@@ -0,0 +1,70 @@
|
||||
#!/usr/bin/env bash
|
||||
_CS_DEFAULT_URL="https://raw.githubusercontent.com/community-scripts/ProxmoxVE/main"
|
||||
_cs_boot="${COMMUNITY_SCRIPTS_CORE_DIR:-$(dirname "${BASH_SOURCE[0]}")/../../core}/core/build.func"
|
||||
source "$_cs_boot" 2>/dev/null || source <(curl -fsSL "${COMMUNITY_SCRIPTS_CORE_URL:-https://raw.githubusercontent.com/community-scripts/core/main}/core/build.func")
|
||||
# Copyright (c) 2021-2026 community-scripts ORG
|
||||
# Author: MickLesk (CanbiZ)
|
||||
# License: MIT | https://github.com/community-scripts/ProxmoxVE/raw/main/LICENSE
|
||||
# Source: https://github.com/johanohly/AirTrail
|
||||
|
||||
APP="AirTrail"
|
||||
var_tags="${var_tags:-flights;tracking}"
|
||||
var_cpu="${var_cpu:-2}"
|
||||
var_ram="${var_ram:-3072}"
|
||||
var_disk="${var_disk:-10}"
|
||||
var_os="${var_os:-debian}"
|
||||
var_version="${var_version:-13}"
|
||||
#var_arm64="${var_arm64:-no}" # unset = ask the user; set yes/no only when verified
|
||||
var_unprivileged="${var_unprivileged:-1}"
|
||||
|
||||
header_info "$APP"
|
||||
variables
|
||||
color
|
||||
catch_errors
|
||||
|
||||
function update_script() {
|
||||
header_info
|
||||
check_container_storage
|
||||
check_container_resources
|
||||
|
||||
if [[ ! -d /opt/airtrail ]]; then
|
||||
msg_error "No ${APP} Installation Found!"
|
||||
exit
|
||||
fi
|
||||
|
||||
if check_for_gh_release "airtrail" "johanohly/AirTrail"; then
|
||||
msg_info "Stopping Service"
|
||||
systemctl stop airtrail
|
||||
msg_ok "Stopped Service"
|
||||
|
||||
create_backup /opt/airtrail/.env /opt/airtrail/uploads
|
||||
|
||||
CLEAN_INSTALL=1 fetch_and_deploy_gh_release "airtrail" "johanohly/AirTrail" "tarball" "latest" "/opt/airtrail"
|
||||
|
||||
restore_backup
|
||||
|
||||
msg_info "Rebuilding AirTrail (Patience)"
|
||||
cd /opt/airtrail
|
||||
$STD bun install --frozen-lockfile
|
||||
export NODE_ENV=production
|
||||
$STD bun run build
|
||||
$STD bun install --frozen-lockfile --production
|
||||
$STD bun run db:migrate-deploy
|
||||
msg_ok "Rebuilt AirTrail"
|
||||
|
||||
msg_info "Starting Service"
|
||||
systemctl start airtrail
|
||||
msg_ok "Started Service"
|
||||
msg_ok "Updated Successfully!"
|
||||
fi
|
||||
exit
|
||||
}
|
||||
|
||||
start
|
||||
build_container
|
||||
description
|
||||
|
||||
msg_ok "Completed Successfully!\n"
|
||||
echo -e "${CREATING}${GN}${APP} setup has been successfully initialized!${CL}"
|
||||
echo -e "${INFO}${YW} Access it using the following URL:${CL}"
|
||||
echo -e "${TAB}${GATEWAY}${BGN}http://${IP}:3000${CL}"
|
||||
44
ct/almalinux.sh
Normal file
44
ct/almalinux.sh
Normal file
@@ -0,0 +1,44 @@
|
||||
#!/usr/bin/env bash
|
||||
_CS_DEFAULT_URL="https://raw.githubusercontent.com/community-scripts/ProxmoxVE/main"
|
||||
_cs_boot="${COMMUNITY_SCRIPTS_CORE_DIR:-$(dirname "${BASH_SOURCE[0]}")/../../core}/core/build.func"
|
||||
source "$_cs_boot" 2>/dev/null || source <(curl -fsSL "${COMMUNITY_SCRIPTS_CORE_URL:-https://raw.githubusercontent.com/community-scripts/core/main}/core/build.func")
|
||||
# Copyright (c) 2021-2026 community-scripts ORG
|
||||
# Author: MickLesk (CanbiZ)
|
||||
# License: MIT | https://github.com/community-scripts/ProxmoxVE/raw/main/LICENSE
|
||||
# Source: https://almalinux.org/
|
||||
|
||||
APP="AlmaLinux"
|
||||
var_tags="${var_tags:-os}"
|
||||
var_cpu="${var_cpu:-1}"
|
||||
var_ram="${var_ram:-512}"
|
||||
var_disk="${var_disk:-4}"
|
||||
var_os="${var_os:-almalinux}"
|
||||
var_version="${var_version:-10}"
|
||||
var_arm64="${var_arm64:-no}"
|
||||
var_unprivileged="${var_unprivileged:-1}"
|
||||
|
||||
header_info "$APP"
|
||||
variables
|
||||
color
|
||||
catch_errors
|
||||
|
||||
function update_script() {
|
||||
header_info
|
||||
check_container_storage
|
||||
check_container_resources
|
||||
if [[ ! -d /var ]]; then
|
||||
msg_error "No ${APP} Installation Found!"
|
||||
exit
|
||||
fi
|
||||
msg_info "Updating AlmaLinux"
|
||||
$STD dnf -y upgrade
|
||||
msg_ok "Updated AlmaLinux"
|
||||
exit
|
||||
}
|
||||
|
||||
start
|
||||
build_container
|
||||
description
|
||||
|
||||
msg_ok "Completed successfully!"
|
||||
echo -e "${CREATING}${GN}${APP} setup has been successfully initialized!${CL}"
|
||||
@@ -35,11 +35,8 @@ function update_script() {
|
||||
msg_ok "Stopped Service"
|
||||
|
||||
msg_info "Updating ${APP} to v${RELEASE}"
|
||||
cd /opt/apache-tika
|
||||
curl -fsSL -o tika-server-standard-${RELEASE}.jar "https://dlcdn.apache.org/tika/${RELEASE}/tika-server-standard-${RELEASE}.jar"
|
||||
mv --force tika-server-standard.jar tika-server-standard-prev-version.jar
|
||||
mv tika-server-standard-${RELEASE}.jar tika-server-standard.jar
|
||||
rm -rf /opt/apache-tika/tika-server-standard-prev-version.jar
|
||||
CLEAN_INSTALL=1 fetch_and_deploy_from_url "https://dlcdn.apache.org/tika/${RELEASE}/tika-server-standard-${RELEASE}.zip" /opt/apache-tika
|
||||
mv "/opt/apache-tika/tika-server-standard-${RELEASE}.jar" /opt/apache-tika/tika-server-standard.jar
|
||||
echo "${RELEASE}" >/opt/${APP}_version.txt
|
||||
msg_ok "Updated ${APP} to v${RELEASE}"
|
||||
|
||||
|
||||
44
ct/archlinux.sh
Normal file
44
ct/archlinux.sh
Normal file
@@ -0,0 +1,44 @@
|
||||
#!/usr/bin/env bash
|
||||
_CS_DEFAULT_URL="https://raw.githubusercontent.com/community-scripts/ProxmoxVE/main"
|
||||
_cs_boot="${COMMUNITY_SCRIPTS_CORE_DIR:-$(dirname "${BASH_SOURCE[0]}")/../../core}/core/build.func"
|
||||
source "$_cs_boot" 2>/dev/null || source <(curl -fsSL "${COMMUNITY_SCRIPTS_CORE_URL:-https://raw.githubusercontent.com/community-scripts/core/main}/core/build.func")
|
||||
# Copyright (c) 2021-2026 community-scripts ORG
|
||||
# Author: MickLesk (CanbiZ)
|
||||
# License: MIT | https://github.com/community-scripts/ProxmoxVE/raw/main/LICENSE
|
||||
# Source: https://archlinux.org/
|
||||
|
||||
APP="Arch Linux"
|
||||
var_tags="${var_tags:-os}"
|
||||
var_cpu="${var_cpu:-1}"
|
||||
var_ram="${var_ram:-512}"
|
||||
var_disk="${var_disk:-4}"
|
||||
var_os="${var_os:-archlinux}"
|
||||
var_version="${var_version:-base}"
|
||||
var_arm64="${var_arm64:-no}"
|
||||
var_unprivileged="${var_unprivileged:-1}"
|
||||
|
||||
header_info "$APP"
|
||||
variables
|
||||
color
|
||||
catch_errors
|
||||
|
||||
function update_script() {
|
||||
header_info
|
||||
check_container_storage
|
||||
check_container_resources
|
||||
if [[ ! -d /var ]]; then
|
||||
msg_error "No ${APP} Installation Found!"
|
||||
exit
|
||||
fi
|
||||
msg_info "Updating Arch Linux LXC"
|
||||
$STD pacman -Syu --noconfirm
|
||||
msg_ok "Updated Arch Linux LXC"
|
||||
exit
|
||||
}
|
||||
|
||||
start
|
||||
build_container
|
||||
description
|
||||
|
||||
msg_ok "Completed successfully!"
|
||||
msg_custom "🚀" "${GN}" "${APP} setup has been successfully initialized!"
|
||||
77
ct/budget-board.sh
Normal file
77
ct/budget-board.sh
Normal file
@@ -0,0 +1,77 @@
|
||||
#!/usr/bin/env bash
|
||||
_CS_DEFAULT_URL="https://raw.githubusercontent.com/community-scripts/ProxmoxVE/main"
|
||||
_cs_boot="${COMMUNITY_SCRIPTS_CORE_DIR:-$(dirname "${BASH_SOURCE[0]}")/../../core}/core/build.func"
|
||||
source "$_cs_boot" 2>/dev/null || source <(curl -fsSL "${COMMUNITY_SCRIPTS_CORE_URL:-https://raw.githubusercontent.com/community-scripts/core/main}/core/build.func")
|
||||
# Copyright (c) 2021-2026 community-scripts ORG
|
||||
# Author: Slaviša Arežina (tremor021)
|
||||
# License: MIT | https://github.com/community-scripts/ProxmoxVE/raw/main/LICENSE
|
||||
# Source: https://github.com/teelur/budget-board
|
||||
|
||||
APP="Budget-Board"
|
||||
var_tags="${var_tags:-finance;budget;money}"
|
||||
var_cpu="${var_cpu:-2}"
|
||||
var_ram="${var_ram:-2048}"
|
||||
var_disk="${var_disk:-8}"
|
||||
var_os="${var_os:-debian}"
|
||||
var_version="${var_version:-13}"
|
||||
#var_arm64="${var_arm64:-no}" # unset = ask the user; set yes/no only when verified
|
||||
var_unprivileged="${var_unprivileged:-1}"
|
||||
|
||||
header_info "$APP"
|
||||
variables
|
||||
color
|
||||
catch_errors
|
||||
|
||||
function update_script() {
|
||||
header_info
|
||||
check_container_storage
|
||||
check_container_resources
|
||||
|
||||
if [[ ! -d /opt/budget-board ]]; then
|
||||
msg_error "No ${APP} Installation Found!"
|
||||
exit
|
||||
fi
|
||||
|
||||
if check_for_gh_release "budget-board" "teelur/budget-board"; then
|
||||
msg_info "Stopping Service"
|
||||
systemctl stop budget-board
|
||||
msg_ok "Stopped Service"
|
||||
|
||||
create_backup /opt/budget-board/budget-board.env
|
||||
|
||||
CLEAN_INSTALL=1 fetch_and_deploy_gh_release "budget-board" "teelur/budget-board" "tarball"
|
||||
|
||||
restore_backup
|
||||
|
||||
msg_info "Rebuilding Backend"
|
||||
cd /opt/budget-board/server
|
||||
$STD dotnet restore "BudgetBoard.WebAPI/BudgetBoard.WebAPI.csproj"
|
||||
export configuration=Release
|
||||
$STD dotnet publish "BudgetBoard.WebAPI/BudgetBoard.WebAPI.csproj" -c $configuration -o /opt/budget-board/publish /p:UseAppHost=false --no-restore
|
||||
msg_ok "Rebuilt Backend"
|
||||
|
||||
msg_info "Rebuilding Frontend"
|
||||
cd /opt/budget-board/client
|
||||
export COREPACK_ENABLE_DOWNLOAD_PROMPT=0
|
||||
$STD yarn install
|
||||
$STD yarn run build
|
||||
cp -r dist/. /var/www/html/
|
||||
msg_ok "Rebuilt Frontend"
|
||||
|
||||
msg_info "Starting Service"
|
||||
systemctl start budget-board
|
||||
nginx_enable_site budget-board.conf
|
||||
msg_ok "Started Service"
|
||||
msg_ok "Updated successfully!"
|
||||
fi
|
||||
exit
|
||||
}
|
||||
|
||||
start
|
||||
build_container
|
||||
description
|
||||
|
||||
msg_ok "Completed Successfully!\n"
|
||||
echo -e "${CREATING}${GN}${APP} setup has been successfully initialized!${CL}"
|
||||
echo -e "${INFO}${YW}Access it using the following URL:${CL}"
|
||||
echo -e "${GATEWAY}${BGN}http://${IP}${CL}"
|
||||
@@ -1,5 +1,7 @@
|
||||
#!/usr/bin/env bash
|
||||
source <(curl -fsSL https://raw.githubusercontent.com/community-scripts/ProxmoxVE/main/misc/build.func)
|
||||
_CS_DEFAULT_URL="https://raw.githubusercontent.com/community-scripts/ProxmoxVE/main"
|
||||
_cs_boot="${COMMUNITY_SCRIPTS_CORE_DIR:-$(dirname "${BASH_SOURCE[0]}")/../../core}/core/build.func"
|
||||
source "$_cs_boot" 2>/dev/null || source <(curl -fsSL "${COMMUNITY_SCRIPTS_CORE_URL:-https://raw.githubusercontent.com/community-scripts/core/main}/core/build.func")
|
||||
# Copyright (c) 2021-2026 community-scripts ORG
|
||||
# Author: mikolaj92
|
||||
# License: MIT | https://github.com/community-scripts/ProxmoxVE/raw/main/LICENSE
|
||||
@@ -35,8 +37,7 @@ function update_script() {
|
||||
systemctl stop calibre-web
|
||||
msg_ok "Stopped Service"
|
||||
|
||||
create_backup /opt/calibre-web/app.db \
|
||||
/opt/calibre-web/data
|
||||
create_backup /opt/calibre-web/data
|
||||
|
||||
CLEAN_INSTALL=1 fetch_and_deploy_gh_release "Calibre-Web" "janeczku/calibre-web" "prebuild" "latest" "/opt/calibre-web" "calibreweb*.tar.gz"
|
||||
setup_uv
|
||||
@@ -48,11 +49,26 @@ function update_script() {
|
||||
$STD uv pip install --python /opt/calibre-web/.venv/bin/python --no-cache-dir .
|
||||
msg_ok "Installed Dependencies"
|
||||
|
||||
sed -i 's|^ExecStart=.*|ExecStart=/opt/calibre-web/.venv/bin/cps|' /etc/systemd/system/calibre-web.service
|
||||
sed -i 's|^ExecStart=.*|ExecStart=/opt/calibre-web/.venv/bin/cps -p /opt/calibre-web/data/app.db|' /etc/systemd/system/calibre-web.service
|
||||
if ! grep -q '^Environment=HOME=' /etc/systemd/system/calibre-web.service; then
|
||||
sed -i '/^ExecStart=/i Environment=HOME=/opt/calibre-web/data' /etc/systemd/system/calibre-web.service
|
||||
fi
|
||||
$STD systemctl daemon-reload
|
||||
|
||||
restore_backup
|
||||
|
||||
mkdir -p /opt/calibre-web-library
|
||||
if [[ -f /opt/calibre-web/data/metadata.db && ! -f /opt/calibre-web-library/metadata.db ]]; then
|
||||
msg_info "Migrating Calibre Library to its own directory"
|
||||
find /opt/calibre-web/data -mindepth 1 -maxdepth 1 ! -name app.db ! -name .calibre-web -exec mv -t /opt/calibre-web-library -- {} +
|
||||
msg_ok "Migrated Calibre Library"
|
||||
fi
|
||||
if [[ ! -f /opt/calibre-web-library/metadata.db ]]; then
|
||||
msg_info "Creating Empty Calibre Library"
|
||||
$STD calibredb list --with-library /opt/calibre-web-library
|
||||
msg_ok "Created Empty Calibre Library"
|
||||
fi
|
||||
|
||||
msg_info "Starting Service"
|
||||
systemctl start calibre-web
|
||||
msg_ok "Started Service"
|
||||
|
||||
44
ct/centos.sh
Normal file
44
ct/centos.sh
Normal file
@@ -0,0 +1,44 @@
|
||||
#!/usr/bin/env bash
|
||||
_CS_DEFAULT_URL="https://raw.githubusercontent.com/community-scripts/ProxmoxVE/main"
|
||||
_cs_boot="${COMMUNITY_SCRIPTS_CORE_DIR:-$(dirname "${BASH_SOURCE[0]}")/../../core}/core/build.func"
|
||||
source "$_cs_boot" 2>/dev/null || source <(curl -fsSL "${COMMUNITY_SCRIPTS_CORE_URL:-https://raw.githubusercontent.com/community-scripts/core/main}/core/build.func")
|
||||
# Copyright (c) 2021-2026 community-scripts ORG
|
||||
# Author: MickLesk (CanbiZ)
|
||||
# License: MIT | https://github.com/community-scripts/ProxmoxVE/raw/main/LICENSE
|
||||
# Source: https://www.centos.org/centos-stream/
|
||||
|
||||
APP="CentOS"
|
||||
var_tags="${var_tags:-os}"
|
||||
var_cpu="${var_cpu:-1}"
|
||||
var_ram="${var_ram:-512}"
|
||||
var_disk="${var_disk:-4}"
|
||||
var_os="${var_os:-centos}"
|
||||
var_version="${var_version:-10}"
|
||||
var_arm64="${var_arm64:-no}"
|
||||
var_unprivileged="${var_unprivileged:-1}"
|
||||
|
||||
header_info "$APP"
|
||||
variables
|
||||
color
|
||||
catch_errors
|
||||
|
||||
function update_script() {
|
||||
header_info
|
||||
check_container_storage
|
||||
check_container_resources
|
||||
if [[ ! -d /var ]]; then
|
||||
msg_error "No ${APP} Installation Found!"
|
||||
exit
|
||||
fi
|
||||
msg_info "Updating CentOS LXC"
|
||||
$STD dnf -y upgrade
|
||||
msg_ok "Updated CentOS LXC"
|
||||
exit
|
||||
}
|
||||
|
||||
start
|
||||
build_container
|
||||
description
|
||||
|
||||
msg_ok "Completed successfully!"
|
||||
echo -e "${CREATING}${GN}${APP} setup has been successfully initialized!${CL}"
|
||||
@@ -1,5 +1,7 @@
|
||||
#!/usr/bin/env bash
|
||||
source <(curl -fsSL https://raw.githubusercontent.com/community-scripts/ProxmoxVE/main/misc/build.func)
|
||||
_CS_DEFAULT_URL="https://raw.githubusercontent.com/community-scripts/ProxmoxVE/main"
|
||||
_cs_boot="${COMMUNITY_SCRIPTS_CORE_DIR:-$(dirname "${BASH_SOURCE[0]}")/../../core}/core/build.func"
|
||||
source "$_cs_boot" 2>/dev/null || source <(curl -fsSL "${COMMUNITY_SCRIPTS_CORE_URL:-https://raw.githubusercontent.com/community-scripts/core/main}/core/build.func")
|
||||
# Copyright (c) 2021-2026 tteck
|
||||
# Author: tteck (tteckster)
|
||||
# License: MIT | https://github.com/community-scripts/ProxmoxVE/raw/main/LICENSE
|
||||
|
||||
@@ -1,5 +1,7 @@
|
||||
#!/usr/bin/env bash
|
||||
source <(curl -fsSL https://raw.githubusercontent.com/community-scripts/ProxmoxVE/main/misc/build.func)
|
||||
_CS_DEFAULT_URL="https://raw.githubusercontent.com/community-scripts/ProxmoxVE/main"
|
||||
_cs_boot="${COMMUNITY_SCRIPTS_CORE_DIR:-$(dirname "${BASH_SOURCE[0]}")/../../core}/core/build.func"
|
||||
source "$_cs_boot" 2>/dev/null || source <(curl -fsSL "${COMMUNITY_SCRIPTS_CORE_URL:-https://raw.githubusercontent.com/community-scripts/core/main}/core/build.func")
|
||||
# Copyright (c) 2021-2026 tteck
|
||||
# Author: tteck (tteckster)
|
||||
# License: MIT | https://github.com/community-scripts/ProxmoxVE/raw/main/LICENSE
|
||||
|
||||
@@ -1,5 +1,7 @@
|
||||
#!/usr/bin/env bash
|
||||
source <(curl -fsSL https://raw.githubusercontent.com/community-scripts/ProxmoxVE/main/misc/build.func)
|
||||
_CS_DEFAULT_URL="https://raw.githubusercontent.com/community-scripts/ProxmoxVE/main"
|
||||
_cs_boot="${COMMUNITY_SCRIPTS_CORE_DIR:-$(dirname "${BASH_SOURCE[0]}")/../../core}/core/build.func"
|
||||
source "$_cs_boot" 2>/dev/null || source <(curl -fsSL "${COMMUNITY_SCRIPTS_CORE_URL:-https://raw.githubusercontent.com/community-scripts/core/main}/core/build.func")
|
||||
# Copyright (c) 2021-2026 community-scripts ORG
|
||||
# Author: jdacode
|
||||
# License: MIT | https://github.com/community-scripts/ProxmoxVE/raw/main/LICENSE
|
||||
|
||||
@@ -1,5 +1,7 @@
|
||||
#!/usr/bin/env bash
|
||||
source <(curl -fsSL https://raw.githubusercontent.com/community-scripts/ProxmoxVE/main/misc/build.func)
|
||||
_CS_DEFAULT_URL="https://raw.githubusercontent.com/community-scripts/ProxmoxVE/main"
|
||||
_cs_boot="${COMMUNITY_SCRIPTS_CORE_DIR:-$(dirname "${BASH_SOURCE[0]}")/../../core}/core/build.func"
|
||||
source "$_cs_boot" 2>/dev/null || source <(curl -fsSL "${COMMUNITY_SCRIPTS_CORE_URL:-https://raw.githubusercontent.com/community-scripts/core/main}/core/build.func")
|
||||
# Copyright (c) 2021-2026 community-scripts ORG
|
||||
# Author: Omar Minaya | MickLesk (CanbiZ)
|
||||
# License: MIT | https://github.com/community-scripts/ProxmoxVE/raw/main/LICENSE
|
||||
|
||||
@@ -1,5 +1,7 @@
|
||||
#!/usr/bin/env bash
|
||||
source <(curl -fsSL https://raw.githubusercontent.com/community-scripts/ProxmoxVE/main/misc/build.func)
|
||||
_CS_DEFAULT_URL="https://raw.githubusercontent.com/community-scripts/ProxmoxVE/main"
|
||||
_cs_boot="${COMMUNITY_SCRIPTS_CORE_DIR:-$(dirname "${BASH_SOURCE[0]}")/../../core}/core/build.func"
|
||||
source "$_cs_boot" 2>/dev/null || source <(curl -fsSL "${COMMUNITY_SCRIPTS_CORE_URL:-https://raw.githubusercontent.com/community-scripts/core/main}/core/build.func")
|
||||
# Copyright (c) 2021-2026 tteck
|
||||
# Author: tteck (tteckster)
|
||||
# License: MIT | https://github.com/community-scripts/ProxmoxVE/raw/main/LICENSE
|
||||
|
||||
54
ct/defguard.sh
Normal file
54
ct/defguard.sh
Normal file
@@ -0,0 +1,54 @@
|
||||
#!/usr/bin/env bash
|
||||
_CS_DEFAULT_URL="https://raw.githubusercontent.com/community-scripts/ProxmoxVE/main"
|
||||
_cs_boot="${COMMUNITY_SCRIPTS_CORE_DIR:-$(dirname "${BASH_SOURCE[0]}")/../../core}/core/build.func"
|
||||
source "$_cs_boot" 2>/dev/null || source <(curl -fsSL "${COMMUNITY_SCRIPTS_CORE_URL:-https://raw.githubusercontent.com/community-scripts/core/main}/core/build.func")
|
||||
# Copyright (c) 2021-2026 community-scripts ORG
|
||||
# Author: MickLesk (CanbiZ)
|
||||
# License: MIT | https://github.com/community-scripts/ProxmoxVE/raw/main/LICENSE
|
||||
# Source: https://github.com/DefGuard/defguard
|
||||
|
||||
APP="Defguard"
|
||||
var_tags="${var_tags:-vpn;wireguard;sso}"
|
||||
var_cpu="${var_cpu:-2}"
|
||||
var_ram="${var_ram:-2048}"
|
||||
var_disk="${var_disk:-8}"
|
||||
var_os="${var_os:-debian}"
|
||||
var_version="${var_version:-13}"
|
||||
var_arm64="${var_arm64:-yes}"
|
||||
var_unprivileged="${var_unprivileged:-1}"
|
||||
|
||||
header_info "$APP"
|
||||
variables
|
||||
color
|
||||
catch_errors
|
||||
|
||||
function update_script() {
|
||||
header_info
|
||||
check_container_storage
|
||||
check_container_resources
|
||||
|
||||
if [[ ! -f /etc/defguard/core.conf ]]; then
|
||||
msg_error "No ${APP} Installation Found!"
|
||||
exit
|
||||
fi
|
||||
|
||||
msg_info "Updating Defguard"
|
||||
$STD apt update
|
||||
$STD apt install -y defguard defguard-proxy
|
||||
msg_ok "Updated Defguard"
|
||||
|
||||
msg_info "Restarting Services"
|
||||
systemctl restart defguard defguard-proxy
|
||||
msg_ok "Restarted Services"
|
||||
msg_ok "Updated successfully!"
|
||||
exit
|
||||
}
|
||||
|
||||
start
|
||||
build_container
|
||||
description
|
||||
|
||||
msg_ok "Completed Successfully!\n"
|
||||
echo -e "${CREATING}${GN}${APP} setup has been successfully initialized!${CL}"
|
||||
echo -e "${INFO}${YW}Access it using the following URL:${CL}"
|
||||
echo -e "${GATEWAY}${BGN}http://${IP}:8000${CL}"
|
||||
46
ct/devuan.sh
Normal file
46
ct/devuan.sh
Normal file
@@ -0,0 +1,46 @@
|
||||
#!/usr/bin/env bash
|
||||
_CS_DEFAULT_URL="https://raw.githubusercontent.com/community-scripts/ProxmoxVE/main"
|
||||
_cs_boot="${COMMUNITY_SCRIPTS_CORE_DIR:-$(dirname "${BASH_SOURCE[0]}")/../../core}/core/build.func"
|
||||
source "$_cs_boot" 2>/dev/null || source <(curl -fsSL "${COMMUNITY_SCRIPTS_CORE_URL:-https://raw.githubusercontent.com/community-scripts/core/main}/core/build.func")
|
||||
|
||||
# Copyright (c) 2021-2026 community-scripts ORG
|
||||
# Author: MickLesk (CanbiZ)
|
||||
# License: MIT | https://github.com/community-scripts/ProxmoxVE/raw/main/LICENSE
|
||||
# Source: https://www.devuan.org/
|
||||
|
||||
APP="Devuan"
|
||||
var_tags="${var_tags:-os}"
|
||||
var_cpu="${var_cpu:-1}"
|
||||
var_ram="${var_ram:-512}"
|
||||
var_disk="${var_disk:-4}"
|
||||
var_os="${var_os:-devuan}"
|
||||
var_version="${var_version:-5.0}"
|
||||
#var_arm64="${var_arm64:-no}" # unset = ask the user; set yes/no only when verified
|
||||
var_unprivileged="${var_unprivileged:-1}"
|
||||
|
||||
header_info "$APP"
|
||||
variables
|
||||
color
|
||||
catch_errors
|
||||
|
||||
function update_script() {
|
||||
header_info
|
||||
check_container_storage
|
||||
check_container_resources
|
||||
if [[ ! -d /var ]]; then
|
||||
msg_error "No ${APP} Installation Found!"
|
||||
exit
|
||||
fi
|
||||
msg_info "Updating Devuan LXC"
|
||||
$STD apt update
|
||||
$STD apt -y upgrade
|
||||
msg_ok "Updated Devuan LXC"
|
||||
exit
|
||||
}
|
||||
|
||||
start
|
||||
build_container
|
||||
description
|
||||
|
||||
msg_ok "Completed successfully!"
|
||||
echo -e "${CREATING}${GN}${APP} setup has been successfully initialized!${CL}"
|
||||
70
ct/directus.sh
Normal file
70
ct/directus.sh
Normal file
@@ -0,0 +1,70 @@
|
||||
#!/usr/bin/env bash
|
||||
_CS_DEFAULT_URL="https://raw.githubusercontent.com/community-scripts/ProxmoxVE/main"
|
||||
_cs_boot="${COMMUNITY_SCRIPTS_CORE_DIR:-$(dirname "${BASH_SOURCE[0]}")/../../core}/core/build.func"
|
||||
source "$_cs_boot" 2>/dev/null || source <(curl -fsSL "${COMMUNITY_SCRIPTS_CORE_URL:-https://raw.githubusercontent.com/community-scripts/core/main}/core/build.func")
|
||||
# Copyright (c) 2021-2026 community-scripts ORG
|
||||
# Author: MickLesk (CanbiZ)
|
||||
# License: MIT | https://github.com/community-scripts/ProxmoxVE/raw/main/LICENSE
|
||||
# Source: https://directus.com/
|
||||
|
||||
APP="Directus"
|
||||
var_tags="${var_tags:-cms;api;database;headless}"
|
||||
var_cpu="${var_cpu:-2}"
|
||||
var_ram="${var_ram:-2048}"
|
||||
var_disk="${var_disk:-8}"
|
||||
var_os="${var_os:-debian}"
|
||||
var_version="${var_version:-13}"
|
||||
var_arm64="${var_arm64:-yes}"
|
||||
var_unprivileged="${var_unprivileged:-1}"
|
||||
|
||||
header_info "$APP"
|
||||
variables
|
||||
color
|
||||
catch_errors
|
||||
|
||||
function update_script() {
|
||||
header_info
|
||||
check_container_storage
|
||||
check_container_resources
|
||||
|
||||
if [[ ! -f /opt/directus/node_modules/.bin/directus ]]; then
|
||||
msg_error "No ${APP} Installation Found!"
|
||||
exit
|
||||
fi
|
||||
|
||||
if check_for_gh_release "directus" "directus/directus"; then
|
||||
msg_info "Stopping Service"
|
||||
systemctl stop directus
|
||||
msg_ok "Stopped Service"
|
||||
|
||||
create_backup /opt/directus/.env \
|
||||
/opt/directus/uploads \
|
||||
/opt/directus/extensions
|
||||
|
||||
ensure_dependencies build-essential
|
||||
|
||||
msg_info "Updating Directus"
|
||||
cd /opt/directus
|
||||
$STD npm install --omit=dev "directus@${CHECK_UPDATE_RELEASE#v}"
|
||||
cat <<EOF >~/.directus
|
||||
${CHECK_UPDATE_RELEASE#v}
|
||||
EOF
|
||||
restore_backup
|
||||
msg_ok "Updated Directus"
|
||||
|
||||
msg_info "Starting Service"
|
||||
systemctl start directus
|
||||
msg_ok "Started Service"
|
||||
msg_ok "Updated successfully!"
|
||||
fi
|
||||
exit
|
||||
}
|
||||
|
||||
start
|
||||
build_container
|
||||
description
|
||||
|
||||
msg_ok "Completed Successfully!\n"
|
||||
echo -e "${CREATING}${GN}${APP} setup has been successfully initialized!${CL}"
|
||||
echo -e "${INFO}${YW}Access it using the following URL:${CL}"
|
||||
echo -e "${GATEWAY}${BGN}http://${IP}:8055${CL}"
|
||||
@@ -1,5 +1,7 @@
|
||||
#!/usr/bin/env bash
|
||||
source <(curl -fsSL https://raw.githubusercontent.com/community-scripts/ProxmoxVE/main/misc/build.func)
|
||||
_CS_DEFAULT_URL="https://raw.githubusercontent.com/community-scripts/ProxmoxVE/main"
|
||||
_cs_boot="${COMMUNITY_SCRIPTS_CORE_DIR:-$(dirname "${BASH_SOURCE[0]}")/../../core}/core/build.func"
|
||||
source "$_cs_boot" 2>/dev/null || source <(curl -fsSL "${COMMUNITY_SCRIPTS_CORE_URL:-https://raw.githubusercontent.com/community-scripts/core/main}/core/build.func")
|
||||
# Copyright (c) 2021-2026 community-scripts ORG
|
||||
# Author: ekke85 | MickLesk
|
||||
# License: MIT | https://github.com/community-scripts/ProxmoxVE/raw/main/LICENSE
|
||||
|
||||
@@ -1,5 +1,7 @@
|
||||
#!/usr/bin/env bash
|
||||
source <(curl -fsSL https://raw.githubusercontent.com/community-scripts/ProxmoxVE/main/misc/build.func)
|
||||
_CS_DEFAULT_URL="https://raw.githubusercontent.com/community-scripts/ProxmoxVE/main"
|
||||
_cs_boot="${COMMUNITY_SCRIPTS_CORE_DIR:-$(dirname "${BASH_SOURCE[0]}")/../../core}/core/build.func"
|
||||
source "$_cs_boot" 2>/dev/null || source <(curl -fsSL "${COMMUNITY_SCRIPTS_CORE_URL:-https://raw.githubusercontent.com/community-scripts/core/main}/core/build.func")
|
||||
# Copyright (c) 2021-2026 community-scripts ORG
|
||||
# Author: Slaviša Arežina (tremor021)
|
||||
# License: MIT | https://github.com/community-scripts/ProxmoxVE/raw/main/LICENSE
|
||||
|
||||
@@ -1,5 +1,7 @@
|
||||
#!/usr/bin/env bash
|
||||
source <(curl -fsSL https://raw.githubusercontent.com/community-scripts/ProxmoxVE/main/misc/build.func)
|
||||
_CS_DEFAULT_URL="https://raw.githubusercontent.com/community-scripts/ProxmoxVE/main"
|
||||
_cs_boot="${COMMUNITY_SCRIPTS_CORE_DIR:-$(dirname "${BASH_SOURCE[0]}")/../../core}/core/build.func"
|
||||
source "$_cs_boot" 2>/dev/null || source <(curl -fsSL "${COMMUNITY_SCRIPTS_CORE_URL:-https://raw.githubusercontent.com/community-scripts/core/main}/core/build.func")
|
||||
# Copyright (c) 2021-2026 community-scripts ORG
|
||||
# Author: michelroegl-brunner | Co-Author: vhsdream
|
||||
# License: MIT | https://github.com/community-scripts/ProxmoxVE/raw/main/LICENSE
|
||||
@@ -91,7 +93,7 @@ WorkingDirectory=/opt/droppedneedle/backend
|
||||
Environment=ROOT_APP_DIR=/opt/droppedneedle/backend
|
||||
Environment=PORT=8688
|
||||
# Environment=SLSKD_DOWNLOADS_PATH=<path-to-slskd-downloads>
|
||||
ExecStart=/opt/droppedneedle/venv/bin/uvicorn main:app --host 0.0.0.0 --port 8688 --loop uvloop --http httptools --workers 1
|
||||
ExecStart=/opt/droppedneedle/venv/bin/python -m maintenance.automatic_upgrade --start-target
|
||||
Restart=on-failure
|
||||
RestartSec=5
|
||||
|
||||
@@ -100,8 +102,11 @@ WantedBy=multi-user.target
|
||||
EOF
|
||||
rm -f /etc/systemd/system/musicseerr.service
|
||||
msg_ok "Replaced systemd Service"
|
||||
elif ! grep -q 'SLSKD' /etc/systemd/system/droppedneedle.service; then
|
||||
sed -i '\|=8688$|a# Environment=SLSKD_DOWNLOADS_PATH=<path-to-slskd-downloads>' /etc/systemd/system/droppedneedle.service
|
||||
else
|
||||
if ! grep -q 'SLSKD' /etc/systemd/system/droppedneedle.service; then
|
||||
sed -i '\|=8688$|a# Environment=SLSKD_DOWNLOADS_PATH=<path-to-slskd-downloads>' /etc/systemd/system/droppedneedle.service
|
||||
fi
|
||||
sed -i 's|^ExecStart=.*|ExecStart=/opt/droppedneedle/venv/bin/python -m maintenance.automatic_upgrade --start-target|' /etc/systemd/system/droppedneedle.service
|
||||
fi
|
||||
|
||||
systemctl daemon-reload
|
||||
|
||||
@@ -1,5 +1,7 @@
|
||||
#!/usr/bin/env bash
|
||||
source <(curl -fsSL https://raw.githubusercontent.com/community-scripts/ProxmoxVE/main/misc/build.func)
|
||||
_CS_DEFAULT_URL="https://raw.githubusercontent.com/community-scripts/ProxmoxVE/main"
|
||||
_cs_boot="${COMMUNITY_SCRIPTS_CORE_DIR:-$(dirname "${BASH_SOURCE[0]}")/../../core}/core/build.func"
|
||||
source "$_cs_boot" 2>/dev/null || source <(curl -fsSL "${COMMUNITY_SCRIPTS_CORE_URL:-https://raw.githubusercontent.com/community-scripts/core/main}/core/build.func")
|
||||
# Copyright (c) 2021-2026 tteck
|
||||
# Author: tteck (tteckster)
|
||||
# License: MIT | https://github.com/community-scripts/ProxmoxVE/raw/main/LICENSE
|
||||
|
||||
@@ -35,29 +35,29 @@ function update_script() {
|
||||
msg_ok "Stopped Service"
|
||||
|
||||
NODE_VERSION="24" setup_nodejs
|
||||
|
||||
create_backup /opt/endurain/.env /opt/endurain/frontend/dist/env.js
|
||||
CLEAN_INSTALL=1 fetch_and_deploy_codeberg_release "endurain" "endurain-project/endurain" "tarball" "latest" "/opt/endurain"
|
||||
|
||||
msg_info "Preparing Update"
|
||||
msg_info "Updating Endurain Frontend"
|
||||
cd /opt/endurain
|
||||
rm -rf /opt/endurain/{docs,example.env,screenshot_01.png} /opt/endurain/docker* /opt/endurain/*.yml
|
||||
msg_ok "Prepared Update"
|
||||
|
||||
msg_info "Updating Frontend"
|
||||
cd /opt/endurain/frontend
|
||||
$STD npm ci
|
||||
$STD npm run build
|
||||
msg_ok "Updated Frontend"
|
||||
msg_ok "Updated Endurain Frontend"
|
||||
|
||||
restore_backup
|
||||
|
||||
msg_info "Updating Backend"
|
||||
if grep -qxF 'FRONTEND_DIR="/opt/endurain/frontend/app/dist"' /opt/endurain/.env; then
|
||||
sed -i 's|^FRONTEND_DIR="/opt/endurain/frontend/app/dist"$|FRONTEND_DIR="/opt/endurain/frontend/dist"|' /opt/endurain/.env
|
||||
fi
|
||||
|
||||
msg_info "Updating Endurain Backend"
|
||||
cd /opt/endurain/backend
|
||||
UV_VERSION=$(grep -Po 'required-version\s*=\s*"\K[^"]+' pyproject.toml 2>/dev/null || echo "0.11.18")
|
||||
UV_VERSION="$UV_VERSION" setup_uv
|
||||
$STD uv sync --frozen --no-dev
|
||||
msg_ok "Backend Updated"
|
||||
msg_ok "Endurain Backend Updated"
|
||||
|
||||
msg_info "Starting Service"
|
||||
systemctl start endurain
|
||||
|
||||
@@ -1,5 +1,7 @@
|
||||
#!/usr/bin/env bash
|
||||
source <(curl -fsSL https://raw.githubusercontent.com/community-scripts/ProxmoxVE/main/misc/build.func)
|
||||
_CS_DEFAULT_URL="https://raw.githubusercontent.com/community-scripts/ProxmoxVE/main"
|
||||
_cs_boot="${COMMUNITY_SCRIPTS_CORE_DIR:-$(dirname "${BASH_SOURCE[0]}")/../../core}/core/build.func"
|
||||
source "$_cs_boot" 2>/dev/null || source <(curl -fsSL "${COMMUNITY_SCRIPTS_CORE_URL:-https://raw.githubusercontent.com/community-scripts/core/main}/core/build.func")
|
||||
# Copyright (c) 2021-2026 tteck
|
||||
# Author: MickLesk (Canbiz)
|
||||
# License: MIT | https://github.com/community-scripts/ProxmoxVE/raw/main/LICENSE
|
||||
|
||||
@@ -42,16 +42,17 @@ function update_script() {
|
||||
msg_info "Configuring Database Provider (${DATABASE_PROVIDER:-sqlite})"
|
||||
cd /opt/excalidash/backend
|
||||
sed -i '/datasource db {/,/}/ s/provider = env("[^"]*")/provider = "'"${DATABASE_PROVIDER:-sqlite}"'"/' prisma/schema.prisma
|
||||
sed -i '/datasource db {/,/}/ s/provider = "[^"]*"/provider = "'"${DATABASE_PROVIDER:-sqlite}"'"/' prisma/schema.prisma
|
||||
mv prisma/migrations/"${DATABASE_PROVIDER:-sqlite}"/* prisma/migrations/
|
||||
rm -rf prisma/migrations/postgresql prisma/migrations/sqlite
|
||||
msg_ok "Configured Database Provider"
|
||||
|
||||
msg_info "Rebuilding Application"
|
||||
$STD npm ci
|
||||
$STD npm ci --include=dev
|
||||
$STD npx prisma generate
|
||||
$STD npx tsc
|
||||
cd /opt/excalidash/frontend
|
||||
$STD npm ci
|
||||
$STD npm ci --include=dev
|
||||
$STD npm run build
|
||||
cp -r /opt/excalidash/frontend/dist/. /var/www/excalidash/
|
||||
msg_ok "Rebuilt Application"
|
||||
|
||||
44
ct/fedora.sh
Normal file
44
ct/fedora.sh
Normal file
@@ -0,0 +1,44 @@
|
||||
#!/usr/bin/env bash
|
||||
_CS_DEFAULT_URL="https://raw.githubusercontent.com/community-scripts/ProxmoxVE/main"
|
||||
_cs_boot="${COMMUNITY_SCRIPTS_CORE_DIR:-$(dirname "${BASH_SOURCE[0]}")/../../core}/core/build.func"
|
||||
source "$_cs_boot" 2>/dev/null || source <(curl -fsSL "${COMMUNITY_SCRIPTS_CORE_URL:-https://raw.githubusercontent.com/community-scripts/core/main}/core/build.func")
|
||||
# Copyright (c) 2021-2026 community-scripts ORG
|
||||
# Author: MickLesk (CanbiZ)
|
||||
# License: MIT | https://github.com/community-scripts/ProxmoxVE/raw/main/LICENSE
|
||||
# Source: https://fedoraproject.org/
|
||||
|
||||
APP="Fedora"
|
||||
var_tags="${var_tags:-os}"
|
||||
var_cpu="${var_cpu:-1}"
|
||||
var_ram="${var_ram:-512}"
|
||||
var_disk="${var_disk:-4}"
|
||||
var_os="${var_os:-fedora}"
|
||||
var_version="${var_version:-43}"
|
||||
var_arm64="${var_arm64:-no}"
|
||||
var_unprivileged="${var_unprivileged:-1}"
|
||||
|
||||
header_info "$APP"
|
||||
variables
|
||||
color
|
||||
catch_errors
|
||||
|
||||
function update_script() {
|
||||
header_info
|
||||
check_container_storage
|
||||
check_container_resources
|
||||
if [[ ! -d /var ]]; then
|
||||
msg_error "No ${APP} Installation Found!"
|
||||
exit
|
||||
fi
|
||||
msg_info "Updating Fedora LXC"
|
||||
$STD dnf -y upgrade
|
||||
msg_ok "Updated Fedora LXC"
|
||||
exit
|
||||
}
|
||||
|
||||
start
|
||||
build_container
|
||||
description
|
||||
|
||||
msg_ok "Completed successfully!"
|
||||
echo -e "${CREATING}${GN}${APP} setup has been successfully initialized!${CL}"
|
||||
@@ -1,5 +1,7 @@
|
||||
#!/usr/bin/env bash
|
||||
source <(curl -fsSL https://raw.githubusercontent.com/community-scripts/ProxmoxVE/main/misc/build.func)
|
||||
_CS_DEFAULT_URL="https://raw.githubusercontent.com/community-scripts/ProxmoxVE/main"
|
||||
_cs_boot="${COMMUNITY_SCRIPTS_CORE_DIR:-$(dirname "${BASH_SOURCE[0]}")/../../core}/core/build.func"
|
||||
source "$_cs_boot" 2>/dev/null || source <(curl -fsSL "${COMMUNITY_SCRIPTS_CORE_URL:-https://raw.githubusercontent.com/community-scripts/core/main}/core/build.func")
|
||||
# Copyright (c) 2021-2026 community-scripts ORG
|
||||
# Author: kkroboth
|
||||
# License: MIT | https://github.com/community-scripts/ProxmoxVE/raw/main/LICENSE
|
||||
@@ -101,7 +103,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*'
|
||||
|
||||
@@ -30,7 +30,7 @@ function update_script() {
|
||||
exit
|
||||
fi
|
||||
|
||||
ensure_dependencies build-essential
|
||||
ensure_dependencies build-essential ccache
|
||||
|
||||
if check_for_gh_release "firecrawl" "firecrawl/firecrawl"; then
|
||||
msg_info "Stopping Services"
|
||||
|
||||
@@ -1,5 +1,7 @@
|
||||
#!/usr/bin/env bash
|
||||
source <(curl -fsSL https://raw.githubusercontent.com/community-scripts/ProxmoxVE/main/misc/build.func)
|
||||
_CS_DEFAULT_URL="https://raw.githubusercontent.com/community-scripts/ProxmoxVE/main"
|
||||
_cs_boot="${COMMUNITY_SCRIPTS_CORE_DIR:-$(dirname "${BASH_SOURCE[0]}")/../../core}/core/build.func"
|
||||
source "$_cs_boot" 2>/dev/null || source <(curl -fsSL "${COMMUNITY_SCRIPTS_CORE_URL:-https://raw.githubusercontent.com/community-scripts/core/main}/core/build.func")
|
||||
|
||||
# Copyright (c) 2021-2026 community-scripts ORG
|
||||
# Author: Slaviša Arežina (tremor021)
|
||||
@@ -57,11 +59,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,5 +1,7 @@
|
||||
#!/usr/bin/env bash
|
||||
source <(curl -fsSL https://git.community-scripts.org/community-scripts/ProxmoxVE/raw/branch/main/misc/build.func)
|
||||
_CS_DEFAULT_URL="https://raw.githubusercontent.com/community-scripts/ProxmoxVE/main"
|
||||
_cs_boot="${COMMUNITY_SCRIPTS_CORE_DIR:-$(dirname "${BASH_SOURCE[0]}")/../../core}/core/build.func"
|
||||
source "$_cs_boot" 2>/dev/null || source <(curl -fsSL "${COMMUNITY_SCRIPTS_CORE_URL:-https://raw.githubusercontent.com/community-scripts/core/main}/core/build.func")
|
||||
# Copyright (c) 2021-2026 community-scripts ORG
|
||||
# Authors: MickLesk (CanbiZ) | Co-Author: remz1337
|
||||
# License: MIT | https://github.com/community-scripts/ProxmoxVE/raw/main/LICENSE
|
||||
|
||||
46
ct/gentoo.sh
Normal file
46
ct/gentoo.sh
Normal file
@@ -0,0 +1,46 @@
|
||||
#!/usr/bin/env bash
|
||||
_CS_DEFAULT_URL="https://raw.githubusercontent.com/community-scripts/ProxmoxVE/main"
|
||||
_cs_boot="${COMMUNITY_SCRIPTS_CORE_DIR:-$(dirname "${BASH_SOURCE[0]}")/../../core}/core/build.func"
|
||||
source "$_cs_boot" 2>/dev/null || source <(curl -fsSL "${COMMUNITY_SCRIPTS_CORE_URL:-https://raw.githubusercontent.com/community-scripts/core/main}/core/build.func")
|
||||
|
||||
# Copyright (c) 2021-2026 community-scripts ORG
|
||||
# Author: MickLesk (CanbiZ)
|
||||
# License: MIT | https://github.com/community-scripts/ProxmoxVE/raw/main/LICENSE
|
||||
# Source: https://www.gentoo.org/
|
||||
|
||||
APP="Gentoo"
|
||||
var_tags="${var_tags:-os}"
|
||||
var_cpu="${var_cpu:-2}"
|
||||
var_ram="${var_ram:-2048}"
|
||||
var_disk="${var_disk:-10}"
|
||||
var_os="${var_os:-gentoo}"
|
||||
var_version="${var_version:-current}"
|
||||
#var_arm64="${var_arm64:-no}" # unset = ask the user; set yes/no only when verified
|
||||
var_unprivileged="${var_unprivileged:-1}"
|
||||
|
||||
header_info "$APP"
|
||||
variables
|
||||
color
|
||||
catch_errors
|
||||
|
||||
function update_script() {
|
||||
header_info
|
||||
check_container_storage
|
||||
check_container_resources
|
||||
if [[ ! -d /var ]]; then
|
||||
msg_error "No ${APP} Installation Found!"
|
||||
exit
|
||||
fi
|
||||
msg_info "Updating Gentoo LXC"
|
||||
$STD emerge --sync
|
||||
$STD emerge --quiet --update --deep @world
|
||||
msg_ok "Updated Gentoo LXC"
|
||||
exit
|
||||
}
|
||||
|
||||
start
|
||||
build_container
|
||||
description
|
||||
|
||||
msg_ok "Completed successfully!"
|
||||
echo -e "${CREATING}${GN}${APP} setup has been successfully initialized!${CL}"
|
||||
@@ -1,5 +1,7 @@
|
||||
#!/usr/bin/env bash
|
||||
source <(curl -fsSL https://raw.githubusercontent.com/community-scripts/ProxmoxVE/main/misc/build.func)
|
||||
_CS_DEFAULT_URL="https://raw.githubusercontent.com/community-scripts/ProxmoxVE/main"
|
||||
_cs_boot="${COMMUNITY_SCRIPTS_CORE_DIR:-$(dirname "${BASH_SOURCE[0]}")/../../core}/core/build.func"
|
||||
source "$_cs_boot" 2>/dev/null || source <(curl -fsSL "${COMMUNITY_SCRIPTS_CORE_URL:-https://raw.githubusercontent.com/community-scripts/core/main}/core/build.func")
|
||||
# Copyright (c) 2021-2026 tteck
|
||||
# Author: tteck (tteckster)
|
||||
# License: MIT | https://github.com/community-scripts/ProxmoxVE/raw/main/LICENSE
|
||||
|
||||
62
ct/haproxy.sh
Normal file
62
ct/haproxy.sh
Normal file
@@ -0,0 +1,62 @@
|
||||
#!/usr/bin/env bash
|
||||
_CS_DEFAULT_URL="https://raw.githubusercontent.com/community-scripts/ProxmoxVE/main"
|
||||
_cs_boot="${COMMUNITY_SCRIPTS_CORE_DIR:-$(dirname "${BASH_SOURCE[0]}")/../../core}/core/build.func"
|
||||
source "$_cs_boot" 2>/dev/null || source <(curl -fsSL "${COMMUNITY_SCRIPTS_CORE_URL:-https://raw.githubusercontent.com/community-scripts/core/main}/core/build.func")
|
||||
# Copyright (c) 2021-2026 community-scripts ORG
|
||||
# Author: MickLesk (CanbiZ)
|
||||
# License: MIT | https://github.com/community-scripts/ProxmoxVE/raw/main/LICENSE
|
||||
# Source: https://www.haproxy.org/
|
||||
|
||||
APP="HAProxy"
|
||||
var_tags="${var_tags:-network;proxy}"
|
||||
var_cpu="${var_cpu:-1}"
|
||||
var_ram="${var_ram:-512}"
|
||||
var_disk="${var_disk:-4}"
|
||||
var_os="${var_os:-debian}"
|
||||
var_version="${var_version:-13}"
|
||||
#var_arm64="${var_arm64:-no}" # unset = ask the user; set yes/no only when verified
|
||||
var_unprivileged="${var_unprivileged:-1}"
|
||||
|
||||
header_info "$APP"
|
||||
variables
|
||||
color
|
||||
catch_errors
|
||||
|
||||
function update_script() {
|
||||
header_info
|
||||
check_container_storage
|
||||
check_container_resources
|
||||
|
||||
if [[ ! -f /etc/haproxy/haproxy.cfg ]]; then
|
||||
msg_error "No ${APP} Installation Found!"
|
||||
exit
|
||||
fi
|
||||
|
||||
msg_info "Updating ${APP}"
|
||||
$STD apt update
|
||||
$STD apt install -y haproxy
|
||||
msg_ok "Updated ${APP}"
|
||||
|
||||
msg_info "Validating Configuration"
|
||||
if ! $STD haproxy -c -f /etc/haproxy/haproxy.cfg; then
|
||||
msg_error "Configuration is invalid - service not restarted"
|
||||
exit
|
||||
fi
|
||||
msg_ok "Validated Configuration"
|
||||
|
||||
msg_info "Restarting Service"
|
||||
systemctl restart haproxy
|
||||
msg_ok "Restarted Service"
|
||||
msg_ok "Updated successfully!"
|
||||
exit
|
||||
}
|
||||
|
||||
start
|
||||
build_container
|
||||
description
|
||||
|
||||
msg_ok "Completed Successfully!\n"
|
||||
echo -e "${CREATING}${GN}${APP} setup has been successfully initialized!${CL}"
|
||||
echo -e "${INFO}${YW}Statistics page:${CL}"
|
||||
echo -e "${GATEWAY}${BGN}http://${IP}:8404${CL}"
|
||||
echo -e "${INFO}${YW}The generated stats password is in /etc/haproxy/haproxy.cfg${CL}"
|
||||
6
ct/headers/airtrail
Normal file
6
ct/headers/airtrail
Normal file
@@ -0,0 +1,6 @@
|
||||
___ _ ______ _ __
|
||||
/ | (_)___/_ __/________ _(_) /
|
||||
/ /| | / / ___// / / ___/ __ `/ / /
|
||||
/ ___ |/ / / / / / / / /_/ / / /
|
||||
/_/ |_/_/_/ /_/ /_/ \__,_/_/_/
|
||||
|
||||
6
ct/headers/almalinux
Normal file
6
ct/headers/almalinux
Normal file
@@ -0,0 +1,6 @@
|
||||
___ __ __ _
|
||||
/ | / /___ ___ ____ _/ / (_)___ __ ___ __
|
||||
/ /| | / / __ `__ \/ __ `/ / / / __ \/ / / / |/_/
|
||||
/ ___ |/ / / / / / / /_/ / /___/ / / / / /_/ /> <
|
||||
/_/ |_/_/_/ /_/ /_/\__,_/_____/_/_/ /_/\__,_/_/|_|
|
||||
|
||||
6
ct/headers/archlinux
Normal file
6
ct/headers/archlinux
Normal file
@@ -0,0 +1,6 @@
|
||||
___ __ __ _
|
||||
/ | __________/ /_ / / (_)___ __ ___ __
|
||||
/ /| | / ___/ ___/ __ \ / / / / __ \/ / / / |/_/
|
||||
/ ___ |/ / / /__/ / / / / /___/ / / / / /_/ /> <
|
||||
/_/ |_/_/ \___/_/ /_/ /_____/_/_/ /_/\__,_/_/|_|
|
||||
|
||||
6
ct/headers/budget-board
Normal file
6
ct/headers/budget-board
Normal file
@@ -0,0 +1,6 @@
|
||||
____ __ __ ____ __
|
||||
/ __ )__ ______/ /___ ____ / /_ / __ )____ ____ __________/ /
|
||||
/ __ / / / / __ / __ `/ _ \/ __/_____/ __ / __ \/ __ `/ ___/ __ /
|
||||
/ /_/ / /_/ / /_/ / /_/ / __/ /_/_____/ /_/ / /_/ / /_/ / / / /_/ /
|
||||
/_____/\__,_/\__,_/\__, /\___/\__/ /_____/\____/\__,_/_/ \__,_/
|
||||
/____/
|
||||
6
ct/headers/centos
Normal file
6
ct/headers/centos
Normal file
@@ -0,0 +1,6 @@
|
||||
______ __ ____ _____
|
||||
/ ____/__ ____ / /_/ __ \/ ___/
|
||||
/ / / _ \/ __ \/ __/ / / /\__ \
|
||||
/ /___/ __/ / / / /_/ /_/ /___/ /
|
||||
\____/\___/_/ /_/\__/\____//____/
|
||||
|
||||
6
ct/headers/defguard
Normal file
6
ct/headers/defguard
Normal file
@@ -0,0 +1,6 @@
|
||||
____ ____ __
|
||||
/ __ \___ / __/___ ___ ______ __________/ /
|
||||
/ / / / _ \/ /_/ __ `/ / / / __ `/ ___/ __ /
|
||||
/ /_/ / __/ __/ /_/ / /_/ / /_/ / / / /_/ /
|
||||
/_____/\___/_/ \__, /\__,_/\__,_/_/ \__,_/
|
||||
/____/
|
||||
6
ct/headers/devuan
Normal file
6
ct/headers/devuan
Normal file
@@ -0,0 +1,6 @@
|
||||
____
|
||||
/ __ \___ _ ____ ______ _____
|
||||
/ / / / _ \ | / / / / / __ `/ __ \
|
||||
/ /_/ / __/ |/ / /_/ / /_/ / / / /
|
||||
/_____/\___/|___/\__,_/\__,_/_/ /_/
|
||||
|
||||
6
ct/headers/directus
Normal file
6
ct/headers/directus
Normal file
@@ -0,0 +1,6 @@
|
||||
____ _ __
|
||||
/ __ \(_)_______ _____/ /___ _______
|
||||
/ / / / / ___/ _ \/ ___/ __/ / / / ___/
|
||||
/ /_/ / / / / __/ /__/ /_/ /_/ (__ )
|
||||
/_____/_/_/ \___/\___/\__/\__,_/____/
|
||||
|
||||
6
ct/headers/fedora
Normal file
6
ct/headers/fedora
Normal file
@@ -0,0 +1,6 @@
|
||||
______ __
|
||||
/ ____/__ ____/ /___ _________ _
|
||||
/ /_ / _ \/ __ / __ \/ ___/ __ `/
|
||||
/ __/ / __/ /_/ / /_/ / / / /_/ /
|
||||
/_/ \___/\__,_/\____/_/ \__,_/
|
||||
|
||||
6
ct/headers/gentoo
Normal file
6
ct/headers/gentoo
Normal file
@@ -0,0 +1,6 @@
|
||||
______ __
|
||||
/ ____/__ ____ / /_____ ____
|
||||
/ / __/ _ \/ __ \/ __/ __ \/ __ \
|
||||
/ /_/ / __/ / / / /_/ /_/ / /_/ /
|
||||
\____/\___/_/ /_/\__/\____/\____/
|
||||
|
||||
6
ct/headers/haproxy
Normal file
6
ct/headers/haproxy
Normal file
@@ -0,0 +1,6 @@
|
||||
__ _____ ____
|
||||
/ / / / | / __ \_________ _ ____ __
|
||||
/ /_/ / /| | / /_/ / ___/ __ \| |/_/ / / /
|
||||
/ __ / ___ |/ ____/ / / /_/ /> </ /_/ /
|
||||
/_/ /_/_/ |_/_/ /_/ \____/_/|_|\__, /
|
||||
/____/
|
||||
6
ct/headers/maintainerr
Normal file
6
ct/headers/maintainerr
Normal file
@@ -0,0 +1,6 @@
|
||||
__ ___ _ __ _
|
||||
/ |/ /___ _(_)___ / /_____ _(_)___ ___ __________
|
||||
/ /|_/ / __ `/ / __ \/ __/ __ `/ / __ \/ _ \/ ___/ ___/
|
||||
/ / / / /_/ / / / / / /_/ /_/ / / / / / __/ / / /
|
||||
/_/ /_/\__,_/_/_/ /_/\__/\__,_/_/_/ /_/\___/_/ /_/
|
||||
|
||||
6
ct/headers/openbao
Normal file
6
ct/headers/openbao
Normal file
@@ -0,0 +1,6 @@
|
||||
____ ____
|
||||
/ __ \____ ___ ____ / __ )____ _____
|
||||
/ / / / __ \/ _ \/ __ \/ __ / __ `/ __ \
|
||||
/ /_/ / /_/ / __/ / / / /_/ / /_/ / /_/ /
|
||||
\____/ .___/\___/_/ /_/_____/\__,_/\____/
|
||||
/_/
|
||||
6
ct/headers/openeuler
Normal file
6
ct/headers/openeuler
Normal file
@@ -0,0 +1,6 @@
|
||||
______ __
|
||||
____ ____ ___ ____ / ____/_ __/ /__ _____
|
||||
/ __ \/ __ \/ _ \/ __ \/ __/ / / / / / _ \/ ___/
|
||||
/ /_/ / /_/ / __/ / / / /___/ /_/ / / __/ /
|
||||
\____/ .___/\___/_/ /_/_____/\__,_/_/\___/_/
|
||||
/_/
|
||||
6
ct/headers/opensuse
Normal file
6
ct/headers/opensuse
Normal file
@@ -0,0 +1,6 @@
|
||||
_____ __ _______ ______
|
||||
____ ____ ___ ____ / ___// / / / ___// ____/
|
||||
/ __ \/ __ \/ _ \/ __ \\__ \/ / / /\__ \/ __/
|
||||
/ /_/ / /_/ / __/ / / /__/ / /_/ /___/ / /___
|
||||
\____/ .___/\___/_/ /_/____/\____//____/_____/
|
||||
/_/
|
||||
6
ct/headers/pyload
Normal file
6
ct/headers/pyload
Normal file
@@ -0,0 +1,6 @@
|
||||
__ __
|
||||
____ __ __/ / ____ ____ _____/ /
|
||||
/ __ \/ / / / / / __ \/ __ `/ __ /
|
||||
/ /_/ / /_/ / /___/ /_/ / /_/ / /_/ /
|
||||
/ .___/\__, /_____/\____/\__,_/\__,_/
|
||||
/_/ /____/
|
||||
6
ct/headers/rockylinux
Normal file
6
ct/headers/rockylinux
Normal file
@@ -0,0 +1,6 @@
|
||||
____ __ __ _
|
||||
/ __ \____ _____/ /____ __ / / (_)___ __ ___ __
|
||||
/ /_/ / __ \/ ___/ //_/ / / / / / / / __ \/ / / / |/_/
|
||||
/ _, _/ /_/ / /__/ ,< / /_/ / / /___/ / / / / /_/ /> <
|
||||
/_/ |_|\____/\___/_/|_|\__, / /_____/_/_/ /_/\__,_/_/|_|
|
||||
/____/
|
||||
6
ct/headers/seanime
Normal file
6
ct/headers/seanime
Normal file
@@ -0,0 +1,6 @@
|
||||
_____ _
|
||||
/ ___/___ ____ _____ (_)___ ___ ___
|
||||
\__ \/ _ \/ __ `/ __ \/ / __ `__ \/ _ \
|
||||
___/ / __/ /_/ / / / / / / / / / / __/
|
||||
/____/\___/\__,_/_/ /_/_/_/ /_/ /_/\___/
|
||||
|
||||
6
ct/headers/solidinvoice
Normal file
6
ct/headers/solidinvoice
Normal file
@@ -0,0 +1,6 @@
|
||||
_____ ___ ______ _
|
||||
/ ___/____ / (_)___/ / _/___ _ ______ (_)_______
|
||||
\__ \/ __ \/ / / __ // // __ \ | / / __ \/ / ___/ _ \
|
||||
___/ / /_/ / / / /_/ // // / / / |/ / /_/ / / /__/ __/
|
||||
/____/\____/_/_/\__,_/___/_/ /_/|___/\____/_/\___/\___/
|
||||
|
||||
6
ct/headers/super-productivity
Normal file
6
ct/headers/super-productivity
Normal file
@@ -0,0 +1,6 @@
|
||||
_____ ____ __ __ _ _ __
|
||||
/ ___/__ ______ ___ _____ / __ \_________ ____/ /_ _______/ /_(_) __(_) /___ __
|
||||
\__ \/ / / / __ \/ _ \/ ___/_____/ /_/ / ___/ __ \/ __ / / / / ___/ __/ / | / / / __/ / / /
|
||||
___/ / /_/ / /_/ / __/ / /_____/ ____/ / / /_/ / /_/ / /_/ / /__/ /_/ /| |/ / / /_/ /_/ /
|
||||
/____/\__,_/ .___/\___/_/ /_/ /_/ \____/\__,_/\__,_/\___/\__/_/ |___/_/\__/\__, /
|
||||
/_/ /____/
|
||||
6
ct/headers/yopass
Normal file
6
ct/headers/yopass
Normal file
@@ -0,0 +1,6 @@
|
||||
__ __
|
||||
\ \/ /___ ____ ____ ___________
|
||||
\ / __ \/ __ \/ __ `/ ___/ ___/
|
||||
/ / /_/ / /_/ / /_/ (__ |__ )
|
||||
/_/\____/ .___/\__,_/____/____/
|
||||
/_/
|
||||
@@ -1,5 +1,7 @@
|
||||
#!/usr/bin/env bash
|
||||
source <(curl -fsSL https://raw.githubusercontent.com/community-scripts/ProxmoxVE/main/misc/build.func)
|
||||
_CS_DEFAULT_URL="https://raw.githubusercontent.com/community-scripts/ProxmoxVE/main"
|
||||
_cs_boot="${COMMUNITY_SCRIPTS_CORE_DIR:-$(dirname "${BASH_SOURCE[0]}")/../../core}/core/build.func"
|
||||
source "$_cs_boot" 2>/dev/null || source <(curl -fsSL "${COMMUNITY_SCRIPTS_CORE_URL:-https://raw.githubusercontent.com/community-scripts/core/main}/core/build.func")
|
||||
# Copyright (c) 2021-2026 community-scripts ORG
|
||||
# Author: Stephen Chin (steveonjava)
|
||||
# License: MIT | https://github.com/community-scripts/ProxmoxVE/raw/main/LICENSE
|
||||
|
||||
@@ -1,5 +1,7 @@
|
||||
#!/usr/bin/env bash
|
||||
source <(curl -fsSL https://raw.githubusercontent.com/community-scripts/ProxmoxVE/main/misc/build.func)
|
||||
_CS_DEFAULT_URL="https://raw.githubusercontent.com/community-scripts/ProxmoxVE/main"
|
||||
_cs_boot="${COMMUNITY_SCRIPTS_CORE_DIR:-$(dirname "${BASH_SOURCE[0]}")/../../core}/core/build.func"
|
||||
source "$_cs_boot" 2>/dev/null || source <(curl -fsSL "${COMMUNITY_SCRIPTS_CORE_URL:-https://raw.githubusercontent.com/community-scripts/core/main}/core/build.func")
|
||||
# Copyright (c) 2021-2026 tteck
|
||||
# Author: tteck (tteckster)
|
||||
# License: MIT | https://github.com/community-scripts/ProxmoxVE/raw/main/LICENSE
|
||||
@@ -77,6 +79,10 @@ EOF
|
||||
rm /opt/homepage/env.bak
|
||||
chmod 600 /opt/homepage/.env
|
||||
fi
|
||||
if ! grep -q '^Environment=CI=true' /etc/systemd/system/homepage.service; then
|
||||
sed -i '/^ExecStart=/i Environment=CI=true' /etc/systemd/system/homepage.service
|
||||
systemctl daemon-reload
|
||||
fi
|
||||
msg_ok "Updated Homepage"
|
||||
|
||||
msg_info "Starting service"
|
||||
|
||||
@@ -1,5 +1,7 @@
|
||||
#!/usr/bin/env bash
|
||||
source <(curl -fsSL https://raw.githubusercontent.com/community-scripts/ProxmoxVE/main/misc/build.func)
|
||||
_CS_DEFAULT_URL="https://raw.githubusercontent.com/community-scripts/ProxmoxVE/main"
|
||||
_cs_boot="${COMMUNITY_SCRIPTS_CORE_DIR:-$(dirname "${BASH_SOURCE[0]}")/../../core}/core/build.func"
|
||||
source "$_cs_boot" 2>/dev/null || source <(curl -fsSL "${COMMUNITY_SCRIPTS_CORE_URL:-https://raw.githubusercontent.com/community-scripts/core/main}/core/build.func")
|
||||
# Copyright (c) 2021-2026 tteck
|
||||
# Author: tteck (tteckster)
|
||||
# License: MIT | https://github.com/community-scripts/ProxmoxVE/raw/main/LICENSE
|
||||
|
||||
@@ -1,5 +1,7 @@
|
||||
#!/usr/bin/env bash
|
||||
source <(curl -fsSL https://raw.githubusercontent.com/community-scripts/ProxmoxVE/main/misc/build.func)
|
||||
_CS_DEFAULT_URL="https://raw.githubusercontent.com/community-scripts/ProxmoxVE/main"
|
||||
_cs_boot="${COMMUNITY_SCRIPTS_CORE_DIR:-$(dirname "${BASH_SOURCE[0]}")/../../core}/core/build.func"
|
||||
source "$_cs_boot" 2>/dev/null || source <(curl -fsSL "${COMMUNITY_SCRIPTS_CORE_URL:-https://raw.githubusercontent.com/community-scripts/core/main}/core/build.func")
|
||||
# Copyright (c) 2021-2026 tteck
|
||||
# Author: tteck (tteckster)
|
||||
# License: MIT | https://github.com/community-scripts/ProxmoxVE/raw/main/LICENSE
|
||||
|
||||
@@ -1,5 +1,7 @@
|
||||
#!/usr/bin/env bash
|
||||
source <(curl -fsSL https://raw.githubusercontent.com/community-scripts/ProxmoxVE/main/misc/build.func)
|
||||
_CS_DEFAULT_URL="https://raw.githubusercontent.com/community-scripts/ProxmoxVE/main"
|
||||
_cs_boot="${COMMUNITY_SCRIPTS_CORE_DIR:-$(dirname "${BASH_SOURCE[0]}")/../../core}/core/build.func"
|
||||
source "$_cs_boot" 2>/dev/null || source <(curl -fsSL "${COMMUNITY_SCRIPTS_CORE_URL:-https://raw.githubusercontent.com/community-scripts/core/main}/core/build.func")
|
||||
# Copyright (c) 2021-2026 community-scripts ORG
|
||||
# Author: vhsdream
|
||||
# License: MIT | https://github.com/community-scripts/ProxmoxVE/raw/main/LICENSE
|
||||
@@ -115,7 +117,7 @@ EOF
|
||||
if [[ $(cat ~/.immich) > "2.5.1" ]]; then
|
||||
msg_info "Enabling Maintenance Mode"
|
||||
cd /opt/immich/app/bin
|
||||
$STD ./immich-admin enable-maintenance-mode
|
||||
$STD ./immich-admin enable-maintenance-mode || true
|
||||
export MAINT_MODE=1
|
||||
$STD cd -
|
||||
msg_ok "Enabled Maintenance Mode"
|
||||
|
||||
@@ -1,5 +1,7 @@
|
||||
#!/usr/bin/env bash
|
||||
source <(curl -fsSL https://raw.githubusercontent.com/community-scripts/ProxmoxVE/main/misc/build.func)
|
||||
_CS_DEFAULT_URL="https://raw.githubusercontent.com/community-scripts/ProxmoxVE/main"
|
||||
_cs_boot="${COMMUNITY_SCRIPTS_CORE_DIR:-$(dirname "${BASH_SOURCE[0]}")/../../core}/core/build.func"
|
||||
source "$_cs_boot" 2>/dev/null || source <(curl -fsSL "${COMMUNITY_SCRIPTS_CORE_URL:-https://raw.githubusercontent.com/community-scripts/core/main}/core/build.func")
|
||||
# Copyright (c) 2021-2026 tteck
|
||||
# Author: tteck (tteckster)
|
||||
# License: MIT | https://github.com/community-scripts/ProxmoxVE/raw/main/LICENSE
|
||||
|
||||
@@ -1,5 +1,7 @@
|
||||
#!/usr/bin/env bash
|
||||
source <(curl -fsSL https://raw.githubusercontent.com/community-scripts/ProxmoxVE/main/misc/build.func)
|
||||
_CS_DEFAULT_URL="https://raw.githubusercontent.com/community-scripts/ProxmoxVE/main"
|
||||
_cs_boot="${COMMUNITY_SCRIPTS_CORE_DIR:-$(dirname "${BASH_SOURCE[0]}")/../../core}/core/build.func"
|
||||
source "$_cs_boot" 2>/dev/null || source <(curl -fsSL "${COMMUNITY_SCRIPTS_CORE_URL:-https://raw.githubusercontent.com/community-scripts/core/main}/core/build.func")
|
||||
# Copyright (c) 2021-2026 tteck
|
||||
# Author: tteck (tteckster)
|
||||
# License: MIT | https://github.com/community-scripts/ProxmoxVE/raw/main/LICENSE
|
||||
|
||||
@@ -1,5 +1,7 @@
|
||||
#!/usr/bin/env bash
|
||||
source <(curl -fsSL https://raw.githubusercontent.com/community-scripts/ProxmoxVE/main/misc/build.func)
|
||||
_CS_DEFAULT_URL="https://raw.githubusercontent.com/community-scripts/ProxmoxVE/main"
|
||||
_cs_boot="${COMMUNITY_SCRIPTS_CORE_DIR:-$(dirname "${BASH_SOURCE[0]}")/../../core}/core/build.func"
|
||||
source "$_cs_boot" 2>/dev/null || source <(curl -fsSL "${COMMUNITY_SCRIPTS_CORE_URL:-https://raw.githubusercontent.com/community-scripts/core/main}/core/build.func")
|
||||
# Copyright (c) 2021-2026 community-scripts ORG
|
||||
# Author: MickLesk (CanbiZ)
|
||||
# License: MIT | https://github.com/community-scripts/ProxmoxVE/raw/main/LICENSE
|
||||
@@ -30,7 +32,7 @@ function update_script() {
|
||||
exit
|
||||
fi
|
||||
|
||||
NODE_VERSION="22" setup_nodejs
|
||||
NODE_VERSION="24" setup_nodejs
|
||||
|
||||
if check_for_gh_release "kima-hub" "Chevron7Locked/kima-hub"; then
|
||||
msg_info "Stopping Services"
|
||||
|
||||
@@ -1,5 +1,7 @@
|
||||
#!/usr/bin/env bash
|
||||
source <(curl -fsSL https://raw.githubusercontent.com/community-scripts/ProxmoxVE/main/misc/build.func)
|
||||
_CS_DEFAULT_URL="https://raw.githubusercontent.com/community-scripts/ProxmoxVE/main"
|
||||
_cs_boot="${COMMUNITY_SCRIPTS_CORE_DIR:-$(dirname "${BASH_SOURCE[0]}")/../../core}/core/build.func"
|
||||
source "$_cs_boot" 2>/dev/null || source <(curl -fsSL "${COMMUNITY_SCRIPTS_CORE_URL:-https://raw.githubusercontent.com/community-scripts/core/main}/core/build.func")
|
||||
# Copyright (c) 2021-2026 community-scripts ORG
|
||||
# Author: Slaviša Arežina (tremor021)
|
||||
# License: MIT | https://github.com/community-scripts/ProxmoxVE/raw/main/LICENSE
|
||||
|
||||
@@ -28,6 +28,13 @@ function update_script() {
|
||||
msg_error "No ${APP} Installation Found!"
|
||||
exit
|
||||
fi
|
||||
if [[ ! -L /etc/apache2/mods-enabled/rewrite.load ]]; then
|
||||
msg_info "Enabling Apache mod_rewrite"
|
||||
$STD a2enmod rewrite
|
||||
systemctl restart apache2
|
||||
msg_ok "Enabled Apache mod_rewrite"
|
||||
fi
|
||||
|
||||
setup_mariadb
|
||||
|
||||
msg_warn "Application is updated via Web Interface"
|
||||
|
||||
81
ct/maintainerr.sh
Normal file
81
ct/maintainerr.sh
Normal file
@@ -0,0 +1,81 @@
|
||||
#!/usr/bin/env bash
|
||||
_CS_DEFAULT_URL="https://raw.githubusercontent.com/community-scripts/ProxmoxVE/main"
|
||||
_cs_boot="${COMMUNITY_SCRIPTS_CORE_DIR:-$(dirname "${BASH_SOURCE[0]}")/../../core}/core/build.func"
|
||||
source "$_cs_boot" 2>/dev/null || source <(curl -fsSL "${COMMUNITY_SCRIPTS_CORE_URL:-https://raw.githubusercontent.com/community-scripts/core/main}/core/build.func")
|
||||
# Copyright (c) 2021-2026 community-scripts ORG
|
||||
# Author: Karolis Stanelis (kstanelis)
|
||||
# License: MIT | https://github.com/community-scripts/ProxmoxVE/raw/main/LICENSE
|
||||
# Source: https://github.com/Maintainerr/Maintainerr
|
||||
|
||||
APP="Maintainerr"
|
||||
var_tags="${var_tags:-media;arr;cleanup}"
|
||||
var_cpu="${var_cpu:-4}"
|
||||
var_ram="${var_ram:-8192}"
|
||||
var_disk="${var_disk:-24}"
|
||||
var_os="${var_os:-debian}"
|
||||
var_version="${var_version:-13}"
|
||||
#var_arm64="${var_arm64:-no}" # unset = ask the user; set yes/no only when verified
|
||||
var_unprivileged="${var_unprivileged:-1}"
|
||||
|
||||
header_info "$APP"
|
||||
variables
|
||||
color
|
||||
catch_errors
|
||||
|
||||
function update_script() {
|
||||
header_info
|
||||
check_container_storage
|
||||
check_container_resources
|
||||
|
||||
if [[ ! -d /opt/maintainerr ]]; then
|
||||
msg_error "No ${APP} Installation Found!"
|
||||
exit
|
||||
fi
|
||||
|
||||
if check_for_gh_release "maintainerr" "Maintainerr/Maintainerr"; then
|
||||
msg_info "Stopping Service"
|
||||
systemctl stop maintainerr
|
||||
msg_ok "Stopped Service"
|
||||
|
||||
create_backup /opt/data /opt/maintainerr/.env
|
||||
CLEAN_INSTALL=1 fetch_and_deploy_gh_release "maintainerr" "Maintainerr/Maintainerr" "tarball" "latest" "/opt/maintainerr"
|
||||
restore_backup
|
||||
NODE_VERSION="26" setup_nodejs
|
||||
|
||||
msg_info "Rebuilding Maintainerr (Patience)"
|
||||
cd /opt/maintainerr
|
||||
export COREPACK_ENABLE_DOWNLOAD_PROMPT=0
|
||||
export NODE_OPTIONS="--max-old-space-size=4096"
|
||||
$STD corepack enable
|
||||
$STD corepack prepare yarn@4.11.0 --activate
|
||||
$STD yarn config set enableTelemetry 0
|
||||
$STD yarn install --network-timeout 300000
|
||||
$STD yarn turbo build --concurrency=1
|
||||
cp -r apps/ui/dist apps/server/dist/ui
|
||||
cp -r apps/server/assets apps/server/dist/assets
|
||||
find apps/server/dist/ui -type f -not -path '*/node_modules/*' -print0 | xargs -0 sed -i "s,/__PATH_PREFIX__,,g"
|
||||
$STD yarn workspaces focus --all --production
|
||||
rm -rf /opt/maintainerr/.yarn/cache /opt/maintainerr/.turbo /opt/maintainerr/apps/ui
|
||||
sed -i '/^npm_package_version=/d;/^VERSION_TAG=/d' /opt/maintainerr/.env
|
||||
{
|
||||
echo "VERSION_TAG=stable"
|
||||
echo "npm_package_version=$(cat ~/.maintainerr)"
|
||||
} >>/opt/maintainerr/.env
|
||||
msg_ok "Rebuilt Maintainerr"
|
||||
|
||||
msg_info "Starting Service"
|
||||
systemctl start maintainerr
|
||||
msg_ok "Started Service"
|
||||
msg_ok "Updated Successfully!"
|
||||
fi
|
||||
exit
|
||||
}
|
||||
|
||||
start
|
||||
build_container
|
||||
description
|
||||
|
||||
msg_ok "Completed Successfully!\n"
|
||||
echo -e "${CREATING}${GN}${APP} setup has been successfully initialized!${CL}"
|
||||
echo -e "${INFO}${YW} Access it using the following URL:${CL}"
|
||||
echo -e "${TAB}${GATEWAY}${BGN}http://${IP}:6246${CL}"
|
||||
@@ -1,5 +1,7 @@
|
||||
#!/usr/bin/env bash
|
||||
source <(curl -fsSL https://raw.githubusercontent.com/community-scripts/ProxmoxVE/main/misc/build.func)
|
||||
_CS_DEFAULT_URL="https://raw.githubusercontent.com/community-scripts/ProxmoxVE/main"
|
||||
_cs_boot="${COMMUNITY_SCRIPTS_CORE_DIR:-$(dirname "${BASH_SOURCE[0]}")/../../core}/core/build.func"
|
||||
source "$_cs_boot" 2>/dev/null || source <(curl -fsSL "${COMMUNITY_SCRIPTS_CORE_URL:-https://raw.githubusercontent.com/community-scripts/core/main}/core/build.func")
|
||||
# Copyright (c) 2021-2026 community-scripts ORG
|
||||
# Author: MickLesk (CanbiZ)
|
||||
# License: MIT | https://github.com/community-scripts/ProxmoxVE/raw/main/LICENSE
|
||||
@@ -40,6 +42,7 @@ function update_script() {
|
||||
CLEAN_INSTALL=1 fetch_and_deploy_gh_release "mastodon" "mastodon/mastodon" "tarball"
|
||||
sed -i "s/config.force_ssl = true/config.force_ssl = ENV.fetch('LOCAL_HTTPS', 'false') == 'true'/" /opt/mastodon/config/environments/production.rb
|
||||
sed -i "s/https = Rails.env.production? || ENV\['LOCAL_HTTPS'\] == 'true'/https = ENV.fetch('LOCAL_HTTPS', 'false') == 'true'/" /opt/mastodon/config/initializers/1_hosts.rb
|
||||
RUBY_VERSION="$(cat /opt/mastodon/.ruby-version)" RUBY_INSTALL_RAILS="false" setup_ruby
|
||||
|
||||
msg_info "Installing Ruby Dependencies"
|
||||
cd /opt/mastodon
|
||||
|
||||
@@ -1,5 +1,7 @@
|
||||
#!/usr/bin/env bash
|
||||
source <(curl -fsSL https://raw.githubusercontent.com/community-scripts/ProxmoxVE/main/misc/build.func)
|
||||
_CS_DEFAULT_URL="https://raw.githubusercontent.com/community-scripts/ProxmoxVE/main"
|
||||
_cs_boot="${COMMUNITY_SCRIPTS_CORE_DIR:-$(dirname "${BASH_SOURCE[0]}")/../../core}/core/build.func"
|
||||
source "$_cs_boot" 2>/dev/null || source <(curl -fsSL "${COMMUNITY_SCRIPTS_CORE_URL:-https://raw.githubusercontent.com/community-scripts/core/main}/core/build.func")
|
||||
# Copyright (c) 2021-2026 tteck
|
||||
# Author: tteck (tteckster)
|
||||
# License: MIT | https://github.com/community-scripts/ProxmoxVE/raw/main/LICENSE
|
||||
|
||||
@@ -1,5 +1,7 @@
|
||||
#!/usr/bin/env bash
|
||||
source <(curl -fsSL https://raw.githubusercontent.com/community-scripts/ProxmoxVE/main/misc/build.func)
|
||||
_CS_DEFAULT_URL="https://raw.githubusercontent.com/community-scripts/ProxmoxVE/main"
|
||||
_cs_boot="${COMMUNITY_SCRIPTS_CORE_DIR:-$(dirname "${BASH_SOURCE[0]}")/../../core}/core/build.func"
|
||||
source "$_cs_boot" 2>/dev/null || source <(curl -fsSL "${COMMUNITY_SCRIPTS_CORE_URL:-https://raw.githubusercontent.com/community-scripts/core/main}/core/build.func")
|
||||
# Copyright (c) 2021-2026 tteck
|
||||
# Author: tteck (tteckster)
|
||||
# License: MIT | https://github.com/community-scripts/ProxmoxVE/raw/main/LICENSE
|
||||
|
||||
@@ -1,5 +1,7 @@
|
||||
#!/usr/bin/env bash
|
||||
source <(curl -fsSL https://raw.githubusercontent.com/community-scripts/ProxmoxVE/main/misc/build.func)
|
||||
_CS_DEFAULT_URL="https://raw.githubusercontent.com/community-scripts/ProxmoxVE/main"
|
||||
_cs_boot="${COMMUNITY_SCRIPTS_CORE_DIR:-$(dirname "${BASH_SOURCE[0]}")/../../core}/core/build.func"
|
||||
source "$_cs_boot" 2>/dev/null || source <(curl -fsSL "${COMMUNITY_SCRIPTS_CORE_URL:-https://raw.githubusercontent.com/community-scripts/core/main}/core/build.func")
|
||||
# Copyright (c) 2021-2026 tteck
|
||||
# Author: tteck (tteckster)
|
||||
# License: MIT | https://github.com/community-scripts/ProxmoxVE/raw/main/LICENSE
|
||||
|
||||
@@ -1,5 +1,7 @@
|
||||
#!/usr/bin/env bash
|
||||
source <(curl -fsSL https://raw.githubusercontent.com/community-scripts/ProxmoxVE/main/misc/build.func)
|
||||
_CS_DEFAULT_URL="https://raw.githubusercontent.com/community-scripts/ProxmoxVE/main"
|
||||
_cs_boot="${COMMUNITY_SCRIPTS_CORE_DIR:-$(dirname "${BASH_SOURCE[0]}")/../../core}/core/build.func"
|
||||
source "$_cs_boot" 2>/dev/null || source <(curl -fsSL "${COMMUNITY_SCRIPTS_CORE_URL:-https://raw.githubusercontent.com/community-scripts/core/main}/core/build.func")
|
||||
# Copyright (c) 2021-2026 community-scripts ORG
|
||||
# Author: MickLesk (Canbiz)
|
||||
# License: MIT
|
||||
|
||||
@@ -1,5 +1,7 @@
|
||||
#!/usr/bin/env bash
|
||||
source <(curl -fsSL https://raw.githubusercontent.com/community-scripts/ProxmoxVE/main/misc/build.func)
|
||||
_CS_DEFAULT_URL="https://raw.githubusercontent.com/community-scripts/ProxmoxVE/main"
|
||||
_cs_boot="${COMMUNITY_SCRIPTS_CORE_DIR:-$(dirname "${BASH_SOURCE[0]}")/../../core}/core/build.func"
|
||||
source "$_cs_boot" 2>/dev/null || source <(curl -fsSL "${COMMUNITY_SCRIPTS_CORE_URL:-https://raw.githubusercontent.com/community-scripts/core/main}/core/build.func")
|
||||
# Copyright (c) 2021-2026 community-scripts ORG
|
||||
# Author: tteck (tteckster) | Co-Author: CrazyWolf13, MickLesk (CanbiZ)
|
||||
# License: MIT | https://github.com/community-scripts/ProxmoxVE/raw/main/LICENSE
|
||||
|
||||
@@ -49,7 +49,7 @@ update_deb_based() {
|
||||
msg_ok "Stopped Service"
|
||||
|
||||
msg_info "Updating Node-Red"
|
||||
$STD npm install -g --unsafe-perm node-red
|
||||
$STD npm install -g node-red
|
||||
msg_ok "Updated Node-Red"
|
||||
|
||||
msg_info "Starting Service"
|
||||
@@ -106,7 +106,7 @@ update_alpine() {
|
||||
msg_ok "Updated Node.js and npm"
|
||||
|
||||
msg_info "Updating Node-RED"
|
||||
$STD npm install -g --unsafe-perm node-red
|
||||
$STD npm install -g node-red
|
||||
msg_ok "Updated Node-RED"
|
||||
|
||||
msg_info "Restarting Node-RED"
|
||||
|
||||
@@ -1,5 +1,7 @@
|
||||
#!/usr/bin/env bash
|
||||
source <(curl -fsSL https://raw.githubusercontent.com/community-scripts/ProxmoxVE/main/misc/build.func)
|
||||
_CS_DEFAULT_URL="https://raw.githubusercontent.com/community-scripts/ProxmoxVE/main"
|
||||
_cs_boot="${COMMUNITY_SCRIPTS_CORE_DIR:-$(dirname "${BASH_SOURCE[0]}")/../../core}/core/build.func"
|
||||
source "$_cs_boot" 2>/dev/null || source <(curl -fsSL "${COMMUNITY_SCRIPTS_CORE_URL:-https://raw.githubusercontent.com/community-scripts/core/main}/core/build.func")
|
||||
# Copyright (c) 2021-2026 community-scripts ORG
|
||||
# Author: MickLesk (CanbiZ)
|
||||
# License: MIT | https://github.com/community-scripts/ProxmoxVE/raw/main/LICENSE
|
||||
|
||||
@@ -1,5 +1,7 @@
|
||||
#!/usr/bin/env bash
|
||||
source <(curl -fsSL https://raw.githubusercontent.com/community-scripts/ProxmoxVE/main/misc/build.func)
|
||||
_CS_DEFAULT_URL="https://raw.githubusercontent.com/community-scripts/ProxmoxVE/main"
|
||||
_cs_boot="${COMMUNITY_SCRIPTS_CORE_DIR:-$(dirname "${BASH_SOURCE[0]}")/../../core}/core/build.func"
|
||||
source "$_cs_boot" 2>/dev/null || source <(curl -fsSL "${COMMUNITY_SCRIPTS_CORE_URL:-https://raw.githubusercontent.com/community-scripts/core/main}/core/build.func")
|
||||
# Copyright (c) 2021-2026 community-scripts ORG
|
||||
# Author: MickLesk (CanbiZ)
|
||||
# License: MIT | https://github.com/community-scripts/ProxmoxVE/raw/main/LICENSE
|
||||
|
||||
@@ -1,5 +1,7 @@
|
||||
#!/usr/bin/env bash
|
||||
source <(curl -fsSL https://raw.githubusercontent.com/community-scripts/ProxmoxVE/main/misc/build.func)
|
||||
_CS_DEFAULT_URL="https://raw.githubusercontent.com/community-scripts/ProxmoxVE/main"
|
||||
_cs_boot="${COMMUNITY_SCRIPTS_CORE_DIR:-$(dirname "${BASH_SOURCE[0]}")/../../core}/core/build.func"
|
||||
source "$_cs_boot" 2>/dev/null || source <(curl -fsSL "${COMMUNITY_SCRIPTS_CORE_URL:-https://raw.githubusercontent.com/community-scripts/core/main}/core/build.func")
|
||||
# Copyright (c) 2021-2026 tteck
|
||||
# Author: havardthom | Co-Author: MickLesk (CanbiZ)
|
||||
# License: MIT | https://github.com/community-scripts/ProxmoxVE/raw/main/LICENSE
|
||||
|
||||
@@ -31,7 +31,7 @@ function update_script() {
|
||||
|
||||
msg_info "Updating MongoDB"
|
||||
if [[ "$(arch_resolve)" == "arm64" ]] || lscpu | grep -q 'avx'; then
|
||||
MONGO_VERSION="8.0"
|
||||
MONGO_VERSION="8.0" setup_mongodb
|
||||
else
|
||||
msg_error "No AVX detected (CPU-Flag)! We have discontinued support for this. You are welcome to try it manually with a Debian LXC, but due to the many issues with Omada, we currently only support AVX CPUs."
|
||||
exit 10
|
||||
|
||||
68
ct/openbao.sh
Executable file
68
ct/openbao.sh
Executable file
@@ -0,0 +1,68 @@
|
||||
#!/usr/bin/env bash
|
||||
_CS_DEFAULT_URL="https://raw.githubusercontent.com/community-scripts/ProxmoxVE/main"
|
||||
_cs_boot="${COMMUNITY_SCRIPTS_CORE_DIR:-$(dirname "${BASH_SOURCE[0]}")/../../core}/core/build.func"
|
||||
source "$_cs_boot" 2>/dev/null || source <(curl -fsSL "${COMMUNITY_SCRIPTS_CORE_URL:-https://raw.githubusercontent.com/community-scripts/core/main}/core/build.func")
|
||||
# Copyright (c) 2021-2026 community-scripts ORG
|
||||
# Author: Marc Went (Dunky13)
|
||||
# License: MIT | https://github.com/community-scripts/ProxmoxVE/raw/main/LICENSE
|
||||
# Source: https://openbao.org/
|
||||
|
||||
APP="OpenBao"
|
||||
var_tags="${var_tags:-security;secrets}"
|
||||
var_cpu="${var_cpu:-1}"
|
||||
var_ram="${var_ram:-1024}"
|
||||
var_disk="${var_disk:-4}"
|
||||
var_os="${var_os:-debian}"
|
||||
var_version="${var_version:-13}"
|
||||
var_arm64="${var_arm64:-yes}"
|
||||
var_unprivileged="${var_unprivileged:-1}"
|
||||
|
||||
header_info "$APP"
|
||||
variables
|
||||
color
|
||||
catch_errors
|
||||
|
||||
function update_script() {
|
||||
header_info
|
||||
check_container_storage
|
||||
check_container_resources
|
||||
|
||||
if [[ ! -f /usr/bin/bao ]]; then
|
||||
msg_error "No ${APP} Installation Found!"
|
||||
exit
|
||||
fi
|
||||
|
||||
if check_for_gh_release "openbao" "openbao/openbao"; then
|
||||
msg_info "Stopping Service"
|
||||
systemctl stop openbao
|
||||
msg_ok "Stopped Service"
|
||||
|
||||
create_backup /etc/openbao
|
||||
DPKG_FORCE_CONFOLD=1 fetch_and_deploy_gh_release "openbao" "openbao/openbao" "binary" "latest" "/opt/openbao" "openbao_*_linux_$(arch_resolve).deb"
|
||||
restore_backup
|
||||
|
||||
msg_info "Starting Service"
|
||||
$STD systemctl daemon-reload
|
||||
systemctl start openbao
|
||||
msg_ok "Started Service"
|
||||
for _ in {1..15}; do
|
||||
BAO_ADDR=https://127.0.0.1:8200 BAO_SKIP_VERIFY=true bao status -format=json 2>/dev/null | jq -e '.sealed == false' >/dev/null && break
|
||||
sleep 2
|
||||
done
|
||||
if ! BAO_ADDR=https://127.0.0.1:8200 BAO_SKIP_VERIFY=true bao status -format=json 2>/dev/null | jq -e '.sealed == false' >/dev/null; then
|
||||
msg_error "OpenBao did not unseal within 30 seconds"
|
||||
exit 1
|
||||
fi
|
||||
msg_ok "Updated successfully!"
|
||||
fi
|
||||
exit
|
||||
}
|
||||
|
||||
start
|
||||
build_container
|
||||
description
|
||||
|
||||
msg_ok "Completed Successfully!\n"
|
||||
echo -e "${CREATING}${GN}${APP} setup has been successfully initialized!${CL}"
|
||||
echo -e "${INFO}${YW} Access it using the following URL:${CL}"
|
||||
echo -e "${TAB}${GATEWAY}${BGN}https://${IP}:8200${CL}"
|
||||
46
ct/openeuler.sh
Normal file
46
ct/openeuler.sh
Normal file
@@ -0,0 +1,46 @@
|
||||
#!/usr/bin/env bash
|
||||
_CS_DEFAULT_URL="https://raw.githubusercontent.com/community-scripts/ProxmoxVE/main"
|
||||
_cs_boot="${COMMUNITY_SCRIPTS_CORE_DIR:-$(dirname "${BASH_SOURCE[0]}")/../../core}/core/build.func"
|
||||
source "$_cs_boot" 2>/dev/null || source <(curl -fsSL "${COMMUNITY_SCRIPTS_CORE_URL:-https://raw.githubusercontent.com/community-scripts/core/main}/core/build.func")
|
||||
|
||||
# Copyright (c) 2021-2026 community-scripts ORG
|
||||
# Author: MickLesk (CanbiZ)
|
||||
# License: MIT | https://github.com/community-scripts/ProxmoxVE/raw/main/LICENSE
|
||||
# Source: https://www.openeuler.org/
|
||||
|
||||
APP="openEuler"
|
||||
var_tags="${var_tags:-os}"
|
||||
var_cpu="${var_cpu:-1}"
|
||||
var_ram="${var_ram:-512}"
|
||||
var_disk="${var_disk:-4}"
|
||||
var_os="${var_os:-openeuler}"
|
||||
var_version="${var_version:-25.03}"
|
||||
#var_arm64="${var_arm64:-no}" # unset = ask the user; set yes/no only when verified
|
||||
var_unprivileged="${var_unprivileged:-1}"
|
||||
|
||||
header_info "$APP"
|
||||
variables
|
||||
color
|
||||
catch_errors
|
||||
|
||||
function update_script() {
|
||||
header_info
|
||||
check_container_storage
|
||||
check_container_resources
|
||||
if [[ ! -d /var ]]; then
|
||||
msg_error "No ${APP} Installation Found!"
|
||||
exit
|
||||
fi
|
||||
msg_info "Updating OpenEuler LXC"
|
||||
$STD dnf -y upgrade
|
||||
msg_ok "Updated OpenEuler LXC"
|
||||
msg_ok "Updated successfully!"
|
||||
exit
|
||||
}
|
||||
|
||||
start
|
||||
build_container
|
||||
description
|
||||
|
||||
msg_ok "Completed successfully!\n"
|
||||
echo -e "${CREATING}${GN}${APP} setup has been successfully initialized!${CL}"
|
||||
@@ -1,5 +1,7 @@
|
||||
#!/usr/bin/env bash
|
||||
source <(curl -fsSL https://raw.githubusercontent.com/community-scripts/ProxmoxVE/main/misc/build.func)
|
||||
_CS_DEFAULT_URL="https://raw.githubusercontent.com/community-scripts/ProxmoxVE/main"
|
||||
_cs_boot="${COMMUNITY_SCRIPTS_CORE_DIR:-$(dirname "${BASH_SOURCE[0]}")/../../core}/core/build.func"
|
||||
source "$_cs_boot" 2>/dev/null || source <(curl -fsSL "${COMMUNITY_SCRIPTS_CORE_URL:-https://raw.githubusercontent.com/community-scripts/core/main}/core/build.func")
|
||||
# Copyright (c) 2021-2026 community-scripts ORG
|
||||
# Author: Jonathan (jd-apprentice)
|
||||
# License: MIT | https://github.com/community-scripts/ProxmoxVE/raw/main/LICENSE
|
||||
@@ -33,15 +35,11 @@ function update_script() {
|
||||
systemctl stop opengist
|
||||
msg_ok "Stopped Service"
|
||||
|
||||
msg_info "Creating backup"
|
||||
mv /opt/opengist /opt/opengist-backup
|
||||
msg_ok "Backup created"
|
||||
create_backup /opt/opengist/config.yml
|
||||
|
||||
fetch_and_deploy_gh_release "opengist" "thomiceli/opengist" "prebuild" "latest" "/opt/opengist" "opengist*linux-$(arch_resolve).tar.gz"
|
||||
CLEAN_INSTALL=1 fetch_and_deploy_gh_release "opengist" "thomiceli/opengist" "prebuild" "latest" "/opt/opengist" "opengist*linux-$(arch_resolve).tar.gz"
|
||||
|
||||
msg_info "Restoring Configuration"
|
||||
mv /opt/opengist-backup/config.yml /opt/opengist/config.yml
|
||||
msg_ok "Configuration Restored"
|
||||
restore_backup
|
||||
|
||||
msg_info "Starting Service"
|
||||
systemctl start opengist
|
||||
|
||||
46
ct/opensuse.sh
Normal file
46
ct/opensuse.sh
Normal file
@@ -0,0 +1,46 @@
|
||||
#!/usr/bin/env bash
|
||||
_CS_DEFAULT_URL="https://raw.githubusercontent.com/community-scripts/ProxmoxVE/main"
|
||||
_cs_boot="${COMMUNITY_SCRIPTS_CORE_DIR:-$(dirname "${BASH_SOURCE[0]}")/../../core}/core/build.func"
|
||||
source "$_cs_boot" 2>/dev/null || source <(curl -fsSL "${COMMUNITY_SCRIPTS_CORE_URL:-https://raw.githubusercontent.com/community-scripts/core/main}/core/build.func")
|
||||
|
||||
# Copyright (c) 2021-2026 community-scripts ORG
|
||||
# Author: MickLesk (CanbiZ)
|
||||
# License: MIT | https://github.com/community-scripts/ProxmoxVE/raw/main/LICENSE
|
||||
# Source: https://www.opensuse.org/
|
||||
|
||||
APP="openSUSE"
|
||||
var_tags="${var_tags:-os}"
|
||||
var_cpu="${var_cpu:-1}"
|
||||
var_ram="${var_ram:-512}"
|
||||
var_disk="${var_disk:-4}"
|
||||
var_os="${var_os:-opensuse}"
|
||||
var_version="${var_version:-16.0}"
|
||||
#var_arm64="${var_arm64:-no}" # unset = ask the user; set yes/no only when verified
|
||||
var_unprivileged="${var_unprivileged:-1}"
|
||||
|
||||
header_info "$APP"
|
||||
variables
|
||||
color
|
||||
catch_errors
|
||||
|
||||
function update_script() {
|
||||
header_info
|
||||
check_container_storage
|
||||
check_container_resources
|
||||
if [[ ! -d /var ]]; then
|
||||
msg_error "No ${APP} Installation Found!"
|
||||
exit
|
||||
fi
|
||||
msg_info "Updating OpenSUSE LXC"
|
||||
$STD zypper -n update
|
||||
msg_ok "Updated OpenSUSE LXC"
|
||||
msg_ok "Updated successfully!"
|
||||
exit
|
||||
}
|
||||
|
||||
start
|
||||
build_container
|
||||
description
|
||||
|
||||
msg_ok "Completed successfully!\n"
|
||||
msg_custom "🚀" "${GN}" "${APP} setup has been successfully initialized!"
|
||||
@@ -1,5 +1,7 @@
|
||||
#!/usr/bin/env bash
|
||||
source <(curl -fsSL https://raw.githubusercontent.com/community-scripts/ProxmoxVE/main/misc/build.func)
|
||||
_CS_DEFAULT_URL="https://raw.githubusercontent.com/community-scripts/ProxmoxVE/main"
|
||||
_cs_boot="${COMMUNITY_SCRIPTS_CORE_DIR:-$(dirname "${BASH_SOURCE[0]}")/../../core}/core/build.func"
|
||||
source "$_cs_boot" 2>/dev/null || source <(curl -fsSL "${COMMUNITY_SCRIPTS_CORE_URL:-https://raw.githubusercontent.com/community-scripts/core/main}/core/build.func")
|
||||
# Copyright (c) 2021-2026 tteck
|
||||
# Author: tteck | Co-Author: havardthom | Co-Author: Slaviša Arežina (tremor021)
|
||||
# License: MIT | https://github.com/community-scripts/ProxmoxVE/raw/main/LICENSE
|
||||
|
||||
@@ -1,5 +1,7 @@
|
||||
#!/usr/bin/env bash
|
||||
source <(curl -fsSL https://raw.githubusercontent.com/community-scripts/ProxmoxVE/main/misc/build.func)
|
||||
_CS_DEFAULT_URL="https://raw.githubusercontent.com/community-scripts/ProxmoxVE/main"
|
||||
_cs_boot="${COMMUNITY_SCRIPTS_CORE_DIR:-$(dirname "${BASH_SOURCE[0]}")/../../core}/core/build.func"
|
||||
source "$_cs_boot" 2>/dev/null || source <(curl -fsSL "${COMMUNITY_SCRIPTS_CORE_URL:-https://raw.githubusercontent.com/community-scripts/core/main}/core/build.func")
|
||||
# Copyright (c) 2021-2026 tteck
|
||||
# Author: tteck (tteckster)
|
||||
# License: MIT | https://github.com/community-scripts/ProxmoxVE/raw/main/LICENSE
|
||||
|
||||
@@ -1,5 +1,7 @@
|
||||
#!/usr/bin/env bash
|
||||
source <(curl -fsSL https://raw.githubusercontent.com/community-scripts/ProxmoxVE/main/misc/build.func)
|
||||
_CS_DEFAULT_URL="https://raw.githubusercontent.com/community-scripts/ProxmoxVE/main"
|
||||
_cs_boot="${COMMUNITY_SCRIPTS_CORE_DIR:-$(dirname "${BASH_SOURCE[0]}")/../../core}/core/build.func"
|
||||
source "$_cs_boot" 2>/dev/null || source <(curl -fsSL "${COMMUNITY_SCRIPTS_CORE_URL:-https://raw.githubusercontent.com/community-scripts/core/main}/core/build.func")
|
||||
# Copyright (c) 2021-2026 tteck
|
||||
# Author: tteck (tteckster)
|
||||
# License: MIT | https://github.com/community-scripts/ProxmoxVE/raw/main/LICENSE
|
||||
|
||||
@@ -1,5 +1,7 @@
|
||||
#!/usr/bin/env bash
|
||||
source <(curl -fsSL https://raw.githubusercontent.com/community-scripts/ProxmoxVE/main/misc/build.func)
|
||||
_CS_DEFAULT_URL="https://raw.githubusercontent.com/community-scripts/ProxmoxVE/main"
|
||||
_cs_boot="${COMMUNITY_SCRIPTS_CORE_DIR:-$(dirname "${BASH_SOURCE[0]}")/../../core}/core/build.func"
|
||||
source "$_cs_boot" 2>/dev/null || source <(curl -fsSL "${COMMUNITY_SCRIPTS_CORE_URL:-https://raw.githubusercontent.com/community-scripts/core/main}/core/build.func")
|
||||
# Copyright (c) 2021-2026 tteck
|
||||
# Author: tteck (tteckster)
|
||||
# License: MIT | https://github.com/community-scripts/ProxmoxVE/raw/main/LICENSE
|
||||
|
||||
@@ -1,5 +1,7 @@
|
||||
#!/usr/bin/env bash
|
||||
source <(curl -fsSL https://raw.githubusercontent.com/community-scripts/ProxmoxVE/main/misc/build.func)
|
||||
_CS_DEFAULT_URL="https://raw.githubusercontent.com/community-scripts/ProxmoxVE/main"
|
||||
_cs_boot="${COMMUNITY_SCRIPTS_CORE_DIR:-$(dirname "${BASH_SOURCE[0]}")/../../core}/core/build.func"
|
||||
source "$_cs_boot" 2>/dev/null || source <(curl -fsSL "${COMMUNITY_SCRIPTS_CORE_URL:-https://raw.githubusercontent.com/community-scripts/core/main}/core/build.func")
|
||||
# Copyright (c) 2021-2026 tteck
|
||||
# Author: tteck (tteckster)
|
||||
# License: MIT | https://github.com/community-scripts/ProxmoxVE/raw/main/LICENSE
|
||||
|
||||
@@ -1,5 +1,7 @@
|
||||
#!/usr/bin/env bash
|
||||
source <(curl -fsSL https://raw.githubusercontent.com/community-scripts/ProxmoxVE/main/misc/build.func)
|
||||
_CS_DEFAULT_URL="https://raw.githubusercontent.com/community-scripts/ProxmoxVE/main"
|
||||
_cs_boot="${COMMUNITY_SCRIPTS_CORE_DIR:-$(dirname "${BASH_SOURCE[0]}")/../../core}/core/build.func"
|
||||
source "$_cs_boot" 2>/dev/null || source <(curl -fsSL "${COMMUNITY_SCRIPTS_CORE_URL:-https://raw.githubusercontent.com/community-scripts/core/main}/core/build.func")
|
||||
# Copyright (c) 2021-2026 community-scripts ORG
|
||||
# Author: nnsense
|
||||
# License: MIT | https://github.com/community-scripts/ProxmoxVE/raw/main/LICENSE
|
||||
|
||||
@@ -1,5 +1,7 @@
|
||||
#!/usr/bin/env bash
|
||||
source <(curl -fsSL https://raw.githubusercontent.com/community-scripts/ProxmoxVE/main/misc/build.func)
|
||||
_CS_DEFAULT_URL="https://raw.githubusercontent.com/community-scripts/ProxmoxVE/main"
|
||||
_cs_boot="${COMMUNITY_SCRIPTS_CORE_DIR:-$(dirname "${BASH_SOURCE[0]}")/../../core}/core/build.func"
|
||||
source "$_cs_boot" 2>/dev/null || source <(curl -fsSL "${COMMUNITY_SCRIPTS_CORE_URL:-https://raw.githubusercontent.com/community-scripts/core/main}/core/build.func")
|
||||
# Copyright (c) 2021-2026 community-scripts ORG
|
||||
# Author: Slaviša Arežina (tremor021)
|
||||
# License: MIT | https://github.com/community-scripts/ProxmoxVE/raw/main/LICENSE
|
||||
@@ -54,6 +56,7 @@ function update_script() {
|
||||
msg_ok "Backed up data"
|
||||
|
||||
fetch_and_deploy_gh_release "planka" "plankanban/planka" "prebuild" "latest" "/opt/planka" "planka-prebuild.zip"
|
||||
NODE_VERSION="24" setup_nodejs
|
||||
|
||||
msg_info "Update Frontend"
|
||||
cd /opt/planka
|
||||
|
||||
@@ -1,5 +1,7 @@
|
||||
#!/usr/bin/env bash
|
||||
source <(curl -fsSL https://raw.githubusercontent.com/community-scripts/ProxmoxVE/main/misc/build.func)
|
||||
_CS_DEFAULT_URL="https://raw.githubusercontent.com/community-scripts/ProxmoxVE/main"
|
||||
_cs_boot="${COMMUNITY_SCRIPTS_CORE_DIR:-$(dirname "${BASH_SOURCE[0]}")/../../core}/core/build.func"
|
||||
source "$_cs_boot" 2>/dev/null || source <(curl -fsSL "${COMMUNITY_SCRIPTS_CORE_URL:-https://raw.githubusercontent.com/community-scripts/core/main}/core/build.func")
|
||||
# Copyright (c) 2021-2026 community-scripts ORG
|
||||
# Author: tteck (tteckster) | MickLesk (CanbiZ)
|
||||
# License: MIT | https://github.com/community-scripts/ProxmoxVE/raw/main/LICENSE
|
||||
|
||||
@@ -1,5 +1,7 @@
|
||||
#!/usr/bin/env bash
|
||||
source <(curl -fsSL https://raw.githubusercontent.com/community-scripts/ProxmoxVE/main/misc/build.func)
|
||||
_CS_DEFAULT_URL="https://raw.githubusercontent.com/community-scripts/ProxmoxVE/main"
|
||||
_cs_boot="${COMMUNITY_SCRIPTS_CORE_DIR:-$(dirname "${BASH_SOURCE[0]}")/../../core}/core/build.func"
|
||||
source "$_cs_boot" 2>/dev/null || source <(curl -fsSL "${COMMUNITY_SCRIPTS_CORE_URL:-https://raw.githubusercontent.com/community-scripts/core/main}/core/build.func")
|
||||
# Copyright (c) 2021-2026 tteck
|
||||
# Author: tteck (tteckster)
|
||||
# License: MIT | https://github.com/community-scripts/ProxmoxVE/raw/main/LICENSE
|
||||
|
||||
@@ -1,5 +1,7 @@
|
||||
#!/usr/bin/env bash
|
||||
source <(curl -fsSL https://raw.githubusercontent.com/community-scripts/ProxmoxVE/main/misc/build.func)
|
||||
_CS_DEFAULT_URL="https://raw.githubusercontent.com/community-scripts/ProxmoxVE/main"
|
||||
_cs_boot="${COMMUNITY_SCRIPTS_CORE_DIR:-$(dirname "${BASH_SOURCE[0]}")/../../core}/core/build.func"
|
||||
source "$_cs_boot" 2>/dev/null || source <(curl -fsSL "${COMMUNITY_SCRIPTS_CORE_URL:-https://raw.githubusercontent.com/community-scripts/core/main}/core/build.func")
|
||||
# Copyright (c) 2021-2026 tteck
|
||||
# Author: tteck (tteckster)
|
||||
# License: MIT | https://github.com/community-scripts/ProxmoxVE/raw/main/LICENSE
|
||||
|
||||
@@ -41,7 +41,7 @@ function update_script() {
|
||||
|
||||
msg_info "Updating Application"
|
||||
cd /opt/pve-usv
|
||||
$STD uv venv --clear venv
|
||||
$STD uv venv --clear --seed venv
|
||||
$STD uv pip install --python venv/bin/python .
|
||||
chown -R pveusv:pveusv /opt/pve-usv
|
||||
chmod 0755 deploy/pve-usv-agent.sh
|
||||
|
||||
57
ct/pyload.sh
Normal file
57
ct/pyload.sh
Normal file
@@ -0,0 +1,57 @@
|
||||
#!/usr/bin/env bash
|
||||
_CS_DEFAULT_URL="https://raw.githubusercontent.com/community-scripts/ProxmoxVE/main"
|
||||
_cs_boot="${COMMUNITY_SCRIPTS_CORE_DIR:-$(dirname "${BASH_SOURCE[0]}")/../../core}/core/build.func"
|
||||
source "$_cs_boot" 2>/dev/null || source <(curl -fsSL "${COMMUNITY_SCRIPTS_CORE_URL:-https://raw.githubusercontent.com/community-scripts/core/main}/core/build.func")
|
||||
# Copyright (c) 2021-2026 community-scripts ORG
|
||||
# Author: MickLesk (CanbiZ)
|
||||
# License: MIT | https://github.com/community-scripts/ProxmoxVE/raw/main/LICENSE
|
||||
# Source: https://github.com/pyload/pyload
|
||||
|
||||
APP="pyLoad"
|
||||
var_tags="${var_tags:-downloader}"
|
||||
var_cpu="${var_cpu:-2}"
|
||||
var_ram="${var_ram:-2048}"
|
||||
var_disk="${var_disk:-16}"
|
||||
var_os="${var_os:-debian}"
|
||||
var_version="${var_version:-13}"
|
||||
#var_arm64="${var_arm64:-no}" # unset = ask the user; set yes/no only when verified
|
||||
var_unprivileged="${var_unprivileged:-1}"
|
||||
|
||||
header_info "$APP"
|
||||
variables
|
||||
color
|
||||
catch_errors
|
||||
|
||||
function update_script() {
|
||||
header_info
|
||||
check_container_storage
|
||||
check_container_resources
|
||||
|
||||
if [[ ! -d /opt/pyload ]]; then
|
||||
msg_error "No ${APP} Installation Found!"
|
||||
exit
|
||||
fi
|
||||
|
||||
msg_info "Stopping Service"
|
||||
systemctl stop pyload
|
||||
msg_ok "Stopped Service"
|
||||
|
||||
msg_info "Updating ${APP}"
|
||||
$STD uv pip install --python /opt/pyload/.venv --upgrade --prerelease allow "pyload-ng[all]"
|
||||
msg_ok "Updated ${APP}"
|
||||
|
||||
msg_info "Starting Service"
|
||||
systemctl start pyload
|
||||
msg_ok "Started Service"
|
||||
msg_ok "Updated successfully!"
|
||||
exit
|
||||
}
|
||||
|
||||
start
|
||||
build_container
|
||||
description
|
||||
|
||||
msg_ok "Completed Successfully!\n"
|
||||
echo -e "${CREATING}${GN}${APP} setup has been successfully initialized!${CL}"
|
||||
echo -e "${INFO}${YW}Access it using the following URL:${CL}"
|
||||
echo -e "${GATEWAY}${BGN}http://${IP}:8000${CL}"
|
||||
@@ -1,5 +1,7 @@
|
||||
#!/usr/bin/env bash
|
||||
source <(curl -fsSL https://raw.githubusercontent.com/community-scripts/ProxmoxVE/main/misc/build.func)
|
||||
_CS_DEFAULT_URL="https://raw.githubusercontent.com/community-scripts/ProxmoxVE/main"
|
||||
_cs_boot="${COMMUNITY_SCRIPTS_CORE_DIR:-$(dirname "${BASH_SOURCE[0]}")/../../core}/core/build.func"
|
||||
source "$_cs_boot" 2>/dev/null || source <(curl -fsSL "${COMMUNITY_SCRIPTS_CORE_URL:-https://raw.githubusercontent.com/community-scripts/core/main}/core/build.func")
|
||||
# Copyright (c) 2021-2026 community-scripts ORG
|
||||
# Author: tteck (tteckster) | Co-Author: Slaviša Arežina (tremor021)
|
||||
# License: MIT | https://github.com/community-scripts/ProxmoxVE/raw/main/LICENSE
|
||||
|
||||
45
ct/rockylinux.sh
Normal file
45
ct/rockylinux.sh
Normal file
@@ -0,0 +1,45 @@
|
||||
#!/usr/bin/env bash
|
||||
_CS_DEFAULT_URL="https://raw.githubusercontent.com/community-scripts/ProxmoxVE/main"
|
||||
_cs_boot="${COMMUNITY_SCRIPTS_CORE_DIR:-$(dirname "${BASH_SOURCE[0]}")/../../core}/core/build.func"
|
||||
source "$_cs_boot" 2>/dev/null || source <(curl -fsSL "${COMMUNITY_SCRIPTS_CORE_URL:-https://raw.githubusercontent.com/community-scripts/core/main}/core/build.func")
|
||||
# Copyright (c) 2021-2026 community-scripts ORG
|
||||
# Author: MickLesk (CanbiZ)
|
||||
# License: MIT | https://github.com/community-scripts/ProxmoxVE/raw/main/LICENSE
|
||||
# Source: https://rockylinux.org/
|
||||
|
||||
APP="Rocky Linux"
|
||||
var_tags="${var_tags:-os}"
|
||||
var_cpu="${var_cpu:-1}"
|
||||
var_ram="${var_ram:-512}"
|
||||
var_disk="${var_disk:-4}"
|
||||
var_os="${var_os:-rockylinux}"
|
||||
var_version="${var_version:-10}"
|
||||
#var_arm64="${var_arm64:-no}" # unset = ask the user; set yes/no only when verified
|
||||
var_unprivileged="${var_unprivileged:-1}"
|
||||
|
||||
header_info "$APP"
|
||||
variables
|
||||
color
|
||||
catch_errors
|
||||
|
||||
function update_script() {
|
||||
header_info
|
||||
check_container_storage
|
||||
check_container_resources
|
||||
if [[ ! -d /var ]]; then
|
||||
msg_error "No ${APP} Installation Found!"
|
||||
exit
|
||||
fi
|
||||
msg_info "Updating Rocky Linux LXC"
|
||||
$STD dnf -y upgrade
|
||||
msg_ok "Updated Rocky Linux LXC"
|
||||
msg_ok "Completed successfully!"
|
||||
exit
|
||||
}
|
||||
|
||||
start
|
||||
build_container
|
||||
description
|
||||
|
||||
msg_ok "Completed successfully!\n"
|
||||
msg_custom "🚀" "${GN}" "${APP} setup has been successfully initialized!"
|
||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user