Compare commits

...

35 Commits

Author SHA1 Message Date
CanbiZ (MickLesk)
f221906523 remove wf - seperate branch 2026-02-24 11:06:12 +01:00
CanbiZ (MickLesk)
4815a44b91 ci: add weekly Node.js version drift check workflow
Scans all install scripts using setup_nodejs, fetches upstream
package.json (engines.node) and Dockerfile (FROM node:XX),
compares with our NODE_VERSION and opens/updates a GitHub issue
on mismatch. Runs weekly on Monday at 06:00 UTC.
2026-02-24 11:03:54 +01:00
CanbiZ (MickLesk)
500d9db558 fix: pin NODE_VERSION for nodecast-tv and wealthfolio
nodecast-tv: NODE_VERSION=20 (upstream Dockerfile uses nodesource/setup_20.x)
wealthfolio: NODE_VERSION=20 (upstream Dockerfile uses node:20-alpine)
2026-02-24 11:03:43 +01:00
CanbiZ (MickLesk)
9d0329ed1f formatting 2026-02-24 11:01:04 +01:00
CanbiZ (MickLesk)
6e0eb1018f bump(node): Node 22 to 24 for Tier 1 projects
Bump Node.js from 22 to 24 in install and ct update scripts for projects
where upstream already uses Node 24 in their Dockerfile/package.json:

- Cross-seed (engines >=24, Dockerfile node:24-alpine)
- Matterbridge (engines >=24.0.0, Dockerfile node:24-trixie-slim)
- Manyfold (volta.node 24.13.0)
- Pangolin (Dockerfile node:24-alpine)
- ROMM (engines 24, nvm install 24)
- SnowShare (Dockerfile node:24-alpine)
- Verdaccio (engines >=18, Dockerfile node:24-alpine)

