Compare commits

..

18 Commits

Author SHA1 Message Date
57e1912bb3 Github: AutoLabler | ChangeLog (Refactor) 2025-07-09 14:04:19 +02:00
b9ec651a8b Update CHANGELOG.md (#5864)
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2025-07-09 10:36:31 +01:00
475c666eb0 Refactor: FreshRSS (#5847)
* Refactor

* Update freshrss-install.sh
2025-07-09 11:36:03 +02:00
8d419616a6 Update CHANGELOG.md (#5863)
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2025-07-09 10:12:49 +01:00
d087719571 Refactor: Fluid-Calendar (#5846)
* Refactor

* Update fluid-calendar.sh

---------

Co-authored-by: Tobias <96661824+CrazyWolf13@users.noreply.github.com>
2025-07-09 11:12:22 +02:00
df52a2d057 Update CHANGELOG.md (#5862)
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2025-07-09 10:01:52 +01:00
4886196cfa Update CHANGELOG.md (#5861)
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2025-07-09 10:01:18 +01:00
1f37fbb83e BabyBuddy: fix path issues (#5856) 2025-07-09 11:01:01 +02:00
387f2c7bd1 Update CHANGELOG.md (#5860)
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2025-07-09 10:00:43 +01:00
0b949c8151 tools.func: fix an bug while php libapache2-mod breaks (#5857) 2025-07-09 11:00:15 +02:00
fd248e072c Update CHANGELOG.md (#5859)
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2025-07-09 09:57:43 +01:00
e58e50fc15 Refactor (#5840) 2025-07-09 10:57:15 +02:00
5b869b61fc Update CHANGELOG.md (#5858)
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2025-07-09 09:54:01 +01:00
0e2c793f92 Refactor (#5841) 2025-07-09 10:53:35 +02:00
96a8f9df89 Update CHANGELOG.md (#5855)
Some checks failed
Auto Update .app-files / update-app-files (push) Has been cancelled
Create Changelog Pull Request / update-changelog-pull-request (push) Has been cancelled
Close Discussion on PR Merge / close-discussion (push) Has been cancelled
Frontend CI/CD / build (push) Has been cancelled
Frontend CI/CD / deploy (push) Has been cancelled
Sync to Gitea / sync (push) Has been cancelled
Crawl Versions from newreleases.io / crawl-versions (push) Has been cancelled
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2025-07-09 06:42:31 +01:00
4f569c67eb Refactor (#5849) 2025-07-09 07:42:06 +02:00
e856b36306 add workflow_dispatch 2025-07-09 07:39:32 +02:00
42e8623f39 fix autolabler regex 2025-07-09 07:38:29 +02:00
16 changed files with 218 additions and 213 deletions

57
.github/autolabeler-config.json generated vendored
View File

@ -4,6 +4,7 @@
"fileStatus": "added", "fileStatus": "added",
"includeGlobs": [ "includeGlobs": [
"ct/**", "ct/**",
"tools/**",
"install/**", "install/**",
"misc/**", "misc/**",
"turnkey/**", "turnkey/**",
@ -17,16 +18,13 @@
"fileStatus": "modified", "fileStatus": "modified",
"includeGlobs": [ "includeGlobs": [
"ct/**", "ct/**",
"tools/**",
"install/**", "install/**",
"misc/**", "misc/**",
"turnkey/**", "turnkey/**",
"vm/**" "vm/**"
], ],
"excludeGlobs": [ "excludeGlobs": []
"misc/build.func",
"misc/install.func",
"misc/api.func"
]
} }
], ],
"delete script": [ "delete script": [
@ -34,6 +32,21 @@
"fileStatus": "removed", "fileStatus": "removed",
"includeGlobs": [ "includeGlobs": [
"ct/**", "ct/**",
"tools/**",
"install/**",
"misc/**",
"turnkey/**",
"vm/**"
],
"excludeGlobs": []
}
],
"breaking change": [
{
"fileStatus": null,
"includeGlobs": [
"ct/**",
"tools/**",
"install/**", "install/**",
"misc/**", "misc/**",
"turnkey/**", "turnkey/**",
@ -46,11 +59,7 @@
{ {
"fileStatus": null, "fileStatus": null,
"includeGlobs": [ "includeGlobs": [
"*.md", "*.md"
".github/**",
"misc/*.func",
"misc/create_lxc.sh",
"api/**"
], ],
"excludeGlobs": [] "excludeGlobs": []
} }
@ -62,7 +71,9 @@
"misc/*.func", "misc/*.func",
"misc/create_lxc.sh" "misc/create_lxc.sh"
], ],
"excludeGlobs": [] "excludeGlobs": [
"misc/api.func"
]
} }
], ],
"website": [ "website": [
@ -71,7 +82,9 @@
"includeGlobs": [ "includeGlobs": [
"frontend/**" "frontend/**"
], ],
"excludeGlobs": [] "excludeGlobs": [
"frontend/public/json/**"
]
} }
], ],
"api": [ "api": [
@ -102,26 +115,6 @@
"excludeGlobs": [] "excludeGlobs": []
} }
], ],
"high risk": [
{
"fileStatus": null,
"includeGlobs": [
"misc/build.func",
"misc/install.func",
"misc/create_lxc.sh"
],
"excludeGlobs": []
}
],
"documentation": [
{
"fileStatus": null,
"includeGlobs": [
"*.md"
],
"excludeGlobs": []
}
],
"addon": [ "addon": [
{ {
"fileStatus": null, "fileStatus": null,

120
.github/changelog-pr-config.json generated vendored
View File

@ -1,112 +1,148 @@
[ [
{ {
"title": "🆕 New Scripts", "title": "🆕 New Scripts",
"labels": ["new script"] "labels": [
"new script"
]
}, },
{ {
"title": "🚀 Updated Scripts", "title": "🚀 Updated Scripts",
"labels": ["update script"], "labels": [
"update script"
],
"subCategories": [ "subCategories": [
{ {
"title": "🐞 Bug Fixes", "title": "🐞 Bug Fixes",
"labels": ["bugfix"], "labels": [
"notes" : [] "bugfix"
],
"notes": []
}, },
{ {
"title": "✨ New Features", "title": "✨ New Features",
"labels": ["feature"], "labels": [
"notes" : [] "feature"
],
"notes": []
}, },
{ {
"title": "💥 Breaking Changes", "title": "💥 Breaking Changes",
"labels": ["breaking change"], "labels": [
"notes" : [] "breaking change"
],
"notes": []
}, },
{ {
"title": "🔧 Refactor", "title": "🔧 Refactor",
"labels": ["refactor"], "labels": [
"notes" : [] "refactor"
],
"notes": []
} }
] ]
}, },
{ {
"title": "🧰 Maintenance", "title": "🧰 Maintenance",
"labels": ["maintenance"], "labels": [
"maintenance"
],
"subCategories": [ "subCategories": [
{ {
"title": "🐞 Bug Fixes", "title": "🐞 Bug Fixes",
"labels": ["bugfix"], "labels": [
"notes" : [] "bugfix"
],
"notes": []
}, },
{ {
"title": "✨ New Features", "title": "✨ New Features",
"labels": ["feature"], "labels": [
"notes" : [] "feature"
],
"notes": []
}, },
{ {
"title": "💥 Breaking Changes", "title": "💥 Breaking Changes",
"labels": ["breaking change"], "labels": [
"notes" : [] "breaking change"
],
"notes": []
}, },
{ {
"title": "📡 API", "title": "📡 API",
"labels": ["api"], "labels": [
"notes" : [] "api"
],
"notes": []
}, },
{ {
"title": "💾 Core", "title": "💾 Core",
"labels": ["core"], "labels": [
"notes" : [] "core"
],
"notes": []
}, },
{ {
"title": "📂 Github", "title": "📂 Github",
"labels": ["github"], "labels": [
"notes" : [] "github"
],
"notes": []
}, },
{ {
"title" :"📝 Documentation", "title": "📝 Documentation",
"labels": ["documentation"], "labels": [
"notes" : [] "maintenance"
],
"notes": []
}, },
{ {
"title" :"🔧 Refactor", "title": "🔧 Refactor",
"labels": ["refactor"], "labels": [
"notes" : [] "refactor"
],
"notes": []
} }
] ]
}, },
{ {
"title": "🌐 Website", "title": "🌐 Website",
"labels": ["website"], "labels": [
"website"
],
"subCategories": [ "subCategories": [
{ {
"title": "🐞 Bug Fixes", "title": "🐞 Bug Fixes",
"labels": ["bugfix"], "labels": [
"notes" : [] "bugfix"
],
"notes": []
}, },
{ {
"title": "✨ New Features", "title": "✨ New Features",
"labels": ["feature"], "labels": [
"notes" : [] "feature"
],
"notes": []
}, },
{ {
"title": "💥 Breaking Changes", "title": "💥 Breaking Changes",
"labels": ["breaking change"], "labels": [
"notes" : [] "breaking change"
],
"notes": []
}, },
{ {
"title": "📝 Script Information", "title": "📝 Script Information",
"labels": ["json"], "labels": [
"notes" : [] "json"
],
"notes": []
} }
] ]
}, },
{ {
"title": "❔ Unlabelled", "title": "❔ Unlabelled",
"labels": [] "labels": []
},
{
"title": "💥 Breaking Changes",
"labels": ["breaking change"]
} }
] ]

27
.github/workflows/autolabeler.yml generated vendored
View File

@ -1,6 +1,7 @@
name: Auto Label Pull Requests name: Auto Label Pull Requests
on: on:
workflow_dispatch:
pull_request_target: pull_request_target:
branches: ["main"] branches: ["main"]
types: [opened, synchronize, reopened, edited] types: [opened, synchronize, reopened, edited]
@ -33,7 +34,7 @@ jobs:
const autolabelerConfig = JSON.parse(fileContent); const autolabelerConfig = JSON.parse(fileContent);
const prNumber = context.payload.pull_request.number; const prNumber = context.payload.pull_request.number;
const prBody = context.payload.pull_request.body.toLowerCase(); const prBody = context.payload.pull_request.body || "";
let labelsToAdd = new Set(); let labelsToAdd = new Set();
@ -73,19 +74,35 @@ jobs:
"✨ **New feature**": "feature", "✨ **New feature**": "feature",
"💥 **Breaking change**": "breaking change", "💥 **Breaking change**": "breaking change",
"🆕 **New script**": "new script", "🆕 **New script**": "new script",
"🌍 **Website update**": "website", "🌍 **Website update**": "website", // handled special
"🔧 **Refactoring / Code Cleanup**": "refactor", "🔧 **Refactoring / Code Cleanup**": "refactor",
"📝 **Documentation update**": "documentation" "📝 **Documentation update**": "documentation" // mapped to maintenance
}; };
for (const [checkbox, label] of Object.entries(templateLabelMappings)) { for (const [checkbox, label] of Object.entries(templateLabelMappings)) {
const escapedCheckbox = checkbox.replace(/([.*+?^=!:${}()|[\]\/\\])/g, "\\$1"); const escapedCheckbox = checkbox.replace(/([.*+?^=!:${}()|[\]\/\\])/g, "\\$1");
const regex = new RegExp(`- \[(x|X)\]\s*.*${escapedCheckbox}`, "i"); const regex = new RegExp(`- \\[(x|X)\\]\\s*${escapedCheckbox}`, "i");
if (regex.test(prBody)) { if (regex.test(prBody)) {
labelsToAdd.add(label); if (label === "website") {
const hasJson = prFiles.some((f) => f.filename.startsWith("frontend/public/json/"));
const hasUpdateScript = labelsToAdd.has("update script");
const hasContentLabel = ["bugfix", "feature", "refactor"].some((l) => labelsToAdd.has(l));
if (!(hasUpdateScript && hasContentLabel)) {
labelsToAdd.add(hasJson ? "json" : "website");
}
} else if (label === "documentation") {
labelsToAdd.add("maintenance");
} else {
labelsToAdd.add(label);
}
} }
} }
} }
if (labelsToAdd.size === 0) {
labelsToAdd.add("needs triage");
}
if (labelsToAdd.size > 0) { if (labelsToAdd.size > 0) {
await github.rest.issues.addLabels({ await github.rest.issues.addLabels({

2
.github/workflows/changelog-pr.yml generated vendored
View File

@ -80,7 +80,7 @@ jobs:
{ title: "💥 Breaking Changes", labels: ["breaking change"], notes: [] }, { title: "💥 Breaking Changes", labels: ["breaking change"], notes: [] },
{ title: "📡 API", labels: ["api"], notes: [] }, { title: "📡 API", labels: ["api"], notes: [] },
{ title: "Github", labels: ["github"], notes: [] }, { title: "Github", labels: ["github"], notes: [] },
{ title: "📝 Documentation", labels: ["documentation"], notes: [] }, { title: "📝 Documentation", labels: ["maintenance"], notes: [] },
{ title: "🔧 Refactor", labels: ["refactor"], notes: [] } { title: "🔧 Refactor", labels: ["refactor"], notes: [] }
] : ] :
obj.labels.includes("website") ? [ obj.labels.includes("website") ? [

View File

@ -12,6 +12,21 @@ Exercise vigilance regarding copycat or coat-tailing sites that seek to exploit
## 2025-07-09 ## 2025-07-09
### 🚀 Updated Scripts
- #### 🐞 Bug Fixes
- BabyBuddy: fix path issues for update [@MickLesk](https://github.com/MickLesk) ([#5856](https://github.com/community-scripts/ProxmoxVE/pull/5856))
- tools.func: fix an bug while php libapache2-mod breaks [@MickLesk](https://github.com/MickLesk) ([#5857](https://github.com/community-scripts/ProxmoxVE/pull/5857))
- #### 🔧 Refactor
- Refactor: FreshRSS [@tremor021](https://github.com/tremor021) ([#5847](https://github.com/community-scripts/ProxmoxVE/pull/5847))
- Refactor: Fluid-Calendar [@tremor021](https://github.com/tremor021) ([#5846](https://github.com/community-scripts/ProxmoxVE/pull/5846))
- Refactor: EMQX [@tremor021](https://github.com/tremor021) ([#5840](https://github.com/community-scripts/ProxmoxVE/pull/5840))
- Refactor: Excalidraw [@tremor021](https://github.com/tremor021) ([#5841](https://github.com/community-scripts/ProxmoxVE/pull/5841))
- Refactor: gatus [@tremor021](https://github.com/tremor021) ([#5849](https://github.com/community-scripts/ProxmoxVE/pull/5849))
## 2025-07-08 ## 2025-07-08
### 🚀 Updated Scripts ### 🚀 Updated Scripts

View File

@ -38,7 +38,7 @@ function update_script() {
msg_ok "Services Stopped" msg_ok "Services Stopped"
msg_info "Cleaning old files" msg_info "Cleaning old files"
cp babybuddy/settings/production.py /tmp/production.py.bak cp /opt/babybuddy/babybuddy/settings/production.py /tmp/production.py.bak
find . -mindepth 1 -maxdepth 1 ! -name '.venv' -exec rm -rf {} + find . -mindepth 1 -maxdepth 1 ! -name '.venv' -exec rm -rf {} +
msg_ok "Cleaned old files" msg_ok "Cleaned old files"
@ -46,7 +46,7 @@ function update_script() {
msg_info "Updating ${APP} to v${RELEASE}" msg_info "Updating ${APP} to v${RELEASE}"
cd /opt/babybuddy cd /opt/babybuddy
mv /tmp/production.py.bak babybuddy/settings/production.py mv /tmp/production.py.bak /opt/babybuddy/babybuddy/settings/production.py
source .venv/bin/activate source .venv/bin/activate
$STD uv pip install -r requirements.txt $STD uv pip install -r requirements.txt
$STD python manage.py migrate $STD python manage.py migrate

View File

@ -28,20 +28,16 @@ function update_script() {
msg_error "No ${APP} Installation Found!" msg_error "No ${APP} Installation Found!"
exit exit
fi fi
RELEASE=$(curl -fsSL https://api.github.com/repos/excalidraw/excalidraw/releases/latest | grep "tag_name" | awk '{print substr($2, 3, length($2)-4) }') RELEASE=$(curl -fsSL https://api.github.com/repos/excalidraw/excalidraw/releases/latest | grep "tag_name" | awk '{print substr($2, 3, length($2)-4) }')
if [[ "${RELEASE}" != "$(cat /opt/excalidraw_version.txt)" ]] || [[ ! -f /opt/excalidraw_version.txt ]]; then if [[ "${RELEASE}" != "$(cat ~/.excalidraw 2>/dev/null)" ]] || [[ ! -f ~/.excalidraw ]]; then
msg_info "Stopping $APP" msg_info "Stopping $APP"
systemctl stop excalidraw systemctl stop excalidraw
msg_ok "Stopped $APP" msg_ok "Stopped $APP"
msg_info "Updating $APP to v${RELEASE}"
cd /tmp
temp_file=$(mktemp)
curl -fsSL "https://github.com/excalidraw/excalidraw/archive/refs/tags/v${RELEASE}.tar.gz" -o "$temp_file"
tar xzf $temp_file
rm -rf /opt/excalidraw rm -rf /opt/excalidraw
mv excalidraw-${RELEASE} /opt/excalidraw fetch_and_deploy_gh_release "excalidraw" "excalidraw/excalidraw"
msg_info "Updating $APP to v${RELEASE}"
cd /opt/excalidraw cd /opt/excalidraw
$STD yarn $STD yarn
msg_ok "Updated $APP to v${RELEASE}" msg_ok "Updated $APP to v${RELEASE}"
@ -50,11 +46,6 @@ function update_script() {
systemctl start excalidraw systemctl start excalidraw
msg_ok "Started $APP" msg_ok "Started $APP"
msg_info "Cleaning Up"
rm -rf $temp_file
msg_ok "Cleanup Completed"
echo "${RELEASE}" >/opt/excalidraw_version.txt
msg_ok "Update Successful" msg_ok "Update Successful"
else else
msg_ok "No update required. ${APP} is already at v${RELEASE}" msg_ok "No update required. ${APP} is already at v${RELEASE}"

View File

@ -20,51 +20,43 @@ color
catch_errors catch_errors
function update_script() { function update_script() {
header_info header_info
check_container_storage check_container_storage
check_container_resources check_container_resources
if [[ ! -d /opt/fluid-calendar ]]; then if [[ ! -d /opt/fluid-calendar ]]; then
msg_error "No ${APP} Installation Found!" msg_error "No ${APP} Installation Found!"
exit
fi
RELEASE=$(curl -fsSL https://api.github.com/repos/dotnetfactory/fluid-calendar/releases/latest | grep "tag_name" | awk '{print substr($2, 3, length($2)-4) }')
if [[ "${RELEASE}" != "$(cat /opt/${APP}_version.txt)" ]] || [[ ! -f /opt/${APP}_version.txt ]]; then
msg_info "Stopping $APP"
systemctl stop fluid-calendar.service
msg_ok "Stopped $APP"
msg_info "Updating $APP to v${RELEASE}"
cp /opt/fluid-calendar/.env /opt/fluid.env
rm -rf /opt/fluid-calendar
tmp_file=$(mktemp)
curl -fsSL "https://github.com/dotnetfactory/fluid-calendar/archive/refs/tags/v${RELEASE}.zip" -o "$tmp_file"
$STD unzip $tmp_file
mv ${APP}-${RELEASE}/ /opt/fluid-calendar
mv /opt/fluid.env /opt/fluid-calendar/.env
cd /opt/fluid-calendar
export NEXT_TELEMETRY_DISABLED=1
$STD npm install --legacy-peer-deps
$STD npm run prisma:generate
$STD npx prisma migrate deploy
$STD npm run build:os
msg_ok "Updated $APP to v${RELEASE}"
msg_info "Starting $APP"
systemctl start fluid-calendar.service
msg_ok "Started $APP"
msg_info "Cleaning Up"
rm -rf $tmp_file
msg_ok "Cleanup Completed"
echo "${RELEASE}" >/opt/${APP}_version.txt
msg_ok "Update Successful"
else
msg_ok "No update required. ${APP} is already at v${RELEASE}"
fi
exit exit
fi
RELEASE=$(curl -fsSL https://api.github.com/repos/dotnetfactory/fluid-calendar/releases/latest | grep "tag_name" | awk '{print substr($2, 3, length($2)-4) }')
if [[ "${RELEASE}" != "$(cat ~/.fluid-calendar 2>/dev/null)" ]] || [[ ! -f ~/.fluid-calendar ]]; then
msg_info "Stopping $APP"
systemctl stop fluid-calendar
msg_ok "Stopped $APP"
cp /opt/fluid-calendar/.env /opt/fluid.env
rm -rf /opt/fluid-calendar
fetch_and_deploy_gh_release "fluid-calendar" "dotnetfactory/fluid-calendar"
msg_info "Updating $APP to v${RELEASE}"
mv /opt/fluid.env /opt/fluid-calendar/.env
cd /opt/fluid-calendar
export NEXT_TELEMETRY_DISABLED=1
$STD npm install --legacy-peer-deps
$STD npm run prisma:generate
$STD npx prisma migrate deploy
$STD npm run build:os
msg_ok "Updated $APP to v${RELEASE}"
msg_info "Starting $APP"
systemctl start fluid-calendar
msg_ok "Started $APP"
msg_ok "Update Successful"
else
msg_ok "No update required. ${APP} is already at v${RELEASE}"
fi
exit
} }
start start

View File

@ -29,35 +29,29 @@ function update_script() {
exit exit
fi fi
RELEASE=$(curl -s https://api.github.com/repos/TwiN/gatus/releases/latest | grep "tag_name" | awk '{print substr($2, 3, length($2)-4) }') RELEASE=$(curl -s https://api.github.com/repos/TwiN/gatus/releases/latest | grep "tag_name" | awk '{print substr($2, 3, length($2)-4) }')
if [[ "${RELEASE}" != "$(cat /opt/${APP}_version.txt)" ]] || [[ ! -f /opt/${APP}_version.txt ]]; then if [[ "${RELEASE}" != "$(cat ~/.gatus 2>/dev/null)" ]] || [[ ! -f ~/.gatus ]]; then
msg_info "Updating $APP" msg_info "Updating $APP"
msg_info "Stopping $APP" msg_info "Stopping $APP"
systemctl stop gatus systemctl stop gatus
msg_ok "Stopped $APP" msg_ok "Stopped $APP"
msg_info "Updating $APP to v${RELEASE}"
mv /opt/gatus/config/config.yaml /opt mv /opt/gatus/config/config.yaml /opt
rm -rf /opt/gatus/* rm -rf /opt/gatus
temp_file=$(mktemp) fetch_and_deploy_gh_release "gatus" "TwiN/gatus"
curl -fsSL "https://github.com/TwiN/gatus/archive/refs/tags/v${RELEASE}.tar.gz" -o "$temp_file"
tar zxf "$temp_file" --strip-components=1 -C /opt/gatus msg_info "Updating $APP to v${RELEASE}"
cd /opt/gatus cd /opt/gatus
$STD go mod tidy $STD go mod tidy
CGO_ENABLED=0 GOOS=linux go build -a -installsuffix cgo -o gatus . CGO_ENABLED=0 GOOS=linux go build -a -installsuffix cgo -o gatus .
setcap CAP_NET_RAW+ep gatus setcap CAP_NET_RAW+ep gatus
mv /opt/config.yaml config mv /opt/config.yaml config
echo "${RELEASE}" >/opt/${APP}_version.txt
msg_ok "Updated $APP to v${RELEASE}" msg_ok "Updated $APP to v${RELEASE}"
msg_info "Starting $APP" msg_info "Starting $APP"
systemctl start gatus systemctl start gatus
msg_ok "Started $APP" msg_ok "Started $APP"
msg_info "Cleaning Up"
rm -f "$temp_file"
msg_ok "Cleanup Completed"
msg_ok "Update Successful" msg_ok "Update Successful"
else else
msg_ok "No update required. ${APP} is already at v${RELEASE}" msg_ok "No update required. ${APP} is already at v${RELEASE}"

View File

@ -35,10 +35,6 @@
{ {
"text": "Setup-Steps: Access Control ➡ Authentication ➡ Create ➡ Next ➡ Next ➡ Create ➡ Users ➡ Add ➡ Username / Password (to authenicate with MQTT) ➡ Save. You're now ready to enjoy a high-performance MQTT Broker.", "text": "Setup-Steps: Access Control ➡ Authentication ➡ Create ➡ Next ➡ Next ➡ Create ➡ Users ➡ Add ➡ Username / Password (to authenicate with MQTT) ➡ Save. You're now ready to enjoy a high-performance MQTT Broker.",
"type": "info" "type": "info"
},
{
"text": "WARNING: Installation sources scripts outside of Community Scripts repo. Please check the source before installing.",
"type": "warning"
} }
] ]
} }

View File

@ -13,16 +13,23 @@ setting_up_container
network_check network_check
update_os update_os
msg_info "Installing dependencies"
$STD apt-get install -y \
apt-transport-https \
ca-certificates \
lsb-release
msg_ok "Installed dependencies"
msg_info "Installing EMQX" msg_info "Installing EMQX"
$STD bash <(curl -fsSL https://packagecloud.io/install/repositories/emqx/emqx/script.deb.sh) curl -fsSL https://packagecloud.io/emqx/emqx/gpgkey | gpg --dearmor -o /usr/share/keyrings/emqx-archive-keyring.gpg
echo "deb [arch=amd64 signed-by=/usr/share/keyrings/emqx-archive-keyring.gpg] https://packagecloud.io/emqx/emqx/debian/ bookworm main" >/etc/apt/sources.list.d/emqx.list
$STD apt-get install -y emqx $STD apt-get install -y emqx
$STD systemctl enable --now emqx
msg_ok "Installed EMQX" msg_ok "Installed EMQX"
motd_ssh motd_ssh
customize customize
msg_info "Cleaning up" msg_info "Cleaning up"
apt-get autoremove >/dev/null $STD apt-get autoremove
apt-get autoclean >/dev/null $STD apt-get autoclean
msg_ok "Cleaned" msg_ok "Cleaned"

View File

@ -14,21 +14,15 @@ network_check
update_os update_os
msg_info "Installing Dependencies" msg_info "Installing Dependencies"
$STD apt-get install -y \ $STD apt-get install -y xdg-utils
xdg-utils
msg_ok "Installed Dependencies" msg_ok "Installed Dependencies"
NODE_VERSION="22" NODE_MODULE="yarn@latest" setup_nodejs NODE_VERSION="22" NODE_MODULE="yarn@latest" setup_nodejs
fetch_and_deploy_gh_release "excalidraw" "excalidraw/excalidraw"
msg_info "Setup Excalidraw" msg_info "Configuring Excalidraw"
temp_file=$(mktemp)
RELEASE=$(curl -fsSL https://api.github.com/repos/excalidraw/excalidraw/releases/latest | grep "tag_name" | awk '{print substr($2, 3, length($2)-4) }')
curl -fsSL "https://github.com/excalidraw/excalidraw/archive/refs/tags/v${RELEASE}.tar.gz" -o "$temp_file"
tar xzf $temp_file
mv excalidraw-${RELEASE} /opt/excalidraw
cd /opt/excalidraw cd /opt/excalidraw
$STD yarn $STD yarn
echo "${RELEASE}" >/opt/excalidraw_version.txt
msg_ok "Setup Excalidraw" msg_ok "Setup Excalidraw"
msg_info "Creating Service" msg_info "Creating Service"
@ -53,7 +47,6 @@ motd_ssh
customize customize
msg_info "Cleaning up" msg_info "Cleaning up"
rm -f $temp_file
$STD apt-get -y autoremove $STD apt-get -y autoremove
$STD apt-get -y autoclean $STD apt-get -y autoclean
msg_ok "Cleaned" msg_ok "Cleaned"

View File

@ -14,17 +14,11 @@ network_check
update_os update_os
msg_info "Installing Dependencies" msg_info "Installing Dependencies"
$STD apt-get install -y \ $STD apt-get install -y zip
zip \
postgresql-common
msg_ok "Installed Dependencies" msg_ok "Installed Dependencies"
msg_info "Installing Additional Dependencies" PG_VERSION="17" setup_postgresql
curl -fsSL https://deb.nodesource.com/gpgkey/nodesource-repo.gpg.key | gpg --dearmor -o /etc/apt/keyrings/nodesource.gpg NODE_VERSION="20" setup_nodejs
echo "deb [signed-by=/etc/apt/keyrings/nodesource.gpg] https://deb.nodesource.com/node_20.x nodistro main" >/etc/apt/sources.list.d/nodesource.list
echo "YES" | /usr/share/postgresql-common/pgdg/apt.postgresql.org.sh &>/dev/null
$STD apt-get install -y postgresql-17 nodejs
msg_ok "Installed Additional Dependencies"
msg_info "Setting up Postgresql Database" msg_info "Setting up Postgresql Database"
DB_NAME="fluiddb" DB_NAME="fluiddb"
@ -44,14 +38,9 @@ $STD sudo -u postgres psql -c "ALTER USER $DB_USER WITH SUPERUSER;"
} >>~/$APPLICATION.creds } >>~/$APPLICATION.creds
msg_ok "Set up Postgresql Database" msg_ok "Set up Postgresql Database"
msg_info "Setup ${APPLICATION}" fetch_and_deploy_gh_release "fluid-calendar" "dotnetfactory/fluid-calendar"
tmp_file=$(mktemp)
RELEASE=$(curl -fsSL https://api.github.com/repos/dotnetfactory/fluid-calendar/releases/latest | grep "tag_name" | awk '{print substr($2, 3, length($2)-4) }')
curl -fsSL "https://github.com/dotnetfactory/fluid-calendar/archive/refs/tags/v${RELEASE}.zip" -o "$tmp_file"
$STD unzip $tmp_file
mv ${APPLICATION}-${RELEASE}/ /opt/${APPLICATION}
echo "${RELEASE}" >/opt/${APPLICATION}_version.txt
msg_info "Configuring ${APPLICATION}"
cat <<EOF >/opt/fluid-calendar/.env cat <<EOF >/opt/fluid-calendar/.env
DATABASE_URL="postgresql://${DB_USER}:${DB_PASS}@localhost:5432/${DB_NAME}" DATABASE_URL="postgresql://${DB_USER}:${DB_PASS}@localhost:5432/${DB_NAME}"
@ -72,7 +61,7 @@ $STD npm install --legacy-peer-deps
$STD npm run prisma:generate $STD npm run prisma:generate
$STD npx prisma migrate deploy $STD npx prisma migrate deploy
$STD npm run build:os $STD npm run build:os
msg_ok "Setup ${APPLICATION}" msg_ok "Configuring ${APPLICATION}"
msg_info "Creating Service" msg_info "Creating Service"
cat <<EOF >/etc/systemd/system/fluid-calendar.service cat <<EOF >/etc/systemd/system/fluid-calendar.service
@ -95,7 +84,6 @@ motd_ssh
customize customize
msg_info "Cleaning up" msg_info "Cleaning up"
rm -f $tmp_file
$STD apt-get -y autoremove $STD apt-get -y autoremove
$STD apt-get -y autoclean $STD apt-get -y autoclean
msg_ok "Cleaned" msg_ok "Cleaned"

View File

@ -13,13 +13,7 @@ setting_up_container
network_check network_check
update_os update_os
msg_info "Installing Dependencies" PHP_VERSION="8.2" PHP_MODULE="dom,json,ctype,pgsql,gmp,iconv" PHP_APACHE="YES" setup_php
$STD apt-get install -y \
apache2 \
php-{curl,dom,json,ctype,pgsql,gmp,mbstring,iconv,zip} \
libapache2-mod-php
msg_ok "Installed Dependencies"
PG_VERSION="16" setup_postgresql PG_VERSION="16" setup_postgresql
msg_info "Setting up PostgreSQL" msg_info "Setting up PostgreSQL"
@ -36,17 +30,14 @@ $STD sudo -u postgres psql -c "CREATE DATABASE $DB_NAME WITH OWNER $DB_USER TEMP
} >>~/freshrss.creds } >>~/freshrss.creds
msg_ok "Set up PostgreSQL" msg_ok "Set up PostgreSQL"
msg_info "Installing FreshRSS" fetch_and_deploy_gh_release "freshrss" "FreshRSS/FreshRSS"
RELEASE=$(curl -fsSL https://api.github.com/repos/FreshRSS/FreshRSS/releases/latest | grep "tag_name" | awk '{print substr($2, 2, length($2)-3) }')
cd /opt msg_info "Configuring FreshRSS"
curl -fsSL "https://github.com/FreshRSS/FreshRSS/archive/refs/tags/${RELEASE}.zip" -o "${RELEASE}.zip"
$STD unzip "${RELEASE}.zip"
mv "/opt/FreshRSS-${RELEASE}" /opt/freshrss
cd /opt/freshrss cd /opt/freshrss
chown -R www-data:www-data /opt/freshrss chown -R www-data:www-data /opt/freshrss
chmod -R g+rX /opt/freshrss chmod -R g+rX /opt/freshrss
chmod -R g+w /opt/freshrss/data/ chmod -R g+w /opt/freshrss/data/
msg_ok "Installed FreshRSS" msg_ok "Configured FreshRSS"
msg_info "Setting up cron job for feed refresh" msg_info "Setting up cron job for feed refresh"
cat <<EOF >/etc/cron.d/freshrss-actualize cat <<EOF >/etc/cron.d/freshrss-actualize
@ -83,7 +74,6 @@ motd_ssh
customize customize
msg_info "Cleaning up" msg_info "Cleaning up"
rm -rf "/opt/${RELEASE}.zip"
$STD apt-get -y autoremove $STD apt-get -y autoremove
$STD apt-get -y autoclean $STD apt-get -y autoclean
msg_ok "Cleaned" msg_ok "Cleaned"

View File

@ -20,20 +20,15 @@ $STD apt-get install -y \
msg_ok "Installed Dependencies" msg_ok "Installed Dependencies"
setup_go setup_go
fetch_and_deploy_gh_release "gatus" "TwiN/gatus"
RELEASE=$(curl -s https://api.github.com/repos/TwiN/gatus/releases/latest | grep "tag_name" | awk '{print substr($2, 3, length($2)-4) }') msg_info "Configuring gatus"
msg_info "Setting up gatus v${RELEASE}"
temp_file=$(mktemp)
mkdir -p /opt/gatus
curl -fsSL "https://github.com/TwiN/gatus/archive/refs/tags/v${RELEASE}.tar.gz" -o "$temp_file"
tar zxf "$temp_file" --strip-components=1 -C /opt/gatus
cd /opt/gatus cd /opt/gatus
$STD go mod tidy $STD go mod tidy
CGO_ENABLED=0 GOOS=linux go build -a -installsuffix cgo -o gatus . CGO_ENABLED=0 GOOS=linux go build -a -installsuffix cgo -o gatus .
setcap CAP_NET_RAW+ep gatus setcap CAP_NET_RAW+ep gatus
mv config.yaml config mv config.yaml config
echo "${RELEASE}" >/opt/gatus_version.txt msg_ok "Configured gatus"
msg_ok "Done setting up gatus"
msg_info "Creating Service" msg_info "Creating Service"
cat <<EOF >/etc/systemd/system/gatus.service cat <<EOF >/etc/systemd/system/gatus.service
@ -58,10 +53,6 @@ motd_ssh
customize customize
msg_info "Cleaning up" msg_info "Cleaning up"
rm -f "$temp_file"
$STD apt-get -y autoremove $STD apt-get -y autoremove
$STD apt-get -y autoclean $STD apt-get -y autoclean
msg_ok "Cleaned" msg_ok "Cleaned"
motd_ssh
customize

View File

@ -451,7 +451,7 @@ function setup_php() {
MODULE_LIST+=" php${PHP_VERSION}-fpm" MODULE_LIST+=" php${PHP_VERSION}-fpm"
fi fi
if [[ "$PHP_APACHE" == "YES" ]]; then if [[ "$PHP_APACHE" == "YES" ]]; then
$STD apt-get install -y apache2 $STD apt-get install -y apache2 libapache2-mod-php${PHP_VERSION}
$STD systemctl restart apache2 || true $STD systemctl restart apache2 || true
fi fi
@ -459,6 +459,8 @@ function setup_php() {
if [[ -f /etc/apache2/mods-enabled/php${CURRENT_PHP}.load ]]; then if [[ -f /etc/apache2/mods-enabled/php${CURRENT_PHP}.load ]]; then
$STD a2dismod php${CURRENT_PHP} || true $STD a2dismod php${CURRENT_PHP} || true
fi fi
$STD a2enmod php${PHP_VERSION}
$STD systemctl restart apache2 || true
fi fi
if [[ "$PHP_FPM" == "YES" ]] && [[ -n "$CURRENT_PHP" ]]; then if [[ "$PHP_FPM" == "YES" ]] && [[ -n "$CURRENT_PHP" ]]; then