Also adds missing NODE_VERSION setup_nodejs calls to ct update scripts
for cross-seed, pangolin, romm, snowshare, and manyfold.
2026-02-24 10:56:35 +01:00
community-scripts-pr-app[bot]
72eb8b9575 Update CHANGELOG.md (#12262)
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2026-02-24 08:41:34 +00:00
Tobias
65a67347bd Create stale_pr_close.yml (#12243) 2026-02-24 09:41:06 +01:00
community-scripts-pr-app[bot]
25d54ff69a Update CHANGELOG.md (#12260)
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2026-02-24 08:25:15 +00:00
D12R
5c85c5098e adds further documentation during the installation script. (#12248) 2026-02-24 09:24:44 +01:00
community-scripts-pr-app[bot]
7b8080438d Update CHANGELOG.md (#12258)
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2026-02-24 08:09:46 +00:00
community-scripts-pr-app[bot]
2041371a04 Update CHANGELOG.md (#12257)
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2026-02-24 08:09:19 +00:00
Stefan Tomas
b172301e0f Fix/make searxng updateable (#12207)
* Made update script useable

* Added info messages

* Use $STD prefix for all update commands

* Update ct/searxng.sh

Co-authored-by: Tobias <96661824+CrazyWolf13@users.noreply.github.com>

* Update searxng.sh

---------

Co-authored-by: Stefan Tomas <stefan.tomas@proton.me>
Co-authored-by: Slaviša Arežina <58952836+tremor021@users.noreply.github.com>
Co-authored-by: Tobias <96661824+CrazyWolf13@users.noreply.github.com>
2026-02-24 09:08:56 +01:00
community-scripts-pr-app[bot]
4b6cb1601b Update CHANGELOG.md (#12256)
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2026-02-24 07:32:38 +00:00
Slaviša Arežina
d9f766cca6 PHP bump (#12247) 2026-02-24 08:32:11 +01:00
community-scripts-pr-app[bot]
a4973fa3b7 chore: update github-versions.json (#12254)
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2026-02-24 06:23:48 +00:00
community-scripts-pr-app[bot]
dcbb8490f1 Update CHANGELOG.md (#12252)
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2026-02-24 00:23:06 +00:00
community-scripts-pr-app[bot]
3aa5431302 chore: update github-versions.json (#12251)
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2026-02-24 00:22:45 +00:00
community-scripts-pr-app[bot]
2e753578cd Update .app files (#12239)
Co-authored-by: GitHub Actions <github-actions[bot]@users.noreply.github.com>
2026-02-23 22:44:05 +01:00
community-scripts-pr-app[bot]
483ead9a8b Update CHANGELOG.md (#12242)
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2026-02-23 21:42:28 +00:00
community-scripts-pr-app[bot]
53ee9403cd Update CHANGELOG.md (#12241)
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2026-02-23 21:42:04 +00:00
community-scripts-pr-app[bot]
ed7e71f8c3 Update date in json (#12240)
Co-authored-by: GitHub Actions <github-actions[bot]@users.noreply.github.com>
2026-02-23 21:42:00 +00:00
push-app-to-main[bot]
97d4b3ffc2 SeaweedFS (#12220)
* Add seaweedfs (ct)

* Update seaweedfs.sh

* Add var_fuse variable with default value 'yes'

* Formatting

* Update seaweedfs-install.sh

---------

Co-authored-by: push-app-to-main[bot] <203845782+push-app-to-main[bot]@users.noreply.github.com>
Co-authored-by: CanbiZ (MickLesk) <47820557+MickLesk@users.noreply.github.com>
Co-authored-by: tremor021 <arezina.slavisa@gmail.com>
Co-authored-by: Tobias <96661824+CrazyWolf13@users.noreply.github.com>
2026-02-23 22:41:29 +01:00
community-scripts-pr-app[bot]
e226386c9d Update .app files (#12233)
Co-authored-by: GitHub Actions <github-actions[bot]@users.noreply.github.com>
2026-02-23 19:43:54 +01:00
community-scripts-pr-app[bot]
4e7e348322 Update CHANGELOG.md (#12237)
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2026-02-23 18:26:44 +00:00
community-scripts-pr-app[bot]
0920d56218 chore: update github-versions.json (#12236)
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2026-02-23 18:26:16 +00:00
community-scripts-pr-app[bot]
071420c39a Update CHANGELOG.md (#12235)
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2026-02-23 18:22:14 +00:00
community-scripts-pr-app[bot]
6a7bc481a4 Update CHANGELOG.md (#12234)
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2026-02-23 18:22:00 +00:00
community-scripts-pr-app[bot]
11fb4743cc Update date in json (#12232)
Co-authored-by: GitHub Actions <github-actions[bot]@users.noreply.github.com>
2026-02-23 18:21:45 +00:00
push-app-to-main[bot]
b2a710e673 Sonobarr (#12221)
* Add sonobarr (ct)

* Update script source URL for build function

* Change default var_tags from 'storage' to 'music;discovery'

* Formatting

---------

Co-authored-by: push-app-to-main[bot] <203845782+push-app-to-main[bot]@users.noreply.github.com>
Co-authored-by: CanbiZ (MickLesk) <47820557+MickLesk@users.noreply.github.com>
Co-authored-by: Chris <punk.sand7393@fastmail.com>
Co-authored-by: tremor021 <arezina.slavisa@gmail.com>
2026-02-23 19:21:26 +01:00
community-scripts-pr-app[bot]
49f1f16cba Update CHANGELOG.md (#12229)
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2026-02-23 17:38:17 +00:00
CanbiZ (MickLesk)
8005ddd74f memos: unpin version due new release artifacts (#12224) 2026-02-23 18:37:27 +01:00
community-scripts-pr-app[bot]
2fead98966 Update CHANGELOG.md (#12228)
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2026-02-23 17:26:00 +00:00
Michel Roegl-Brunner
09de4e9ca9 Remove huntarr (#12226)
* huntarr.sh

* huntarr-install.sh löschen

* Delete frontend/public/json/huntarr.json

* Delete ct/headers/huntarr

---------

Co-authored-by: Slaviša Arežina <58952836+tremor021@users.noreply.github.com>
2026-02-23 18:25:24 +01:00
community-scripts-pr-app[bot]
e1815642b2 Update CHANGELOG.md (#12227)
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2026-02-23 17:25:00 +00:00
CanbiZ (MickLesk)
75da6920d5 booklore v2: embed frontend, bump Java to 25, remove nginx (#12223) 2026-02-23 18:24:33 +01:00
39 changed files with 626 additions and 262 deletions

111
.github/workflows/stale_pr_close.yml generated vendored Normal file
View File

@@ -0,0 +1,111 @@
name: Stale PR Management
on:
schedule:
- cron: "0 0 * * *"
workflow_dispatch:
pull_request_target:
types:
- labeled
jobs:
stale-prs:
runs-on: ubuntu-latest
permissions:
pull-requests: write
issues: write
contents: read
steps:
- name: Handle stale PRs
uses: actions/github-script@v7
with:
script: |
const now = new Date();
const owner = context.repo.owner;
const repo = context.repo.repo;
// --- When stale label is added, comment immediately ---
if (context.eventName === "pull_request_target" && context.payload.action === "labeled") {
const label = context.payload.label?.name;
if (label === "stale") {
const author = context.payload.pull_request.user.login;
await github.rest.issues.createComment({
owner,
repo,
issue_number: context.payload.pull_request.number,
body: `@${author} This PR has been marked as stale. It will be closed if no new commits are added in 7 days.`
});
}
return;
}
// --- Scheduled run: check all stale PRs ---
const { data: prs } = await github.rest.pulls.list({
owner,
repo,
state: "open",
per_page: 100
});
for (const pr of prs) {
const hasStale = pr.labels.some(l => l.name === "stale");
if (!hasStale) continue;
// Get timeline events to find when stale label was added
const { data: events } = await github.rest.issues.listEvents({
owner,
repo,
issue_number: pr.number,
per_page: 100
});
// Find the most recent time the stale label was added
const staleLabelEvents = events
.filter(e => e.event === "labeled" && e.label?.name === "stale")
.sort((a, b) => new Date(b.created_at) - new Date(a.created_at));
if (staleLabelEvents.length === 0) continue;
const staleLabelDate = new Date(staleLabelEvents[0].created_at);
const daysSinceStale = (now - staleLabelDate) / (1000 * 60 * 60 * 24);
// Check for new commits since stale label was added
const { data: commits } = await github.rest.pulls.listCommits({
owner,
repo,
pull_number: pr.number
});
const lastCommitDate = new Date(commits[commits.length - 1].commit.author.date);
const author = pr.user.login;
// If there are new commits after the stale label, remove it
if (lastCommitDate > staleLabelDate) {
await github.rest.issues.removeLabel({
owner,
repo,
issue_number: pr.number,
name: "stale"
});
await github.rest.issues.createComment({
owner,
repo,
issue_number: pr.number,
body: `@${author} Recent activity detected. Removing stale label.`
});
}
// If 7 days have passed since stale label, close the PR
else if (daysSinceStale > 7) {
await github.rest.pulls.update({
owner,
repo,
pull_number: pr.number,
state: "closed"
});
await github.rest.issues.createComment({
owner,
repo,
issue_number: pr.number,
body: `@${author} Closing stale PR due to inactivity (no commits for 7 days after stale label).`
});
}
}

View File

@@ -407,19 +407,48 @@ Exercise vigilance regarding copycat or coat-tailing sites that seek to exploit
</details>
## 2026-02-24
### 🚀 Updated Scripts
- adds further documentation during the installation script. [@d12rio](https://github.com/d12rio) ([#12248](https://github.com/community-scripts/ProxmoxVE/pull/12248))
- #### 🐞 Bug Fixes
- Firefly: PHP bump [@tremor021](https://github.com/tremor021) ([#12247](https://github.com/community-scripts/ProxmoxVE/pull/12247))
- #### ✨ New Features
- make searxng updateable [@shtefko](https://github.com/shtefko) ([#12207](https://github.com/community-scripts/ProxmoxVE/pull/12207))
### 📂 Github
- add: workflow to close stale PRs [@CrazyWolf13](https://github.com/CrazyWolf13) ([#12243](https://github.com/community-scripts/ProxmoxVE/pull/12243))
## 2026-02-23
### 🆕 New Scripts
- SparkyFitness ([#12185](https://github.com/community-scripts/ProxmoxVE/pull/12185))
- SeaweedFS ([#12220](https://github.com/community-scripts/ProxmoxVE/pull/12220))
- Sonobarr ([#12221](https://github.com/community-scripts/ProxmoxVE/pull/12221))
- SparkyFitness ([#12185](https://github.com/community-scripts/ProxmoxVE/pull/12185))
- Frigate v16.4 [@MickLesk](https://github.com/MickLesk) ([#11887](https://github.com/community-scripts/ProxmoxVE/pull/11887))
### 🚀 Updated Scripts
- #### ✨ New Features
- memos: unpin version due new release artifacts [@MickLesk](https://github.com/MickLesk) ([#12224](https://github.com/community-scripts/ProxmoxVE/pull/12224))
- core: Enhance signal handling, reported "status" and logs [@MickLesk](https://github.com/MickLesk) ([#12216](https://github.com/community-scripts/ProxmoxVE/pull/12216))
- #### 🔧 Refactor
- booklore v2: embed frontend, bump Java to 25, remove nginx [@MickLesk](https://github.com/MickLesk) ([#12223](https://github.com/community-scripts/ProxmoxVE/pull/12223))
### 🗑️ Deleted Scripts
- Remove: Huntarr (deprecated & Security) [@michelroegl-brunner](https://github.com/michelroegl-brunner) ([#12226](https://github.com/community-scripts/ProxmoxVE/pull/12226))
### 💾 Core
- #### 🔧 Refactor

View File

@@ -30,7 +30,7 @@ function update_script() {
fi
if check_for_gh_release "booklore" "booklore-app/BookLore"; then
JAVA_VERSION="21" setup_java
JAVA_VERSION="25" setup_java
NODE_VERSION="22" setup_nodejs
setup_mariadb
setup_yq
@@ -60,11 +60,16 @@ function update_script() {
$STD npm run build --configuration=production
msg_ok "Built Frontend"
msg_info "Embedding Frontend into Backend"
mkdir -p /opt/booklore/booklore-api/src/main/resources/static
cp -r /opt/booklore/booklore-ui/dist/booklore/browser/* /opt/booklore/booklore-api/src/main/resources/static/
msg_ok "Embedded Frontend into Backend"
msg_info "Building Backend"
cd /opt/booklore/booklore-api
APP_VERSION=$(get_latest_github_release "booklore-app/BookLore")
yq eval ".app.version = \"${APP_VERSION}\"" -i src/main/resources/application.yaml
$STD ./gradlew clean build --no-daemon
$STD ./gradlew clean build -x test --no-daemon
mkdir -p /opt/booklore/dist
JAR_PATH=$(find /opt/booklore/booklore-api/build/libs -maxdepth 1 -type f -name "booklore-api-*.jar" ! -name "*plain*" | head -n1)
if [[ -z "$JAR_PATH" ]]; then
@@ -74,9 +79,22 @@ function update_script() {
cp "$JAR_PATH" /opt/booklore/dist/app.jar
msg_ok "Built Backend"
if systemctl is-active --quiet nginx 2>/dev/null; then
msg_info "Removing Nginx (no longer needed)"
systemctl disable --now nginx
$STD apt-get purge -y nginx nginx-common
msg_ok "Removed Nginx"
fi
if ! grep -q "^SERVER_PORT=" /opt/booklore_storage/.env 2>/dev/null; then
echo "SERVER_PORT=6060" >>/opt/booklore_storage/.env
fi
sed -i 's|ExecStart=/usr/bin/java -jar|ExecStart=/usr/bin/java -XX:+UseG1GC -XX:+UseStringDeduplication -XX:+UseCompactObjectHeaders -jar|' /etc/systemd/system/booklore.service
systemctl daemon-reload
msg_info "Starting Service"
systemctl start booklore
systemctl reload nginx
rm -rf /opt/booklore_bak
msg_ok "Started Service"
msg_ok "Updated successfully!"

View File

@@ -20,26 +20,28 @@ color
catch_errors
function update_script() {
header_info
check_container_storage
check_container_resources
header_info
check_container_storage
check_container_resources
if command -v cross-seed &>/dev/null; then
current_version=$(cross-seed --version)
latest_version=$(npm show cross-seed version)
if [ "$current_version" != "$latest_version" ]; then
msg_info "Updating cross-seed from version v${current_version} to v${latest_version}"
$STD npm install -g cross-seed@latest
systemctl restart cross-seed
msg_ok "Updated successfully!"
else
msg_ok "cross-seed is already at v${current_version}"
fi
NODE_VERSION="24" setup_nodejs
if command -v cross-seed &>/dev/null; then
current_version=$(cross-seed --version)
latest_version=$(npm show cross-seed version)
if [ "$current_version" != "$latest_version" ]; then
msg_info "Updating cross-seed from version v${current_version} to v${latest_version}"
$STD npm install -g cross-seed@latest
systemctl restart cross-seed
msg_ok "Updated successfully!"
else
msg_error "No cross-seed Installation Found!"
exit
msg_ok "cross-seed is already at v${current_version}"
fi
else
msg_error "No cross-seed Installation Found!"
exit
fi
exit
}
start

View File

@@ -28,7 +28,10 @@ function update_script() {
msg_error "No ${APP} Installation Found!"
exit
fi
setup_mariadb
PHP_VERSION="8.5" PHP_APACHE="YES" setup_php
if check_for_gh_release "firefly" "firefly-iii/firefly-iii"; then
systemctl stop apache2
cp /opt/firefly/.env /opt/.env

View File

@@ -1,6 +0,0 @@
__ __
/ /_ __ ______ / /_____ ___________
/ __ \/ / / / __ \/ __/ __ `/ ___/ ___/
/ / / / /_/ / / / / /_/ /_/ / / / /
/_/ /_/\__,_/_/ /_/\__/\__,_/_/ /_/

6
ct/headers/seaweedfs Normal file
View File

@@ -0,0 +1,6 @@
_____ _____________
/ ___/___ ____ __ _____ ___ ____/ / ____/ ___/
\__ \/ _ \/ __ `/ | /| / / _ \/ _ \/ __ / /_ \__ \
___/ / __/ /_/ /| |/ |/ / __/ __/ /_/ / __/ ___/ /
/____/\___/\__,_/ |__/|__/\___/\___/\__,_/_/ /____/

6
ct/headers/sonobarr Normal file
View File

@@ -0,0 +1,6 @@
__
_________ ____ ____ / /_ ____ ___________
/ ___/ __ \/ __ \/ __ \/ __ \/ __ `/ ___/ ___/
(__ ) /_/ / / / / /_/ / /_/ / /_/ / / / /
/____/\____/_/ /_/\____/_.___/\__,_/_/ /_/

View File

@@ -28,6 +28,8 @@ function update_script() {
exit
fi
NODE_VERSION="24" NODE_MODULE="yarn" setup_nodejs
if check_for_gh_release "manyfold" "manyfold3d/manyfold"; then
msg_info "Stopping Services"
systemctl stop manyfold.target manyfold-rails.1 manyfold-default_worker.1 manyfold-performance_worker.1

View File

@@ -29,7 +29,7 @@ function update_script() {
fi
$STD apt update
$STD apt upgrade -y
NODE_VERSION="22" NODE_MODULE="matterbridge" setup_nodejs
NODE_VERSION="24" NODE_MODULE="matterbridge" setup_nodejs
msg_ok "Updated successfully!"
exit
}

View File

@@ -27,12 +27,12 @@ function update_script() {
msg_error "No ${APP} Installation Found!"
exit
fi
if check_for_gh_release "memos" "usememos/memos" "v0.25.3"; then
if check_for_gh_release "memos" "usememos/memos"; then
msg_info "Stopping service"
systemctl stop memos
msg_ok "Service stopped"
fetch_and_deploy_gh_release "memos" "usememos/memos" "prebuild" "v0.25.3" "/opt/memos" "memos*linux_amd64.tar.gz"
fetch_and_deploy_gh_release "memos" "usememos/memos" "prebuild" "latest" "/opt/memos" "memos*linux_amd64.tar.gz"
msg_info "Starting service"
systemctl start memos

View File

@@ -29,6 +29,8 @@ function update_script() {
exit
fi
NODE_VERSION="24" setup_nodejs
if check_for_gh_release "pangolin" "fosrl/pangolin"; then
msg_info "Stopping Service"
systemctl stop pangolin

View File

@@ -20,48 +20,50 @@ color
catch_errors
function update_script() {
header_info
check_container_storage
check_container_resources
header_info
check_container_storage
check_container_resources
if [[ ! -d /opt/romm ]]; then
msg_error "No ${APP} Installation Found!"
exit
fi
if check_for_gh_release "romm" "rommapp/romm"; then
msg_info "Stopping Services"
systemctl stop romm-backend romm-worker romm-scheduler romm-watcher
msg_ok "Stopped Services"
msg_info "Backing up configuration"
cp /opt/romm/.env /opt/romm/.env.backup
msg_ok "Backed up configuration"
fetch_and_deploy_gh_release "romm" "rommapp/romm" "tarball" "latest" "/opt/romm"
msg_info "Updating ROMM"
cp /opt/romm/.env.backup /opt/romm/.env
cd /opt/romm
$STD uv sync --all-extras
cd /opt/romm/backend
$STD uv run alembic upgrade head
cd /opt/romm/frontend
$STD npm install
$STD npm run build
# Merge static assets into dist folder
cp -rf /opt/romm/frontend/assets/* /opt/romm/frontend/dist/assets/
mkdir -p /opt/romm/frontend/dist/assets/romm
ln -sfn /var/lib/romm/resources /opt/romm/frontend/dist/assets/romm/resources
ln -sfn /var/lib/romm/assets /opt/romm/frontend/dist/assets/romm/assets
msg_ok "Updated ROMM"
msg_info "Starting Services"
systemctl start romm-backend romm-worker romm-scheduler romm-watcher
msg_ok "Started Services"
msg_ok "Updated successfully"
fi
if [[ ! -d /opt/romm ]]; then
msg_error "No ${APP} Installation Found!"
exit
fi
NODE_VERSION="24" setup_nodejs
if check_for_gh_release "romm" "rommapp/romm"; then
msg_info "Stopping Services"
systemctl stop romm-backend romm-worker romm-scheduler romm-watcher
msg_ok "Stopped Services"
msg_info "Backing up configuration"
cp /opt/romm/.env /opt/romm/.env.backup
msg_ok "Backed up configuration"
fetch_and_deploy_gh_release "romm" "rommapp/romm" "tarball" "latest" "/opt/romm"
msg_info "Updating ROMM"
cp /opt/romm/.env.backup /opt/romm/.env
cd /opt/romm
$STD uv sync --all-extras
cd /opt/romm/backend
$STD uv run alembic upgrade head
cd /opt/romm/frontend
$STD npm install
$STD npm run build
# Merge static assets into dist folder
cp -rf /opt/romm/frontend/assets/* /opt/romm/frontend/dist/assets/
mkdir -p /opt/romm/frontend/dist/assets/romm
ln -sfn /var/lib/romm/resources /opt/romm/frontend/dist/assets/romm/resources
ln -sfn /var/lib/romm/assets /opt/romm/frontend/dist/assets/romm/assets
msg_ok "Updated ROMM"
msg_info "Starting Services"
systemctl start romm-backend romm-worker romm-scheduler romm-watcher
msg_ok "Started Services"
msg_ok "Updated successfully"
fi
exit
}
start

View File

@@ -27,12 +27,33 @@ function update_script() {
msg_error "No ${APP} Installation Found!"
exit
fi
msg_ok "There is currently no update available."
# sed -i 's/^\([[:space:]]*limiter:\)[[:space:]]*true/\1 false/' /etc/searxng/settings.yml
# if cd /usr/local/searxng/searxng-src && git pull | grep -q 'Already up to date'; then
# msg_ok "There is currently no update available."
# fi
exit
chown -R searxng:searxng /usr/local/searxng/searxng-src
if su -s /bin/bash -c "git -C /usr/local/searxng/searxng-src pull" searxng | grep -q 'Already up to date'; then
msg_ok "There is currently no update available."
exit
fi
msg_info "Updating SearXNG installation"
msg_info "Stopping Service"
systemctl stop searxng
msg_ok "Stopped Service"
msg_info "Updating SearXNG"
$STD su -s /bin/bash searxng -c '
python3 -m venv /usr/local/searxng/searx-pyenv &&
. /usr/local/searxng/searx-pyenv/bin/activate &&
pip install -U pip setuptools wheel pyyaml lxml msgspec typing_extensions &&
pip install --use-pep517 --no-build-isolation -e /usr/local/searxng/searxng-src
'
msg_ok "Updated SearXNG"
msg_info "Starting Services"
systemctl start searxng
msg_ok "Started Services"
msg_ok "Updated successfully!"
fi
exit
}
start
build_container

View File

@@ -1,18 +1,19 @@
#!/usr/bin/env bash
source <(curl -fsSL https://raw.githubusercontent.com/community-scripts/ProxmoxVE/main/misc/build.func)
# Copyright (c) 2021-2026 community-scripts ORG
# Author: BiluliB
# Author: MickLesk (CanbiZ)
# License: MIT | https://github.com/community-scripts/ProxmoxVE/raw/main/LICENSE
# Source: https://github.com/plexguide/Huntarr.io
# Source: https://github.com/seaweedfs/seaweedfs
APP="huntarr"
var_tags="${var_tags:-arr}"
APP="SeaweedFS"
var_tags="${var_tags:-storage;s3;filesystem}"
var_cpu="${var_cpu:-2}"
var_ram="${var_ram:-1024}"
var_disk="${var_disk:-4}"
var_ram="${var_ram:-2048}"
var_disk="${var_disk:-16}"
var_os="${var_os:-debian}"
var_version="${var_version:-13}"
var_unprivileged="${var_unprivileged:-1}"
var_fuse="${var_fuse:-yes}"
header_info "$APP"
variables
@@ -24,28 +25,20 @@ function update_script() {
check_container_storage
check_container_resources
if [[ ! -f /opt/huntarr/main.py ]]; then
if [[ ! -f /opt/seaweedfs/weed ]]; then
msg_error "No ${APP} Installation Found!"
exit
fi
PYTHON_VERSION="3.12" setup_uv
if check_for_gh_release "huntarr" "plexguide/Huntarr.io"; then
if check_for_gh_release "seaweedfs" "seaweedfs/seaweedfs"; then
msg_info "Stopping Service"
systemctl stop huntarr
systemctl stop seaweedfs
msg_ok "Stopped Service"
ensure_dependencies build-essential
fetch_and_deploy_gh_release "huntarr" "plexguide/Huntarr.io" "tarball"
msg_info "Updating Huntarr"
cd /opt/huntarr
$STD uv pip install -r requirements.txt --python /opt/huntarr/.venv/bin/python
msg_ok "Updated Huntarr"
fetch_and_deploy_gh_release "seaweedfs" "seaweedfs/seaweedfs" "prebuild" "latest" "/opt/seaweedfs" "linux_amd64.tar.gz"
msg_info "Starting Service"
systemctl start huntarr
systemctl start seaweedfs
msg_ok "Started Service"
msg_ok "Updated successfully!"
fi
@@ -56,7 +49,7 @@ start
build_container
description
msg_ok "Completed successfully!\n"
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}:9705${CL}"
echo -e "${TAB}${GATEWAY}${BGN}http://${IP}:9333${CL}"

View File

@@ -28,6 +28,8 @@ function update_script() {
exit
fi
NODE_VERSION="24" setup_nodejs
if check_for_gh_release "snowshare" "TuroYT/snowshare"; then
msg_info "Stopping Service"
systemctl stop snowshare

63
ct/sonobarr.sh Normal file
View File

@@ -0,0 +1,63 @@
#!/usr/bin/env bash
source <(curl -fsSL https://raw.githubusercontent.com/community-scripts/ProxmoxVE/main/misc/build.func)
# Copyright (c) 2021-2026 community-scripts ORG
# Author: GoldenSpringness
# License: MIT | https://github.com/community-scripts/ProxmoxVE/raw/main/LICENSE
# Source: https://github.com/Dodelidoo-Labs/sonobarr
APP="sonobarr"
var_tags="${var_tags:-music;discovery}"
var_cpu="${var_cpu:-1}"
var_ram="${var_ram:-1024}"
var_disk="${var_disk:-20}"
var_os="${var_os:-debian}"
var_version="${var_version:-13}"
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/sonobarr" ]]; then
msg_error "No sonobarr Installation Found!"
exit
fi
PYTHON_VERSION="3.12" setup_uv
if check_for_gh_release "sonobarr" "Dodelidoo-Labs/sonobarr"; then
msg_info "Stopping Service"
systemctl stop sonobarr
msg_ok "Stopped Service"
CLEAN_INSTALL=1 fetch_and_deploy_gh_release "sonobarr" "Dodelidoo-Labs/sonobarr" "tarball"
msg_info "Updating sonobarr"
$STD uv venv -c /opt/sonobarr/venv
$STD source /opt/sonobarr/venv/bin/activate
$STD uv pip install --no-cache-dir -r /opt/sonobarr/requirements.txt
sed -i "/release_version/s/=.*/=$(cat ~/.sonobarr)/" /etc/sonobarr/.env
msg_ok "Updated sonobarr"
msg_info "Starting Service"
systemctl start sonobarr
msg_ok "Started Service"
msg_ok "Updated successfully!"
fi
exit
}
start
build_container
description
msg_ok "Completed Successfully!\n"
echo -e "${CREATING}${GN}sonobarr setup has been successfully initialized!${CL}"
echo -e "${INFO}${YW} Access it using the following URL:${CL}"
echo -e "${TAB}${GATEWAY}${BGN}http://${IP}:5000${CL}"

View File

@@ -33,7 +33,7 @@ function update_script() {
$STD apt upgrade -y
msg_ok "Updated LXC Container"
NODE_VERSION="22" NODE_MODULE="verdaccio" setup_nodejs
NODE_VERSION="24" NODE_MODULE="verdaccio" setup_nodejs
systemctl restart verdaccio
msg_ok "Updated successfully!"
exit

View File

@@ -1,5 +1,5 @@
{
"generated": "2026-02-23T12:14:19Z",
"generated": "2026-02-24T06:23:39Z",
"versions": [
{
"slug": "2fauth",
@@ -25,9 +25,9 @@
{
"slug": "adventurelog",
"repo": "seanmorley15/adventurelog",
"version": "v0.11.0",
"version": "v0.12.0",
"pinned": false,
"date": "2025-09-01T16:19:38Z"
"date": "2026-02-23T14:06:45Z"
},
{
"slug": "alpine-redlib",
@@ -151,9 +151,9 @@
{
"slug": "booklore",
"repo": "booklore-app/BookLore",
"version": "v1.18.5",
"version": "v2.0.1",
"pinned": false,
"date": "2026-01-24T17:15:32Z"
"date": "2026-02-24T04:15:33Z"
},
{
"slug": "bookstack",
@@ -200,9 +200,9 @@
{
"slug": "cleanuparr",
"repo": "Cleanuparr/Cleanuparr",
"version": "v2.7.1",
"version": "v2.7.4",
"pinned": false,
"date": "2026-02-23T09:58:13Z"
"date": "2026-02-23T18:41:16Z"
},
{
"slug": "cloudreve",
@@ -228,9 +228,9 @@
{
"slug": "configarr",
"repo": "raydak-labs/configarr",
"version": "v1.22.0",
"version": "v1.23.0",
"pinned": false,
"date": "2026-02-20T21:55:46Z"
"date": "2026-02-23T12:28:13Z"
},
{
"slug": "convertx",
@@ -249,9 +249,9 @@
{
"slug": "cronicle",
"repo": "jhuckaby/Cronicle",
"version": "v0.9.106",
"version": "v0.9.107",
"pinned": false,
"date": "2026-02-11T17:11:46Z"
"date": "2026-02-23T17:48:27Z"
},
{
"slug": "cronmaster",
@@ -382,9 +382,9 @@
{
"slug": "firefly",
"repo": "firefly-iii/firefly-iii",
"version": "v6.4.23",
"version": "v6.5.0",
"pinned": false,
"date": "2026-02-20T07:02:05Z"
"date": "2026-02-23T19:19:00Z"
},
{
"slug": "fladder",
@@ -438,9 +438,9 @@
{
"slug": "ghostfolio",
"repo": "ghostfolio/ghostfolio",
"version": "2.242.0",
"version": "2.243.0",
"pinned": false,
"date": "2026-02-22T10:01:44Z"
"date": "2026-02-23T19:31:36Z"
},
{
"slug": "gitea",
@@ -452,9 +452,9 @@
{
"slug": "gitea-mirror",
"repo": "RayLabsHQ/gitea-mirror",
"version": "v3.9.2",
"version": "v3.9.4",
"pinned": false,
"date": "2025-11-08T05:36:48Z"
"date": "2026-02-24T06:17:56Z"
},
{
"slug": "glance",
@@ -582,13 +582,6 @@
"pinned": false,
"date": "2025-12-23T14:53:51Z"
},
{
"slug": "huntarr",
"repo": "plexguide/Huntarr.io",
"version": "9.4.1",
"pinned": false,
"date": "2026-02-23T08:46:37Z"
},
{
"slug": "immich-public-proxy",
"repo": "alangrainger/immich-public-proxy",
@@ -620,9 +613,9 @@
{
"slug": "jackett",
"repo": "Jackett/Jackett",
"version": "v0.24.1184",
"version": "v0.24.1193",
"pinned": false,
"date": "2026-02-23T05:55:36Z"
"date": "2026-02-24T05:58:04Z"
},
{
"slug": "jellystat",
@@ -865,9 +858,9 @@
{
"slug": "memos",
"repo": "usememos/memos",
"version": "v0.25.3",
"pinned": true,
"date": "2025-11-25T15:40:41Z"
"version": "v0.26.2",
"pinned": false,
"date": "2026-02-23T13:28:34Z"
},
{
"slug": "metube",
@@ -1124,9 +1117,9 @@
{
"slug": "planka",
"repo": "plankanban/planka",
"version": "v2.0.1",
"version": "v2.0.2",
"pinned": false,
"date": "2026-02-17T15:26:55Z"
"date": "2026-02-23T17:47:15Z"
},
{
"slug": "plant-it",
@@ -1145,9 +1138,9 @@
{
"slug": "pocketid",
"repo": "pocket-id/pocket-id",
"version": "v2.2.0",
"version": "v2.3.0",
"pinned": false,
"date": "2026-01-11T15:01:07Z"
"date": "2026-02-23T19:50:48Z"
},
{
"slug": "privatebin",
@@ -1250,9 +1243,9 @@
{
"slug": "qui",
"repo": "autobrr/qui",
"version": "v1.14.0",
"version": "v1.14.1",
"pinned": false,
"date": "2026-02-21T22:23:46Z"
"date": "2026-02-23T13:13:31Z"
},
{
"slug": "radarr",
@@ -1278,9 +1271,9 @@
{
"slug": "rdtclient",
"repo": "rogerfar/rdt-client",
"version": "v2.0.123",
"version": "v2.0.124",
"pinned": false,
"date": "2026-02-21T23:08:13Z"
"date": "2026-02-24T03:18:03Z"
},
{
"slug": "reactive-resume",
@@ -1352,6 +1345,13 @@
"pinned": false,
"date": "2026-02-12T14:20:56Z"
},
{
"slug": "seaweedfs",
"repo": "seaweedfs/seaweedfs",
"version": "4.13",
"pinned": false,
"date": "2026-02-17T01:09:45Z"
},
{
"slug": "seelf",
"repo": "YuukanOO/seelf",
@@ -1404,16 +1404,16 @@
{
"slug": "snipeit",
"repo": "grokability/snipe-it",
"version": "v8.3.7",
"version": "v8.4.0",
"pinned": false,
"date": "2025-12-12T09:13:40Z"
"date": "2026-02-23T20:59:43Z"
},
{
"slug": "snowshare",
"repo": "TuroYT/snowshare",
"version": "v1.3.6",
"version": "v1.3.7",
"pinned": false,
"date": "2026-02-19T11:06:29Z"
"date": "2026-02-23T15:51:39Z"
},
{
"slug": "sonarr",
@@ -1422,6 +1422,13 @@
"pinned": false,
"date": "2025-11-05T01:56:48Z"
},
{
"slug": "sonobarr",
"repo": "Dodelidoo-Labs/sonobarr",
"version": "0.11.0",
"pinned": false,
"date": "2026-01-21T19:07:21Z"
},
{
"slug": "speedtest-tracker",
"repo": "alexjustesen/speedtest-tracker",
@@ -1446,9 +1453,9 @@
{
"slug": "stirling-pdf",
"repo": "Stirling-Tools/Stirling-PDF",
"version": "v2.5.2",
"version": "v2.5.3",
"pinned": false,
"date": "2026-02-20T23:20:20Z"
"date": "2026-02-23T23:23:39Z"
},
{
"slug": "streamlink-webui",
@@ -1558,9 +1565,9 @@
{
"slug": "traefik",
"repo": "traefik/traefik",
"version": "v3.6.8",
"version": "v3.6.9",
"pinned": false,
"date": "2026-02-11T16:44:37Z"
"date": "2026-02-23T17:21:17Z"
},
{
"slug": "trilium",
@@ -1572,9 +1579,9 @@
{
"slug": "trip",
"repo": "itskovacs/TRIP",
"version": "1.40.0",
"version": "1.41.0",
"pinned": false,
"date": "2026-02-10T20:12:53Z"
"date": "2026-02-23T17:57:31Z"
},
{
"slug": "tududi",
@@ -1586,9 +1593,9 @@
{
"slug": "tunarr",
"repo": "chrisbenincasa/tunarr",
"version": "v1.1.15",
"version": "v1.1.16",
"pinned": false,
"date": "2026-02-19T23:51:17Z"
"date": "2026-02-23T21:24:47Z"
},
{
"slug": "uhf",
@@ -1635,9 +1642,9 @@
{
"slug": "vaultwarden",
"repo": "dani-garcia/vaultwarden",
"version": "1.35.3",
"version": "1.35.4",
"pinned": false,
"date": "2026-02-10T20:37:03Z"
"date": "2026-02-23T21:43:25Z"
},
{
"slug": "victoriametrics",
@@ -1733,16 +1740,16 @@
{
"slug": "wishlist",
"repo": "cmintey/wishlist",
"version": "v0.60.0",
"version": "v0.60.1",
"pinned": false,
"date": "2026-02-10T04:05:26Z"
"date": "2026-02-24T04:01:37Z"
},
{
"slug": "wizarr",
"repo": "wizarrrr/wizarr",
"version": "v2025.12.0",
"version": "v2026.2.0",
"pinned": false,
"date": "2025-12-09T14:30:23Z"
"date": "2026-02-23T19:25:28Z"
},
{
"slug": "writefreely",

View File

@@ -1,36 +0,0 @@
{
"name": "Huntarr",
"slug": "huntarr",
"categories": [
14
],
"date_created": "2025-06-18",
"type": "ct",
"updateable": true,
"privileged": false,
"interface_port": 9705,
"documentation": "https://github.com/plexguide/Huntarr.io/wiki",
"config_path": "/opt/huntarr",
"website": "https://github.com/plexguide/Huntarr.io",
"logo": "https://cdn.jsdelivr.net/gh/selfhst/icons@main/webp/huntarr.webp",
"description": "Huntarr is a tool that automates the search for missing or low-quality media content in your collection. It works seamlessly with applications like Sonarr, Radarr, Lidarr, Readarr, and Whisparr, enhancing their functionality with continuous background scans to identify and update missed or outdated content. Through a user-friendly web interface accessible on port 9705, Huntarr provides real-time statistics, log views, and extensive configuration options. The software is especially useful for users who want to keep their media library up to date by automatically searching for missing episodes or higher-quality versions. Huntarr is well-suited for self-hosted environments and can easily run in LXC containers or Docker setups.",
"disable": false,
"install_methods": [
{
"type": "default",
"script": "ct/huntarr.sh",
"resources": {
"cpu": 2,
"ram": 1024,
"hdd": 4,
"os": "debian",
"version": "13"
}
}
],
"default_credentials": {
"username": null,
"password": null
},
"notes": []
}

View File

@@ -6,7 +6,7 @@
],
"date_created": "2025-08-26",
"type": "ct",
"updateable": false,
"updateable": true,
"privileged": false,
"interface_port": 8888,
"documentation": "https://docs.searxng.org/",

View File

@@ -0,0 +1,48 @@
{
"name": "SeaweedFS",
"slug": "seaweedfs",
"categories": [
11
],
"date_created": "2026-02-23",
"type": "ct",
"updateable": true,
"privileged": false,
"interface_port": 9333,
"documentation": "https://github.com/seaweedfs/seaweedfs/wiki",
"website": "https://seaweedfs.com/",
"logo": "https://cdn.jsdelivr.net/gh/selfhst/icons@main/webp/seaweedfs.webp",
"config_path": "",
"description": "SeaweedFS is a fast distributed storage system for blobs, objects, files, and data lakes, with O(1) disk seek, S3 API, FUSE mount, WebDAV, and cloud tiering support.",
"install_methods": [
{
"type": "default",
"script": "ct/seaweedfs.sh",
"resources": {
"cpu": 2,
"ram": 2048,
"hdd": 16,
"os": "Debian",
"version": "13"
}
}
],
"default_credentials": {
"username": null,
"password": null
},
"notes": [
{
"text": "Master UI available at port 9333, Filer UI at port 8888, S3 API at port 8333.",
"type": "info"
},
{
"text": "Data is stored in /opt/seaweedfs-data.",
"type": "info"
},
{
"text": "FUSE mounting requires fuse3 (pre-installed).",
"type": "info"
}
]
}

View File

@@ -0,0 +1,40 @@
{
"name": "Sonobarr",
"slug": "sonobarr",
"categories": [
14
],
"date_created": "2026-02-23",
"type": "ct",
"updateable": true,
"privileged": false,
"interface_port": 5000,
"documentation": "https://github.com/Dodelidoo-Labs/sonobarr",
"config_path": "/etc/sonobarr/.env",
"website": "https://github.com/Dodelidoo-Labs/sonobarr",
"logo": "https://cdn.jsdelivr.net/gh/selfhst/icons@main/webp/sonobarr.webp",
"description": "Sonobarr marries your existing Lidarr library with Last.fms discovery graph to surface artists you'll actually like. It runs as a Flask + Socket.IO application, ships with a polished Bootstrap UI, and includes admin tooling so folks can share a single instance safely.",
"install_methods": [
{
"type": "default",
"script": "ct/sonobarr.sh",
"resources": {
"cpu": 1,
"ram": 1024,
"hdd": 20,
"os": "Debian",
"version": "13"
}
}
],
"default_credentials": {
"username": null,
"password": null
},
"notes": [
{
"text": "Default generated admin password is in the env file (sonobarr_superadmin_password)",
"type": "info"
}
]
}

View File

@@ -13,11 +13,7 @@ setting_up_container
network_check
update_os
msg_info "Installing Dependencies"
$STD apt install -y nginx
msg_ok "Installed Dependencies"
JAVA_VERSION="21" setup_java
JAVA_VERSION="25" setup_java
NODE_VERSION="22" setup_nodejs
setup_mariadb
setup_yq
@@ -30,6 +26,11 @@ $STD npm install --force
$STD npm run build --configuration=production
msg_ok "Built Frontend"
msg_info "Embedding Frontend into Backend"
mkdir -p /opt/booklore/booklore-api/src/main/resources/static
cp -r /opt/booklore/booklore-ui/dist/booklore/browser/* /opt/booklore/booklore-api/src/main/resources/static/
msg_ok "Embedded Frontend into Backend"
msg_info "Creating Environment"
mkdir -p /opt/booklore_storage/{data,books,bookdrop}
cat <<EOF >/opt/booklore_storage/.env
@@ -41,6 +42,7 @@ DATABASE_PASSWORD=${MARIADB_DB_PASS}
# App Configuration (Spring Boot mapping from app.* properties)
APP_PATH_CONFIG=/opt/booklore_storage/data
APP_BOOKDROP_FOLDER=/opt/booklore_storage/bookdrop
SERVER_PORT=6060
EOF
msg_ok "Created Environment"
@@ -48,7 +50,7 @@ msg_info "Building Backend"
cd /opt/booklore/booklore-api
APP_VERSION=$(get_latest_github_release "booklore-app/BookLore")
yq eval ".app.version = \"${APP_VERSION}\"" -i src/main/resources/application.yaml
$STD ./gradlew clean build --no-daemon
$STD ./gradlew clean build -x test --no-daemon
mkdir -p /opt/booklore/dist
JAR_PATH=$(find /opt/booklore/booklore-api/build/libs -maxdepth 1 -type f -name "booklore-api-*.jar" ! -name "*plain*" | head -n1)
if [[ -z "$JAR_PATH" ]]; then
@@ -58,16 +60,6 @@ fi
cp "$JAR_PATH" /opt/booklore/dist/app.jar
msg_ok "Built Backend"
msg_info "Configuring Nginx"
rm -rf /usr/share/nginx/html
ln -s /opt/booklore/booklore-ui/dist/booklore/browser /usr/share/nginx/html
rm -f /etc/nginx/sites-enabled/default
cp /opt/booklore/nginx.conf /etc/nginx/nginx.conf
sed -i 's/listen \${BOOKLORE_PORT};/listen 6060;/' /etc/nginx/nginx.conf
sed -i 's/listen \[::\]:${BOOKLORE_PORT};/listen [::]:6060;/' /etc/nginx/nginx.conf
systemctl restart nginx
msg_ok "Configured Nginx"
msg_info "Creating Service"
cat <<EOF >/etc/systemd/system/booklore.service
[Unit]
@@ -78,7 +70,7 @@ After=network.target mariadb.service
Type=simple
User=root
WorkingDirectory=/opt/booklore/dist
ExecStart=/usr/bin/java -jar /opt/booklore/dist/app.jar
ExecStart=/usr/bin/java -XX:+UseG1GC -XX:+UseStringDeduplication -XX:+UseCompactObjectHeaders -jar /opt/booklore/dist/app.jar
EnvironmentFile=/opt/booklore_storage/.env
SuccessExitStatus=143
TimeoutStopSec=10

View File

@@ -13,7 +13,7 @@ setting_up_container
network_check
update_os
NODE_VERSION="22" setup_nodejs
NODE_VERSION="24" setup_nodejs
msg_info "Setup Cross-Seed"
$STD npm install cross-seed@latest -g

View File

@@ -21,6 +21,8 @@ msg_ok "Installed Dependencies"
NODE_VERSION="22" NODE_MODULE="yarn" setup_nodejs
echo "${TAB3}It is important to choose the name for your server before you install Synapse, because it cannot be changed later."
echo "${TAB3}The server name determines the “domain” part of user-ids for users on your server: these will all be of the format @user:my.domain.name. It also determines how other matrix servers will reach yours for federation."
read -p "${TAB3}Please enter the name for your server: " servername
msg_info "Installing Element Synapse"

View File

@@ -13,7 +13,7 @@ setting_up_container
network_check
update_os
PHP_VERSION="8.4" PHP_APACHE="YES" setup_php
PHP_VERSION="8.5" PHP_APACHE="YES" setup_php
setup_composer
setup_mariadb
MARIADB_DB_NAME="firefly" MARIADB_DB_USER="firefly" setup_mariadb_db

View File

@@ -1,45 +0,0 @@
#!/usr/bin/env bash
# Copyright (c) 2021-2026 community-scripts ORG
# Author: BiluliB
# License: MIT | https://github.com/community-scripts/ProxmoxVE/raw/main/LICENSE
# Source: https://github.com/plexguide/Huntarr.io
source /dev/stdin <<<"$FUNCTIONS_FILE_PATH"
color
verb_ip6
catch_errors
setting_up_container
network_check
update_os
msg_info "Installing Dependencies"
$STD apt install -y build-essential
msg_ok "Installed Dependencies"
PYTHON_VERSION="3.12" setup_uv
fetch_and_deploy_gh_release "huntarr" "plexguide/Huntarr.io" "tarball"
msg_info "Configure Huntarr"
$STD uv venv --clear /opt/huntarr/.venv
$STD uv pip install --python /opt/huntarr/.venv/bin/python -r /opt/huntarr/requirements.txt
msg_ok "Configured Huntrarr"
msg_info "Creating Service"
cat <<EOF >/etc/systemd/system/huntarr.service
[Unit]
Description=Huntarr Service
After=network.target
[Service]
WorkingDirectory=/opt/huntarr
ExecStart=/opt/huntarr/.venv/bin/python /opt/huntarr/main.py
Restart=always
[Install]
WantedBy=multi-user.target
EOF
systemctl enable -q --now huntarr
msg_ok "Created Service"
motd_ssh
customize
cleanup_lxc

View File

@@ -26,7 +26,7 @@ msg_ok "Installed Dependencies"
setup_imagemagick
PG_VERSION="16" setup_postgresql
PG_DB_NAME="manyfold" PG_DB_USER="manyfold" setup_postgresql_db
NODE_VERSION="22" NODE_MODULE="yarn" setup_nodejs
NODE_VERSION="24" NODE_MODULE="yarn" setup_nodejs
fetch_and_deploy_gh_release "manyfold" "manyfold3d/manyfold" "tarball" "latest" "/opt/manyfold/app"

View File

@@ -15,7 +15,7 @@ update_os
msg_info "Install Matterbridge"
mkdir -p /root/Matterbridge
NODE_VERSION="22" NODE_MODULE="matterbridge" setup_nodejs
NODE_VERSION="24" NODE_MODULE="matterbridge" setup_nodejs
msg_ok "Installed Matterbridge"
msg_info "Creating Service"

View File

@@ -14,7 +14,7 @@ setting_up_container
network_check
update_os
fetch_and_deploy_gh_release "memos" "usememos/memos" "prebuild" "v0.25.3" "/opt/memos" "memos*linux_amd64.tar.gz"
fetch_and_deploy_gh_release "memos" "usememos/memos" "prebuild" "latest" "/opt/memos" "memos*linux_amd64.tar.gz"
mkdir -p /opt/memos_data
msg_info "Creating Service"

View File

@@ -14,7 +14,7 @@ network_check
update_os
fetch_and_deploy_gh_release "nodecast-tv" "technomancer702/nodecast-tv"
setup_nodejs
NODE_VERSION="20" setup_nodejs
msg_info "Installing Dependencies"
$STD apt install -y ffmpeg

View File

@@ -19,7 +19,7 @@ $STD apt install -y \
iptables
msg_ok "Installed Dependencies"
NODE_VERSION="22" setup_nodejs
NODE_VERSION="24" setup_nodejs
fetch_and_deploy_gh_release "pangolin" "fosrl/pangolin" "tarball"
fetch_and_deploy_gh_release "gerbil" "fosrl/gerbil" "singlefile" "latest" "/usr/bin" "gerbil_linux_amd64"
fetch_and_deploy_gh_release "traefik" "traefik/traefik" "prebuild" "latest" "/usr/bin" "traefik_v*_linux_amd64.tar.gz"

View File

@@ -42,7 +42,7 @@ $STD apt install -y \
msg_ok "Installed Dependencies"
PYTHON_VERSION="3.13" setup_uv
NODE_VERSION="22" setup_nodejs
NODE_VERSION="24" setup_nodejs
setup_mariadb
MARIADB_DB_NAME="romm" MARIADB_DB_USER="romm" setup_mariadb_db

View File

@@ -0,0 +1,50 @@
#!/usr/bin/env bash
# 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/seaweedfs/seaweedfs
source /dev/stdin <<<"$FUNCTIONS_FILE_PATH"
color
verb_ip6
catch_errors
setting_up_container
network_check
update_os
msg_info "Installing Dependencies"
$STD apt install -y fuse3
msg_ok "Installed Dependencies"
fetch_and_deploy_gh_release "seaweedfs" "seaweedfs/seaweedfs" "prebuild" "latest" "/opt/seaweedfs" "linux_amd64.tar.gz"
msg_info "Setting up SeaweedFS"
mkdir -p /opt/seaweedfs-data
ln -sf /opt/seaweedfs/weed /usr/local/bin/weed
msg_ok "Set up SeaweedFS"
msg_info "Creating Service"
cat <<EOF >/etc/systemd/system/seaweedfs.service
[Unit]
Description=SeaweedFS Server
After=network.target
[Service]
Type=simple
User=root
WorkingDirectory=/opt/seaweedfs
ExecStart=/opt/seaweedfs/weed server -dir=/opt/seaweedfs-data -master.port=9333 -volume.port=8080 -filer -s3
Restart=on-failure
RestartSec=5
LimitNOFILE=65536
[Install]
WantedBy=multi-user.target
EOF
systemctl enable -q --now seaweedfs
msg_ok "Created Service"
motd_ssh
customize
cleanup_lxc

View File

@@ -13,7 +13,7 @@ setting_up_container
network_check
update_os
NODE_VERSION="22" setup_nodejs
NODE_VERSION="24" setup_nodejs
PG_VERSION="17" setup_postgresql
PG_DB_USER="snowshare" PG_DB_NAME="snowshare" setup_postgresql_db
fetch_and_deploy_gh_release "snowshare" "TuroYT/snowshare" "tarball"

View File

@@ -0,0 +1,52 @@
#!/usr/bin/env bash
# Copyright (c) 2021-2026 community-scripts ORG
# Author: GoldenSpringness
# License: MIT | https://github.com/community-scripts/ProxmoxVE/raw/main/LICENSE
# Source: https://github.com/Dodelidoo-Labs/sonobarr
source /dev/stdin <<<"$FUNCTIONS_FILE_PATH"
color
verb_ip6
catch_errors
setting_up_container
network_check
update_os
fetch_and_deploy_gh_release "sonobarr" "Dodelidoo-Labs/sonobarr" "tarball"
PYTHON_VERSION="3.12" setup_uv
msg_info "Setting up sonobarr"
$STD uv venv -c /opt/sonobarr/venv
source /opt/sonobarr/venv/bin/activate
$STD uv pip install --no-cache-dir -r /opt/sonobarr/requirements.txt
mkdir -p /etc/sonobarr
mv /opt/sonobarr/.sample-env /etc/sonobarr/.env
sed -i "s/^secret_key=.*/secret_key=$(openssl rand -hex 16)/" /etc/sonobarr/.env
sed -i "s/^sonobarr_superadmin_password=.*/sonobarr_superadmin_password=$(openssl rand -hex 16)/" /etc/sonobarr/.env
echo "release_version=$(cat ~/.sonobarr)" >>/etc/sonobarr/.env
echo "sonobarr_config_dir=/etc/sonobarr" >>/etc/sonobarr.env
msg_ok "Set up sonobarr"
msg_info "Creating Service"
cat <<EOF >/etc/systemd/system/sonobarr.service
[Unit]
Description=sonobarr Service
After=network.target
[Service]
WorkingDirectory=/opt/sonobarr/src
EnvironmentFile=/etc/sonobarr/.env
Environment="PATH=/opt/sonobarr/venv/bin"
ExecStart=/bin/bash -c 'gunicorn Sonobarr:app -c ../gunicorn_config.py'
Restart=always
[Install]
WantedBy=multi-user.target
EOF
systemctl enable -q --now sonobarr
msg_ok "Created Service"
motd_ssh
customize
cleanup_lxc

View File

@@ -17,7 +17,7 @@ msg_info "Installing Dependencies"
$STD apt install -y build-essential
msg_ok "Installed Dependencies"
NODE_VERSION="22" NODE_MODULE="verdaccio" setup_nodejs
NODE_VERSION="24" NODE_MODULE="verdaccio" setup_nodejs
msg_info "Configuring Verdaccio"
mkdir -p /opt/verdaccio/config

View File

@@ -23,7 +23,7 @@ $STD apt install -y \
msg_ok "Installed Dependencies"
setup_rust
NODE_MODULE="pnpm" setup_nodejs
NODE_VERSION="20" NODE_MODULE="pnpm" setup_nodejs
fetch_and_deploy_gh_release "wealthfolio" "afadil/wealthfolio" "tarball"
msg_info "Building Frontend (patience)"