Compare commits

...

59 Commits

Author SHA1 Message Date
community-scripts-pr-app[bot]
fef7786714 Update CHANGELOG.md (#7756)
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2025-09-20 00:12:08 +00:00
community-scripts-pr-app[bot]
0dfd337a9a Update versions.json (#7755)
Co-authored-by: GitHub Actions[bot] <github-actions[bot]@users.noreply.github.com>
2025-09-20 02:11:46 +02:00
community-scripts-pr-app[bot]
d99862fa24 Update CHANGELOG.md (#7747)
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2025-09-19 18:52:42 +00:00
Slaviša Arežina
ac08d385c0 SigNoz: Fix wrong URL for Zookeeper (#7742)
* Fix install

* Update signoz-install.sh
2025-09-19 20:52:11 +02:00
community-scripts-pr-app[bot]
7a9de76acb Update CHANGELOG.md (#7745)
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2025-09-19 12:57:29 +00:00
community-scripts-pr-app[bot]
35f3f043a7 Update CHANGELOG.md (#7744)
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2025-09-19 12:57:13 +00:00
community-scripts-pr-app[bot]
4276df26d7 Update date in json (#7743)
Co-authored-by: GitHub Actions <github-actions[bot]@users.noreply.github.com>
2025-09-19 12:57:07 +00:00
push-app-to-main[bot]
5fec573533 Tunarr (#7735)
* 'Add new script'

* Refactor Intel Hardware Acceleration installation script

* Refactor hardware acceleration setup in tunarr-install.sh

Updated prompts and adjusted user group permissions for hardware acceleration setup.

---------

Co-authored-by: push-app-to-main[bot] <203845782+push-app-to-main[bot]@users.noreply.github.com>
Co-authored-by: CanbiZ <47820557+MickLesk@users.noreply.github.com>
2025-09-19 14:56:46 +02:00
community-scripts-pr-app[bot]
ebd269a808 Update versions.json (#7740)
Co-authored-by: GitHub Actions[bot] <github-actions[bot]@users.noreply.github.com>
2025-09-19 14:07:04 +02:00
community-scripts-pr-app[bot]
532c0a95bb Update CHANGELOG.md (#7734)
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2025-09-19 00:12:32 +00:00
community-scripts-pr-app[bot]
c078b11aa9 Update versions.json (#7733)
Co-authored-by: GitHub Actions[bot] <github-actions[bot]@users.noreply.github.com>
2025-09-19 02:12:09 +02:00
community-scripts-pr-app[bot]
ab8b025824 Update CHANGELOG.md (#7729)
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2025-09-18 19:16:16 +00:00
Chris
e2044a0572 Immich: Debian Trixie (#7728)
* Immich: Debian Trixie

- Use Debian Stable repo for all dependencies
- Remove unneeded dependencies
- Replace `libmimalloc2.0` with `libmimalloc3`
- Remove pre-1.140.x workarounds
- Pin an Intel OpenVINO dependency
- Force use of Python3.11 for machine-learning builds
- Unpin custom photo-library revisions
- Remove old vchord patches
- Remove DB collation version refresh
- Exit on detection of Debian 12 or below with message
- Force hardlink as pnpm import method (fixes #7192)

* Update immich.sh

---------

Co-authored-by: Tobias <96661824+CrazyWolf13@users.noreply.github.com>
2025-09-18 21:15:54 +02:00
community-scripts-pr-app[bot]
59e65eaba3 Update CHANGELOG.md (#7727)
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2025-09-18 18:11:19 +00:00
Tobias
a2306d6b32 Delay chmod after updating beszel (#7725) 2025-09-18 20:10:51 +02:00
community-scripts-pr-app[bot]
3e71af1895 Update CHANGELOG.md (#7724)
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2025-09-18 17:04:20 +00:00
Giovanni Pellerano
8a3b41867b Remove redundant globaleaks configuration (#7723) 2025-09-18 19:03:53 +02:00
community-scripts-pr-app[bot]
b4b9efeff2 Update CHANGELOG.md (#7722)
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2025-09-18 13:23:20 +00:00
CanbiZ
5e2168b2d1 Cloudflared: Bump to Debian 13 (#7719) 2025-09-18 15:22:51 +02:00
community-scripts-pr-app[bot]
c00c1deb79 Update CHANGELOG.md (#7721)
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2025-09-18 13:20:42 +00:00
CanbiZ
37e3739bd2 Update AdGuard Home to Debian 13 and improve install (#7720) 2025-09-18 15:20:15 +02:00
community-scripts-pr-app[bot]
f5eda37397 Update versions.json (#7718)
Co-authored-by: GitHub Actions[bot] <github-actions[bot]@users.noreply.github.com>
2025-09-18 14:07:02 +02:00
community-scripts-pr-app[bot]
9e42c801f1 Update .app files (#7717)
Co-authored-by: GitHub Actions <github-actions[bot]@users.noreply.github.com>
2025-09-18 13:26:53 +02:00
community-scripts-pr-app[bot]
e4d6dfc885 Update CHANGELOG.md (#7716)
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2025-09-18 10:57:57 +00:00
Slaviša Arežina
14894f84b6 Alpine-Caddy (#7711) 2025-09-18 12:57:30 +02:00
community-scripts-pr-app[bot]
b5f70e6e77 Update CHANGELOG.md (#7715)
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2025-09-18 10:56:31 +00:00
CanbiZ
2919ce16f1 pve-tool: execute.sh by @jeroenzwart (#7708) 2025-09-18 12:56:01 +02:00
community-scripts-pr-app[bot]
38cf6b2f46 Update CHANGELOG.md (#7714)
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2025-09-18 10:20:34 +00:00
community-scripts-pr-app[bot]
c390fb925d Update CHANGELOG.md (#7713)
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2025-09-18 10:20:15 +00:00
community-scripts-pr-app[bot]
a28fdac3f0 Update date in json (#7712)
Co-authored-by: GitHub Actions <github-actions[bot]@users.noreply.github.com>
2025-09-18 10:20:12 +00:00
push-app-to-main[bot]
41b27b31dc GlobaLeaks (#7707)
Co-authored-by: push-app-to-main[bot] <203845782+push-app-to-main[bot]@users.noreply.github.com>
Co-authored-by: CanbiZ <47820557+MickLesk@users.noreply.github.com>
Co-authored-by: Slaviša Arežina <58952836+tremor021@users.noreply.github.com>
2025-09-18 12:19:52 +02:00
CanbiZ
7ef8afe4d2 Refactor autolabeler workflow to simplify steps 2025-09-18 12:06:04 +02:00
CanbiZ
694d9c203e Refactor AI label review workflow and improve config 2025-09-18 12:03:52 +02:00
CanbiZ
76dcc45e9f Update autolabeler to use environment variable for config 2025-09-18 12:01:42 +02:00
CanbiZ
a0952e9f69 Use jq to load priority config from JSON 2025-09-18 11:58:39 +02:00
community-scripts-pr-app[bot]
3bd6b6e540 Update CHANGELOG.md (#7710)
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2025-09-18 09:53:42 +00:00
community-scripts-pr-app[bot]
61be53cc26 Update CHANGELOG.md (#7709)
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2025-09-18 09:53:28 +00:00
CanbiZ
02eda516df Add label priority configuration for GitHub 2025-09-18 11:53:20 +02:00
CanbiZ
25213fabaa Add AI label review step to autolabeler workflow 2025-09-18 11:53:02 +02:00
Zachary Laughlin
ad8a4f63c4 Add warning note about containerized version limitations (#7704) 2025-09-18 09:30:09 +02:00
community-scripts-pr-app[bot]
bcce0e20c1 Update CHANGELOG.md (#7706)
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2025-09-18 06:55:10 +00:00
Chris
515c4073c4 Gatus: check for GO path before update (#7705) 2025-09-18 08:54:47 +02:00
community-scripts-pr-app[bot]
30e22ff661 Update CHANGELOG.md (#7703)
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2025-09-18 00:12:12 +00:00
community-scripts-pr-app[bot]
8265abfb20 Update versions.json (#7702)
Co-authored-by: GitHub Actions[bot] <github-actions[bot]@users.noreply.github.com>
2025-09-18 02:11:50 +02:00
community-scripts-pr-app[bot]
b40d061f3e Update CHANGELOG.md (#7699)
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2025-09-17 20:09:44 +00:00
Tobias
efe598d6ec beszel: fix: binary permission after upgrade (#7697) 2025-09-17 22:09:17 +02:00
community-scripts-pr-app[bot]
82caa8769e Update CHANGELOG.md (#7696)
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2025-09-17 15:26:48 +00:00
CanbiZ
7961023f8c Improve: SECURITY.md for clarity and detail + Adding PVE9 as supported (#7690) 2025-09-17 17:26:17 +02:00
community-scripts-pr-app[bot]
ea58fdb7e0 Update CHANGELOG.md (#7694)
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2025-09-17 14:43:27 +00:00
community-scripts-pr-app[bot]
238895534a Update CHANGELOG.md (#7693)
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2025-09-17 14:43:07 +00:00
Slaviša Arežina
cc1c2f84ca Refactor: Grist (#7681)
* Refactor

* Refactor
2025-09-17 16:42:54 +02:00
Slaviša Arežina
3aff0d9d7e RabbitMQ: Update repositories (#7689)
* Update repos

* Update

* Update

* Update
2025-09-17 16:42:37 +02:00
community-scripts-pr-app[bot]
7cd332680a Update versions.json (#7688)
Co-authored-by: GitHub Actions[bot] <github-actions[bot]@users.noreply.github.com>
2025-09-17 14:05:41 +02:00
community-scripts-pr-app[bot]
382e679842 Update CHANGELOG.md (#7685)
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2025-09-17 08:17:57 +00:00
hanneshier
a3b5f798de Add docker compose pull for actually updating images (#7682) 2025-09-17 10:17:29 +02:00
community-scripts-pr-app[bot]
c22630c887 Update CHANGELOG.md (#7684)
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2025-09-17 08:04:07 +00:00
CanbiZ
542f260f31 Debian-LXC: Bump to Debian 13 Trixie (#7683) 2025-09-17 10:03:42 +02:00
community-scripts-pr-app[bot]
a40cc130bd Update CHANGELOG.md (#7680)
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2025-09-17 06:57:26 +00:00
Chris
7311f1b843 Bump Immich to v1.142.1 (#7675)
- no changes to script required
2025-09-17 08:57:01 +02:00
41 changed files with 1368 additions and 534 deletions

38
.github/label-priority.json generated vendored Normal file
View File

@@ -0,0 +1,38 @@
{
"priorities": {
"refactor": 3,
"feature": 2,
"bugfix": 1,
"new script": 3,
"update script": 2,
"delete script": 2,
"json": 3,
"website": 2,
"maintenance": 1,
"documentation": 1,
"core": 2,
"api": 2,
"addon": 2,
"pve-tool": 2,
"vm": 2,
"github": 1
},
"conflicts": {
"bugfix": ["refactor"],
"website": ["json"],
"update script": ["new script", "delete script"],
"new script": ["update script", "delete script"],
"delete script": ["new script", "update script"]
},
"rules": {
"always_combine": [
"maintenance",
"core",
"api",
"addon",
"pve-tool",
"vm",
"github"
]
}
}

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

@@ -112,3 +112,119 @@ jobs:
labels: Array.from(labelsToAdd),
});
}
ai-check:
needs: autolabeler
runs-on: ubuntu-latest
permissions:
pull-requests: write
steps:
- name: Checkout repository
uses: actions/checkout@v4
- name: Load priority config
run: |
echo "PRIORITY_JSON=$(jq -c . .github/label-priority.json)" >> $GITHUB_ENV
- name: Fetch PR metadata
id: pr
uses: actions/github-script@v7
with:
script: |
const pr = context.payload.pull_request;
const files = await github.rest.pulls.listFiles({
owner: context.repo.owner,
repo: context.repo.repo,
pull_number: pr.number
});
const prData = {
title: pr.title || "",
body: pr.body || "",
files: files.data.map(f => f.filename)
};
require('fs').writeFileSync(process.env.GITHUB_ENV, `PR_DATA=${JSON.stringify(prData)}\n`, {flag: 'a'});
- name: AI Label Review
id: ai
uses: actions/github-script@v7
env:
OPENAI_API_KEY: ${{ secrets.OPENAI_API_KEY }}
with:
script: |
const prData = JSON.parse(process.env.PR_DATA);
const prompt = `
You are a GitHub labeling bot.
Task:
- Analyze PR title, body, and file list.
- For each possible label, return a confidence score (01).
- If both bugfix and refactor apply, prefer refactor.
- Output JSON: {"labels":[{"name":"bugfix","score":0.9},{"name":"refactor","score":0.6}]}
Valid labels: [new script, update script, delete script, bugfix, feature, maintenance, refactor, website, json, api, core, github, addon, pve-tool, vm].
PR data: ${JSON.stringify(prData)}
`;
const response = await fetch("https://api.openai.com/v1/chat/completions", {
method: "POST",
headers: {
"Content-Type": "application/json",
"Authorization": "Bearer " + process.env.OPENAI_API_KEY,
},
body: JSON.stringify({
model: "gpt-4.1-mini",
messages: [{ role: "user", content: prompt }],
temperature: 0
})
});
const data = await response.json();
const labels = JSON.parse(data.choices[0].message.content).labels;
core.setOutput("labels", JSON.stringify(labels));
- name: Apply AI Labels
uses: actions/github-script@v7
with:
script: |
const raw = JSON.parse('${{ steps.ai.outputs.labels }}');
const prNumber = context.payload.pull_request.number;
const config = JSON.parse(process.env.PRIORITY_JSON);
let toApply = [];
let toSuggest = [];
raw.forEach(l => {
if (l.score >= 0.8) {
const conflicts = config.conflicts[l.name] || [];
const hasStrongerConflict = conflicts.some(c =>
raw.some(x =>
x.name === c &&
x.score >= 0.6 &&
(config.priorities[c] || 0) >= (config.priorities[l.name] || 0)
)
);
if (!hasStrongerConflict) {
toApply.push(l.name);
}
} else if (l.score >= 0.5) {
toSuggest.push(`${l.name} (${Math.round(l.score*100)}%)`);
}
});
if (toApply.length > 0) {
await github.rest.issues.addLabels({
owner: context.repo.owner,
repo: context.repo.repo,
issue_number: prNumber,
labels: toApply
});
}
if (toSuggest.length > 0) {
await github.rest.issues.createComment({
owner: context.repo.owner,
repo: context.repo.repo,
issue_number: prNumber,
body: `🤖 AI suggests these possible labels (uncertain): ${toSuggest.join(", ")}`
});
}

View File

@@ -10,8 +10,76 @@
> [!CAUTION]
Exercise vigilance regarding copycat or coat-tailing sites that seek to exploit the project's popularity for potentially malicious purposes.
## 2025-09-20
## 2025-09-19
### 🆕 New Scripts
- Tunarr ([#7735](https://github.com/community-scripts/ProxmoxVE/pull/7735))
### 🚀 Updated Scripts
- #### 🐞 Bug Fixes
- SigNoz: Fix wrong URL for Zookeeper [@tremor021](https://github.com/tremor021) ([#7742](https://github.com/community-scripts/ProxmoxVE/pull/7742))
## 2025-09-18
### 🆕 New Scripts
- Alpine-Caddy [@tremor021](https://github.com/tremor021) ([#7711](https://github.com/community-scripts/ProxmoxVE/pull/7711))
- pve-tool: execute.sh by @jeroenzwart [@MickLesk](https://github.com/MickLesk) ([#7708](https://github.com/community-scripts/ProxmoxVE/pull/7708))
- GlobaLeaks ([#7707](https://github.com/community-scripts/ProxmoxVE/pull/7707))
### 🚀 Updated Scripts
- #### 🐞 Bug Fixes
- Delay chmod after updating beszel [@CrazyWolf13](https://github.com/CrazyWolf13) ([#7725](https://github.com/community-scripts/ProxmoxVE/pull/7725))
- Remove redundant globaleaks configuration [@evilaliv3](https://github.com/evilaliv3) ([#7723](https://github.com/community-scripts/ProxmoxVE/pull/7723))
- Gatus: check for GO path before update [@vhsdream](https://github.com/vhsdream) ([#7705](https://github.com/community-scripts/ProxmoxVE/pull/7705))
- #### ✨ New Features
- Cloudflared: Bump to Debian 13 [@MickLesk](https://github.com/MickLesk) ([#7719](https://github.com/community-scripts/ProxmoxVE/pull/7719))
- AdGuard Home: Bump to Debian 13 [@MickLesk](https://github.com/MickLesk) ([#7720](https://github.com/community-scripts/ProxmoxVE/pull/7720))
- #### 🔧 Refactor
- Immich: Debian Trixie [@vhsdream](https://github.com/vhsdream) ([#7728](https://github.com/community-scripts/ProxmoxVE/pull/7728))
### 🌐 Website
- #### 📝 Script Information
- Add Warning for Containerized Home Assistant [@ZaxLofful](https://github.com/ZaxLofful) ([#7704](https://github.com/community-scripts/ProxmoxVE/pull/7704))
## 2025-09-17
### 🚀 Updated Scripts
- #### 🐞 Bug Fixes
- beszel: fix: binary permission after upgrade [@CrazyWolf13](https://github.com/CrazyWolf13) ([#7697](https://github.com/community-scripts/ProxmoxVE/pull/7697))
- RabbitMQ: Update repositories [@tremor021](https://github.com/tremor021) ([#7689](https://github.com/community-scripts/ProxmoxVE/pull/7689))
- Komodo: Add docker compose pull for actually updating docker container [@hanneshier](https://github.com/hanneshier) ([#7682](https://github.com/community-scripts/ProxmoxVE/pull/7682))
- #### ✨ New Features
- Debian-LXC: Bump to Debian 13 Trixie [@MickLesk](https://github.com/MickLesk) ([#7683](https://github.com/community-scripts/ProxmoxVE/pull/7683))
- Bump Immich to v1.142.1 [@vhsdream](https://github.com/vhsdream) ([#7675](https://github.com/community-scripts/ProxmoxVE/pull/7675))
- #### 🔧 Refactor
- Refactor: Grist [@tremor021](https://github.com/tremor021) ([#7681](https://github.com/community-scripts/ProxmoxVE/pull/7681))
### 🧰 Maintenance
- #### 📂 Github
- Improve: SECURITY.md for clarity and detail + Adding PVE9 as supported [@MickLesk](https://github.com/MickLesk) ([#7690](https://github.com/community-scripts/ProxmoxVE/pull/7690))
## 2025-09-16
### 🚀 Updated Scripts

View File

@@ -1,8 +1,12 @@
# Security Policy
## Supported Versions
This project currently supports the following versions of Proxmox VE:
This project currently supports the following versions of Proxmox VE (PVE):
| Version | Supported |
| ------- | ------------------ |
| 9.0.x | :white_check_mark: |
| 8.4.x | :white_check_mark: |
| 8.3.x | :white_check_mark: |
| 8.2.x | :white_check_mark: |
@@ -10,15 +14,51 @@ This project currently supports the following versions of Proxmox VE:
| 8.0.x | Limited support* ❕ |
| < 8.0 | :x: |
*Version 8.0.x has limited support. Security updates may not be provided for all issues in this version.
*Version 8.0.x has limited support. Security updates may not be provided for all issues affecting this version.
---
## Reporting a Vulnerability
Security vulnerabilities shouldnt be reported publicly to prevent potential exploitation. Instead, please report any vulnerabilities privately by reaching out directly to us. You can either join our [Discord server](https://discord.gg/jsYVk5JBxq) and send a direct message to a maintainer or contact us via email at contact@community-scripts.org. Be sure to include a detailed description of the vulnerability and the steps to reproduce it. Thank you for helping us keep our project secure!
Security vulnerabilities must not be reported publicly to avoid potential exploitation.
Instead, please report them privately via one of the following channels:
Once a vulnerability has been reported, the project maintainers will review it and acknowledge the report within 7 business days. We will then work to address the vulnerability and provide a fix as soon as possible. Depending on the severity of the issue, a patch may be released immediately or included in the next scheduled update.
- **Discord**: Join our [Discord server](https://discord.gg/jsYVk5JBxq) and send a direct message to a maintainer.
- **Email**: Write to us at **contact@community-scripts.org** with the subject line:
`Vulnerability Report - <Project/Script Name>`.
Please note that not all reported vulnerabilities may be accepted. The project maintainers reserve the right to decline a vulnerability report if it is deemed to be a low-risk issue or if it conflicts with the project's design or architecture. In such cases, we will provide an explanation for the decision.
When reporting a vulnerability, please provide:
If you have any questions or concerns about this security policy, please don't hesitate to contact the project maintainers.
- A clear description of the issue
- Steps to reproduce the vulnerability
- Affected versions or environments
- (Optional) Suggested fixes or workarounds
---
## Response Process
1. **Acknowledgment**
- We will review and acknowledge your report within **7 business days**.
2. **Assessment**
- The maintainers will verify the issue and classify its severity.
- Depending on impact, a patch may be released immediately or scheduled for the next update.
3. **Resolution**
- Critical security fixes will be prioritized.
- Non-critical issues may be deferred or declined with an explanation.
---
## Disclaimer
Not all reported issues will be treated as vulnerabilities.
Reports may be declined if they are deemed:
- Low-risk
- Out of project scope
- Conflicting with intended design or architecture
---
If you have any questions or concerns about this security policy, please reach out to the maintainers through the contact options above.

View File

@@ -11,7 +11,7 @@ var_cpu="${var_cpu:-1}"
var_ram="${var_ram:-512}"
var_disk="${var_disk:-2}"
var_os="${var_os:-debian}"
var_version="${var_version:-12}"
var_version="${var_version:-13}"
var_unprivileged="${var_unprivileged:-1}"
header_info "$APP"
@@ -27,7 +27,7 @@ function update_script() {
msg_error "No ${APP} Installation Found!"
exit
fi
msg_error "Adguard Home should be updated via the user interface."
msg_error "Adguard Home can only be updated via the user interface."
exit
}

47
ct/alpine-caddy.sh Normal file
View File

@@ -0,0 +1,47 @@
#!/usr/bin/env bash
source <(curl -fsSL https://raw.githubusercontent.com/community-scripts/ProxmoxVE/main/misc/build.func)
# Copyright (c) 2021-2025 community-scripts ORG
# Author: cobalt (cobaltgit)
# License: MIT | https://github.com/community-scripts/ProxmoxVE/raw/main/LICENSE
# Source: https://caddyserver.com/
APP="Alpine-Caddy"
var_tags="${var_tags:-webserver}"
var_cpu="${var_cpu:-1}"
var_ram="${var_ram:-256}"
var_disk="${var_disk:-3}"
var_os="${var_os:-alpine}"
var_version="${var_version:-3.22}"
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 /etc/caddy ]]; then
msg_error "No ${APP} Installation Found!"
exit
fi
msg_info "Updating $APP LXC"
$STD apk -U upgrade
msg_ok "Updated $APP LXC"
msg_info "Restarting Caddy"
rc-service caddy restart
msg_ok "Restarted Caddy"
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}:80${CL}"

View File

@@ -33,6 +33,7 @@ function update_script() {
msg_info "Updating $APP"
$STD /opt/beszel/beszel update
sleep 2 && chmod +x /opt/beszel/beszel
msg_ok "Updated $APP"
msg_info "Starting $APP"

View File

@@ -11,7 +11,7 @@ var_cpu="${var_cpu:-1}"
var_ram="${var_ram:-512}"
var_disk="${var_disk:-2}"
var_os="${var_os:-debian}"
var_version="${var_version:-12}"
var_version="${var_version:-13}"
var_unprivileged="${var_unprivileged:-1}"
header_info "$APP"
@@ -23,13 +23,13 @@ function update_script() {
header_info
check_container_storage
check_container_resources
if [[ ! -d /var ]]; then
if [[ ! -f /etc/systemd/system/cloudflared.service ]]; then
msg_error "No ${APP} Installation Found!"
exit
fi
msg_info "Updating $APP LXC"
$STD apt-get update
$STD apt-get -y upgrade
$STD apt update
$STD apt -y upgrade
msg_ok "Updated $APP LXC"
exit
}

View File

@@ -11,7 +11,7 @@ var_cpu="${var_cpu:-1}"
var_ram="${var_ram:-512}"
var_disk="${var_disk:-2}"
var_os="${var_os:-debian}"
var_version="${var_version:-12}"
var_version="${var_version:-13}"
var_unprivileged="${var_unprivileged:-1}"
header_info "$APP"
@@ -28,8 +28,8 @@ function update_script() {
exit
fi
msg_info "Updating $APP LXC"
$STD apt-get update
$STD apt-get -y upgrade
$STD apt update
$STD apt -y upgrade
msg_ok "Updated $APP LXC"
exit
}

View File

@@ -33,6 +33,11 @@ function update_script() {
systemctl stop gatus
msg_ok "Stopped $APP"
if [[ :$PATH: != *":/usr/local/bin:"* ]]; then
echo 'export PATH="/usr/local/bin:$PATH"' >>~/.bashrc
source ~/.bashrc
fi
mv /opt/gatus/config/config.yaml /opt
rm -rf /opt/gatus
fetch_and_deploy_gh_release "gatus" "TwiN/gatus"

43
ct/globaleaks.sh Normal file
View File

@@ -0,0 +1,43 @@
#!/usr/bin/env bash
source <(curl -fsSL https://raw.githubusercontent.com/community-scripts/ProxmoxVE/main/misc/build.func)
# Copyright (c) 2021-2025 communtiy-scripts ORG
# Author: Giovanni Pellerano (evilaliv3)
# License: MIT | https://github.com/community-scripts/ProxmoxVE/raw/main/LICENSE
# Source: https://github.com/globaleaks/globaleaks-whistleblowing-software
APP="GlobaLeaks"
var_tags="${var_tags:-whistleblowing-software}"
var_disk="${var_disk:-4}"
var_cpu="${var_cpu:-2}"
var_ram="${var_ram:-2048}"
var_os="${var_os:-debian}"
var_version="${var_version:-13}"
header_info "$APP"
variables
color
catch_errors
function update_script() {
header_info
check_container_storage
check_container_resources
if [[ ! -f /usr/sbin/globaleaks ]]; then
msg_error "No ${APP} installation found!"
exit
fi
msg_info "Updating $APP LXC"
$STD apt update
$STD apt -y upgrade
msg_ok "Updated $APP LXC"
}
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}${CL}"

View File

@@ -1,5 +1,8 @@
#!/usr/bin/env bash
source <(curl -fsSL https://raw.githubusercontent.com/community-scripts/ProxmoxVE/main/misc/build.func)
# Copyright (c) 2021-2025 community-scripts ORG
# Author: cfurrow | Co-Author: Slaviša Arežina (tremor021)
# License: MIT | https://github.com/community-scripts/ProxmoxVE/raw/main/LICENSE
# Source: https://github.com/gristlabs/grist-core
APP="Grist"
@@ -26,57 +29,34 @@ function update_script() {
exit
fi
RELEASE=$(curl -fsSL https://api.github.com/repos/gristlabs/grist-core/releases/latest | grep "tag_name" | awk '{print substr($2, 3, length($2)-4) }')
if [[ ! -f /opt/${APP}_version.txt ]] || [[ "${RELEASE}" != "$(cat /opt/${APP}_version.txt)" ]]; then
if check_for_gh_release "grist" "gristlabs/grist-core"; then
msg_info "Stopping ${APP} Service"
systemctl stop grist
msg_ok "Stopped ${APP} Service"
msg_info "Updating ${APP} to v${RELEASE}"
cd /opt
rm -rf grist_bak
msg_info "Creating backup"
rm -rf /opt/grist_bak
mv grist grist_bak
curl -fsSL "https://github.com/gristlabs/grist-core/archive/refs/tags/v${RELEASE}.zip" -o $(basename "https://github.com/gristlabs/grist-core/archive/refs/tags/v${RELEASE}.zip")
$STD unzip v$RELEASE.zip
mv grist-core-${RELEASE} grist
msg_ok "Backup created"
fetch_and_deploy_gh_release "grist" "gristlabs/grist-core" "tarball"
msg_info "Updating ${APP}"
mkdir -p grist/docs
cp -n grist_bak/.env grist/.env || true
cp -r grist_bak/docs/* grist/docs/ || true
cp grist_bak/grist-sessions.db grist/grist-sessions.db || true
cp grist_bak/landing.db grist/landing.db || true
cd grist
msg_info "Installing Dependencies"
cp -n /opt/grist_bak/.env /opt/grist/.env
cp -r /opt/grist_bak/docs/* /opt/grist/docs/
cp /opt/grist_bak/grist-sessions.db /opt/grist/grist-sessions.db
cp /opt/grist_bak/landing.db /opt/grist/landing.db
$STD yarn install
msg_ok "Installed Dependencies"
msg_info "Building"
$STD yarn run build:prod
msg_ok "Done building"
msg_info "Installing Python"
$STD yarn run install:python
msg_ok "Installed Python"
echo "${RELEASE}" >/opt/${APP}_version.txt
msg_ok "Updated ${APP} to v${RELEASE}"
msg_ok "Updated ${APP}"
msg_info "Starting ${APP} Service"
systemctl start grist
msg_ok "Started ${APP} Service"
msg_info "Cleaning up"
rm -rf /opt/v$RELEASE.zip
msg_ok "Cleaned"
msg_ok "Updated Successfully!\n"
else
msg_ok "No update required. ${APP} is already at ${RELEASE}"
msg_ok "Updated Successfully"
fi
exit
}

6
ct/headers/alpine-caddy Normal file
View File

@@ -0,0 +1,6 @@
___ __ _ ______ __ __
/ | / /___ (_)___ ___ / ____/___ _____/ /___/ /_ __
/ /| | / / __ \/ / __ \/ _ \______/ / / __ `/ __ / __ / / / /
/ ___ |/ / /_/ / / / / / __/_____/ /___/ /_/ / /_/ / /_/ / /_/ /
/_/ |_/_/ .___/_/_/ /_/\___/ \____/\__,_/\__,_/\__,_/\__, /
/_/ /____/

6
ct/headers/globaleaks Normal file
View File

@@ -0,0 +1,6 @@
________ __ __ __
/ ____/ /___ / /_ ____ _/ / ___ ____ _/ /_______
/ / __/ / __ \/ __ \/ __ `/ / / _ \/ __ `/ //_/ ___/
/ /_/ / / /_/ / /_/ / /_/ / /___/ __/ /_/ / ,< (__ )
\____/_/\____/_.___/\__,_/_____/\___/\__,_/_/|_/____/

6
ct/headers/tunarr Normal file
View File

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

View File

@@ -11,7 +11,7 @@ var_disk="${var_disk:-20}"
var_cpu="${var_cpu:-4}"
var_ram="${var_ram:-4096}"
var_os="${var_os:-debian}"
var_version="${var_version:-12}"
var_version="${var_version:-13}"
var_unprivileged="${var_unprivileged:-1}"
header_info "$APP"
@@ -27,11 +27,22 @@ function update_script() {
msg_error "No ${APP} Installation Found!"
exit
fi
if [[ -f /etc/apt/sources.list.d/immich.list ]]; then
msg_error "Wrong Debian version detected!"
msg_error "You must upgrade your LXC to Debian Trixie before updating."
msg_error "Please visit https://github.com/community-scripts/ProxmoxVE/discussions/7726 for details."
echo "${TAB3} If you have upgraded your LXC to Trixie and you still see this message, please open an Issue in the Community-Scripts repo."
exit
fi
setup_uv
PNPM_VERSION="$(curl -fsSL "https://raw.githubusercontent.com/immich-app/immich/refs/heads/main/package.json" | jq -r '.packageManager | split("@")[1]')"
NODE_VERSION="22" NODE_MODULE="pnpm@${PNPM_VERSION}" setup_nodejs
if dpkg -l | grep -q "libmimalloc2.0"; then
$STD apt-get update && $STD apt-get install -y libmimalloc3
fi
STAGING_DIR=/opt/staging
BASE_DIR=${STAGING_DIR}/base-images
SOURCE_DIR=${STAGING_DIR}/image-source
@@ -45,8 +56,10 @@ function update_script() {
for url in "${INTEL_URLS[@]}"; do
curl -fsSLO "$url"
done
$STD apt-mark unhold libigdgmm12
$STD apt install -y ./*.deb
rm ./*.deb
$STD apt-mark hold libigdgmm12
msg_ok "Intel iGPU dependencies updated"
fi
rm ~/Dockerfile
@@ -61,7 +74,7 @@ function update_script() {
done
msg_ok "Image-processing libraries up to date"
fi
RELEASE="1.142.0"
RELEASE="1.142.1"
if check_for_gh_release "immich" "immich-app/immich" "${RELEASE}"; then
msg_info "Stopping Services"
systemctl stop immich-web
@@ -78,22 +91,10 @@ function update_script() {
if [[ ! -f ~/.vchord_version ]] || [[ "$VCHORD_RELEASE" != "$(cat ~/.vchord_version)" ]]; then
msg_info "Updating VectorChord"
if [[ ! -f ~/.vchord_version ]] || [[ ! "$(cat ~/.vchord_version)" > "0.3.0" ]]; then
$STD sudo -u postgres pg_dumpall --clean --if-exists --username=postgres | gzip >/etc/postgresql/immich-db-vchord0.3.0.sql.gz
chown postgres /etc/postgresql/immich-db-vchord0.3.0.sql.gz
$STD sudo -u postgres gunzip --stdout /etc/postgresql/immich-db-vchord0.3.0.sql.gz |
sed -e "s/SELECT pg_catalog.set_config('search_path', '', false);/SELECT pg_catalog.set_config('search_path', 'public, pg_catalog', true);/g" \
-e "/vchordrq.prewarm_dim/d" |
sudo -u postgres psql
fi
curl -fsSL "https://github.com/tensorchord/vectorchord/releases/download/${VCHORD_RELEASE}/postgresql-16-vchord_${VCHORD_RELEASE}-1_amd64.deb" -o vchord.deb
$STD apt install -y ./vchord.deb
$STD sudo -u postgres psql -d immich -c "ALTER EXTENSION vchord UPDATE;"
systemctl restart postgresql
if [[ ! -f ~/.vchord_version ]] || [[ ! "$(cat ~/.vchord_version)" > "0.3.0" ]]; then
$STD sudo -u postgres psql -d immich -c "REINDEX INDEX face_index;"
$STD sudo -u postgres psql -d immich -c "REINDEX INDEX clip_index;"
fi
echo "$VCHORD_RELEASE" >~/.vchord_version
rm ./vchord.deb
msg_ok "Updated VectorChord to v${VCHORD_RELEASE}"
@@ -126,9 +127,6 @@ EOF
msg_info "Updating ${APP} web and microservices"
cd "$SRC_DIR"/server
if [[ "$RELEASE" == "1.135.1" ]]; then
rm ./src/schema/migrations/1750323941566-UnsetPrewarmDimParameter.ts
fi
export COREPACK_ENABLE_DOWNLOAD_PROMPT=0
export CI=1
corepack enable
@@ -144,6 +142,7 @@ EOF
# openapi & web build
cd "$SRC_DIR"
echo "packageImportMethod: hardlink" >>./pnpm-workspace.yaml
$STD pnpm --filter @immich/sdk --filter immich-web --frozen-lockfile --force install
$STD pnpm --filter @immich/sdk --filter immich-web build
cp -a web/build "$APP_DIR"/www
@@ -158,16 +157,16 @@ EOF
msg_ok "Updated ${APP} web and microservices"
cd "$SRC_DIR"/machine-learning
mkdir -p "$ML_DIR"
mkdir -p "$ML_DIR" && chown -R immich:immich "$ML_DIR"
export VIRTUAL_ENV="${ML_DIR}"/ml-venv
if [[ -f ~/.openvino ]]; then
msg_info "Updating HW-accelerated machine-learning"
$STD /usr/local/bin/uv sync --extra openvino --no-cache --active
$STD sudo --preserve-env=VIRTUAL_ENV -nu immich uv sync --extra openvino --active -n -p python3.11 --managed-python
patchelf --clear-execstack "${VIRTUAL_ENV}/lib/python3.11/site-packages/onnxruntime/capi/onnxruntime_pybind11_state.cpython-311-x86_64-linux-gnu.so"
msg_ok "Updated HW-accelerated machine-learning"
else
msg_info "Updating machine-learning"
$STD /usr/local/bin/uv sync --extra cpu --no-cache --active
$STD sudo --preserve-env=VIRTUAL_ENV -nu immich uv sync --extra cpu --active -n -p python3.11 --managed-python
msg_ok "Updated machine-learning"
fi
cd "$SRC_DIR"
@@ -186,10 +185,6 @@ EOF
ln -s "$GEO_DIR" "$APP_DIR"
chown -R immich:immich "$INSTALL_DIR"
if [[ ! -f ~/.debian_version.bak ]]; then
cp /etc/debian_version ~/.debian_version.bak
sed -i 's/.*/13.0/' /etc/debian_version
fi
msg_ok "Updated ${APP} to v${RELEASE}"
msg_info "Cleaning up"
@@ -205,8 +200,7 @@ function compile_libjxl() {
SOURCE=${SOURCE_DIR}/libjxl
JPEGLI_LIBJPEG_LIBRARY_SOVERSION="62"
JPEGLI_LIBJPEG_LIBRARY_VERSION="62.3.0"
# : "${LIBJXL_REVISION:=$(jq -cr '.revision' "$BASE_DIR"/server/sources/libjxl.json)}"
: "${LIBJXL_REVISION:=794a5dcf0d54f9f0b20d288a12e87afb91d20dfc}"
: "${LIBJXL_REVISION:=$(jq -cr '.revision' "$BASE_DIR"/server/sources/libjxl.json)}"
if [[ "$LIBJXL_REVISION" != "$(grep 'libjxl' ~/.immich_library_revisions | awk '{print $2}')" ]]; then
msg_info "Recompiling libjxl"
if [[ -d "$SOURCE" ]]; then rm -rf "$SOURCE"; fi
@@ -253,8 +247,7 @@ function compile_libheif() {
$STD apt-get install -y libaom-dev
local update="required"
fi
# : "${LIBHEIF_REVISION:=$(jq -cr '.revision' "$BASE_DIR"/server/sources/libheif.json)}"
: "${LIBHEIF_REVISION:=35dad50a9145332a7bfdf1ff6aef6801fb613d68}"
: "${LIBHEIF_REVISION:=$(jq -cr '.revision' "$BASE_DIR"/server/sources/libheif.json)}"
if [[ "${update:-}" ]] || [[ "$LIBHEIF_REVISION" != "$(grep 'libheif' ~/.immich_library_revisions | awk '{print $2}')" ]]; then
msg_info "Recompiling libheif"
if [[ -d "$SOURCE" ]]; then rm -rf "$SOURCE"; fi
@@ -285,9 +278,7 @@ function compile_libheif() {
function compile_libraw() {
SOURCE=${SOURCE_DIR}/libraw
local update
# : "${LIBRAW_REVISION:=$(jq -cr '.revision' "$BASE_DIR"/server/sources/libraw.json)}"
: "${LIBRAW_REVISION:=09bea31181b43e97959ee5452d91e5bc66365f1f}"
: "${LIBRAW_REVISION:=$(jq -cr '.revision' "$BASE_DIR"/server/sources/libraw.json)}"
if [[ "$LIBRAW_REVISION" != "$(grep 'libraw' ~/.immich_library_revisions | awk '{print $2}')" ]]; then
msg_info "Recompiling libraw"
if [[ -d "$SOURCE" ]]; then rm -rf "$SOURCE"; fi
@@ -308,15 +299,15 @@ function compile_libraw() {
function compile_imagemagick() {
SOURCE=$SOURCE_DIR/imagemagick
# : "${IMAGEMAGICK_REVISION:=$(jq -cr '.revision' "$BASE_DIR"/server/sources/imagemagick.json)}"
: "${IMAGEMAGICK_REVISION:=8289a3388a085ad5ae81aa6812f21554bdfd54f2}"
if [[ "$IMAGEMAGICK_REVISION" != "$(grep 'imagemagick' ~/.immich_library_revisions | awk '{print $2}')" ]]; then
: "${IMAGEMAGICK_REVISION:=$(jq -cr '.revision' "$BASE_DIR"/server/sources/imagemagick.json)}"
if [[ "$IMAGEMAGICK_REVISION" != "$(grep 'imagemagick' ~/.immich_library_revisions | awk '{print $2}')" ]] ||
! grep -q 'DMAGICK_LIBRAW' /usr/local/lib/ImageMagick-7*/config-Q16HDRI/configure.xml; then
msg_info "Recompiling ImageMagick"
if [[ -d "$SOURCE" ]]; then rm -rf "$SOURCE"; fi
$STD git clone https://github.com/ImageMagick/ImageMagick.git "$SOURCE"
cd "$SOURCE"
$STD git reset --hard "$IMAGEMAGICK_REVISION"
$STD ./configure --with-modules
$STD ./configure --with-modules CPPFLAGS="-DMAGICK_LIBRAW_VERSION_TAIL=202502"
$STD make -j"$(nproc)"
$STD make install
ldconfig /usr/local/lib
@@ -329,8 +320,7 @@ function compile_imagemagick() {
function compile_libvips() {
SOURCE=$SOURCE_DIR/libvips
# : "${LIBVIPS_REVISION:=$(jq -cr '.revision' "$BASE_DIR"/server/sources/libvips.json)}"
: "${LIBVIPS_REVISION:=8fa37a64547e392d3808eed8d72adab7e02b3d00}"
: "${LIBVIPS_REVISION:=$(jq -cr '.revision' "$BASE_DIR"/server/sources/libvips.json)}"
if [[ "$LIBVIPS_REVISION" != "$(grep 'libvips' ~/.immich_library_revisions | awk '{print $2}')" ]]; then
msg_info "Recompiling libvips"
if [[ -d "$SOURCE" ]]; then rm -rf "$SOURCE"; fi

View File

@@ -59,6 +59,7 @@ function update_script() {
if ! grep -qxF 'COMPOSE_KOMODO_BACKUPS_PATH=/etc/komodo/backups' /opt/komodo/compose.env; then
sed -i '/^COMPOSE_KOMODO_IMAGE_TAG=latest$/a COMPOSE_KOMODO_BACKUPS_PATH=/etc/komodo/backups' /opt/komodo/compose.env
fi
$STD docker compose -p komodo -f "$COMPOSE_FILE" --env-file /opt/komodo/compose.env pull
$STD docker compose -p komodo -f "$COMPOSE_FILE" --env-file /opt/komodo/compose.env up -d
msg_ok "Updated ${APP}"
exit

View File

@@ -27,6 +27,20 @@ function update_script() {
msg_error "No ${APP} Installation Found!"
exit
fi
if grep -q "dl.cloudsmith.io" /etc/apt/sources.list.d/rabbitmq.list; then
rm -f /etc/apt/sources.list.d/rabbitmq.list
cat <<EOF >/etc/apt/sources.list.d/rabbitmq.list
## Modern Erlang/OTP releases
deb [arch=amd64 signed-by=/usr/share/keyrings/com.rabbitmq.team.gpg] https://deb1.rabbitmq.com/rabbitmq-erlang/debian/bookworm bookworm main
deb [arch=amd64 signed-by=/usr/share/keyrings/com.rabbitmq.team.gpg] https://deb2.rabbitmq.com/rabbitmq-erlang/debian/bookworm bookworm main
## Provides modern RabbitMQ releases
deb [arch=amd64 signed-by=/usr/share/keyrings/com.rabbitmq.team.gpg] https://deb1.rabbitmq.com/rabbitmq-server/debian/bookworm bookworm main
deb [arch=amd64 signed-by=/usr/share/keyrings/com.rabbitmq.team.gpg] https://deb2.rabbitmq.com/rabbitmq-server/debian/bookworm bookworm main
EOF
$STD apt-get update
fi
msg_info "Stopping ${APP} Service"
systemctl stop rabbitmq-server
msg_ok "Stopped ${APP} Service"

79
ct/tunarr.sh Normal file
View File

@@ -0,0 +1,79 @@
#!/usr/bin/env bash
source <(curl -fsSL https://raw.githubusercontent.com/community-scripts/ProxmoxVE/main/misc/build.func)
# Copyright (c) 2021-2025 community-scripts ORG
# Author: chrisbenincasa
# License: MIT | https://github.com/community-scripts/ProxmoxVE/raw/main/LICENSE
# Source: https://tunarr.com/
APP="Tunarr"
var_tags="${var_tags:-iptv}"
var_cpu="${var_cpu:-2}"
var_ram="${var_ram:-1024}"
var_disk="${var_disk:-5}"
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/tunarr ]]; then
msg_error "No ${APP} Installation Found!"
exit
fi
if check_for_gh_release "tunarr" "chrisbenincasa/tunarr"; then
msg_info "Stopping Service"
systemctl stop tunarr
msg_ok "Stopped Service"
msg_info "Creating Backup"
if [ -d "/usr/local/share/tunarr" ]; then
tar -czf "/opt/${APP}_backup_$(date +%F).tar.gz" /usr/local/share/tunarr $STD
msg_ok "Backup Created"
else
msg_error "Backup failed: /usr/local/share/tunarr does not exist"
fi
CLEAN_INSTALL=1 fetch_and_deploy_gh_release "tunarr" "chrisbenincasa/tunarr" "singlefile" "latest" "/opt/tunarr" "*linux-x64"
msg_info "Starting Service"
systemctl start tunarr
msg_ok "Started Service"
msg_ok "Update Successfully"
fi
if check_for_gh_release "ersatztv-ffmpeg" "ErsatzTV/ErsatzTV-ffmpeg"; then
msg_info "Stopping Service"
systemctl stop tunarr
msg_ok "Stopped Service"
CLEAN_INSTALL=1 fetch_and_deploy_gh_release "ersatztv-ffmpeg" "ErsatzTV/ErsatzTV-ffmpeg" "prebuild" "latest" "/opt/ErsatzTV-ffmpeg" "*-linux64-gpl-7.1.tar.xz"
msg_info "Set ErsatzTV-ffmpeg links"
chmod +x /opt/ErsatzTV-ffmpeg/bin/*
ln -sf /opt/ErsatzTV-ffmpeg/bin/ffmpeg /usr/local/bin/ffmpeg
ln -sf /opt/ErsatzTV-ffmpeg/bin/ffplay /usr/local/bin/ffplay
ln -sf /opt/ErsatzTV-ffmpeg/bin/ffprobe /usr/local/bin/ffprobe
msg_ok "ffmpeg links set"
msg_info "Starting Service"
systemctl start tunarr
msg_ok "Started Service"
msg_ok "Update 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}:8000${CL}"

View File

@@ -23,7 +23,7 @@
"ram": 512,
"hdd": 2,
"os": "debian",
"version": "12"
"version": "13"
}
},
{
@@ -44,7 +44,7 @@
},
"notes": [
{
"text": "Adguard Home can be updated via the user interface.",
"text": "AdGuard Home can only be updated via the user interface.",
"type": "info"
}
]

View File

@@ -4,7 +4,7 @@
"categories": [
21
],
"date_created": "2024-05-11",
"date_created": "2025-09-17",
"type": "ct",
"updateable": true,
"privileged": false,
@@ -25,6 +25,17 @@
"os": "debian",
"version": "12"
}
},
{
"type": "alpine",
"script": "ct/alpine-caddy.sh",
"resources": {
"cpu": 1,
"ram": 256,
"hdd": 3,
"os": "alpine",
"version": "3.22"
}
}
],
"default_credentials": {

View File

@@ -23,7 +23,7 @@
"ram": 512,
"hdd": 2,
"os": "debian",
"version": "12"
"version": "13"
}
}
],

View File

@@ -23,7 +23,7 @@
"ram": 512,
"hdd": 2,
"os": "debian",
"version": "12"
"version": "13"
}
}
],

View File

@@ -0,0 +1,48 @@
{
"name": "PVE LXC Execute Command",
"slug": "lxc-execute",
"categories": [
1
],
"date_created": "2025-09-18",
"type": "pve",
"updateable": false,
"privileged": false,
"interface_port": null,
"documentation": null,
"website": null,
"logo": "https://cdn.jsdelivr.net/gh/selfhst/icons/webp/proxmox.webp",
"config_path": "",
"description": "This script allows administrators to execute a custom command inside one or multiple LXC containers on a Proxmox VE node. Containers can be selectively excluded via an interactive checklist. If a container is stopped, the script will automatically start it, run the command, and then shut it down again. Only Debian and Ubuntu based containers are supported.",
"install_methods": [
{
"type": "default",
"script": "tools/pve/execute.sh",
"resources": {
"cpu": null,
"ram": null,
"hdd": null,
"os": null,
"version": null
}
}
],
"default_credentials": {
"username": null,
"password": null
},
"notes": [
{
"text": "Execute within the Proxmox shell.",
"type": "info"
},
{
"text": "Non-Debian/Ubuntu containers will be skipped automatically.",
"type": "info"
},
{
"text": "Stopped containers will be started temporarily to run the command, then shut down again.",
"type": "warning"
}
]
}

View File

@@ -0,0 +1,35 @@
{
"name": "GlobaLeaks",
"slug": "globaleaks",
"categories": [
0
],
"date_created": "2025-09-18",
"type": "ct",
"updateable": true,
"privileged": false,
"interface_port": 443,
"documentation": "https://docs.globaleaks.org",
"website": "https://www.globaleaks.org/",
"logo": "https://cdn.jsdelivr.net/gh/selfhst/icons/webp/globaleaks.webp",
"config_path": "",
"description": "GlobaLeaks is a free and open-source whistleblowing software enabling anyone to easily set up and maintain a secure reporting platform.",
"install_methods": [
{
"type": "default",
"script": "ct/globaleaks.sh",
"resources": {
"cpu": 2,
"ram": 1024,
"hdd": 4,
"os": "debian",
"version": "13"
}
}
],
"default_credentials": {
"username": null,
"password": null
},
"notes": []
}

View File

@@ -13,7 +13,7 @@
"website": "https://www.getgrist.com/",
"logo": "https://cdn.jsdelivr.net/gh/selfhst/icons/webp/grist.webp",
"config_path": "/opt/grist/.env",
"description": "Grist is a modern, open source spreadsheet that goes beyond the grid",
"description": "Grist is like a spreadsheet + database hybrid. It lets you store structured data, use relational links between tables, apply formulas (even with Python), build custom layouts (cards, forms, dashboards), set fine-grained access rules, and visualize data with charts or pivot-tables.",
"install_methods": [
{
"type": "default",

View File

@@ -32,6 +32,10 @@
"password": null
},
"notes": [
{
"text": "Containerized version doesn't allow Home Assistant add-ons.",
"type": "warning"
},
{
"text": "If the LXC is created Privileged, the script will automatically set up USB passthrough.",
"type": "warning"

View File

@@ -23,7 +23,7 @@
"ram": 4096,
"hdd": 20,
"os": "Debian",
"version": "12"
"version": "13"
}
}
],

View File

@@ -0,0 +1,35 @@
{
"name": "Tunarr",
"slug": "tunarr",
"categories": [
13
],
"date_created": "2025-09-19",
"type": "ct",
"updateable": true,
"privileged": false,
"config_path": "/opt/tunarr/.env",
"interface_port": 8000,
"documentation": "https://tunarr.com/",
"website": "https://tunarr.com/",
"logo": "https://cdn.jsdelivr.net/gh/selfhst/icons/webp/tunarr.webp",
"description": "Create a classic TV experience using your own media - IPTV backed by Plex/Jellyfin/Emby.",
"install_methods": [
{
"type": "default",
"script": "ct/tunarr.sh",
"resources": {
"cpu": 2,
"ram": 1024,
"hdd": 5,
"os": "Debian",
"version": "13"
}
}
],
"default_credentials": {
"username": null,
"password": null
},
"notes": []
}

View File

@@ -1,14 +1,274 @@
[
{
"name": "esphome/esphome",
"version": "2025.8.4",
"date": "2025-09-10T05:03:47Z"
"name": "inventree/InvenTree",
"version": "1.0.1",
"date": "2025-09-19T22:28:31Z"
},
{
"name": "HabitRPG/habitica",
"version": "v5.41.2",
"date": "2025-09-19T21:47:42Z"
},
{
"name": "TwiN/gatus",
"version": "v5.24.1",
"date": "2025-09-19T21:25:48Z"
},
{
"name": "ipfs/kubo",
"version": "v0.37.0",
"date": "2025-08-27T20:03:52Z"
},
{
"name": "home-assistant/core",
"version": "2025.9.4",
"date": "2025-09-19T21:09:39Z"
},
{
"name": "Ombi-app/Ombi",
"version": "v4.47.1",
"date": "2025-01-05T21:14:23Z"
},
{
"name": "coder/code-server",
"version": "v4.104.1",
"date": "2025-09-19T19:36:44Z"
},
{
"name": "homarr-labs/homarr",
"version": "v1.38.0",
"date": "2025-09-19T19:14:55Z"
},
{
"name": "MediaBrowser/Emby.Releases",
"version": "4.9.1.2",
"date": "2025-06-26T22:08:00Z"
},
{
"name": "wazuh/wazuh",
"version": "v4.13.0",
"date": "2025-09-19T07:02:27Z"
},
{
"name": "TandoorRecipes/recipes",
"version": "2.2.3",
"date": "2025-09-19T15:02:57Z"
},
{
"name": "hargata/lubelog",
"version": "v1.5.2",
"date": "2025-09-19T14:18:53Z"
},
{
"name": "steveiliop56/tinyauth",
"version": "v3.6.2",
"date": "2025-07-17T12:08:03Z"
},
{
"name": "n8n-io/n8n",
"version": "n8n@1.111.1",
"date": "2025-09-19T09:26:05Z"
},
{
"name": "fuma-nama/fumadocs",
"version": "fumadocs-mdx@11.10.1",
"date": "2025-09-19T10:43:04Z"
},
{
"name": "mattermost/mattermost",
"version": "mattermost-redux@10.12.0",
"date": "2025-09-18T20:15:19Z"
},
{
"name": "docker/compose",
"version": "v2.39.4",
"date": "2025-09-19T08:49:23Z"
},
{
"name": "esphome/esphome",
"version": "2025.9.1",
"date": "2025-09-19T08:47:03Z"
},
{
"name": "theonedev/onedev",
"version": "v13.0.0",
"date": "2025-09-19T06:05:50Z"
},
{
"name": "Jackett/Jackett",
"version": "v0.23.43",
"date": "2025-09-19T05:57:38Z"
},
{
"name": "jeedom/core",
"version": "4.4.20",
"date": "2025-09-19T00:27:22Z"
},
{
"name": "ollama/ollama",
"version": "v0.12.0-rc1",
"date": "2025-09-18T23:11:08Z"
},
{
"name": "pocket-id/pocket-id",
"version": "v1.11.1",
"date": "2025-09-18T20:55:56Z"
},
{
"name": "saltstack/salt",
"version": "v3007.8",
"date": "2025-09-18T18:19:04Z"
},
{
"name": "runtipi/runtipi",
"version": "v4.4.0",
"date": "2025-09-02T19:26:18Z"
},
{
"name": "keycloak/keycloak",
"version": "26.2.9",
"date": "2025-09-17T15:11:25Z"
},
{
"name": "docmost/docmost",
"version": "v0.23.2",
"date": "2025-09-18T17:18:59Z"
},
{
"name": "bluenviron/mediamtx",
"version": "v1.15.0",
"date": "2025-09-18T17:14:15Z"
},
{
"name": "emqx/emqx",
"version": "e5.10.1",
"date": "2025-09-18T16:43:47Z"
},
{
"name": "YunoHost/yunohost",
"version": "debian/12.1.25",
"date": "2025-09-18T15:40:25Z"
},
{
"name": "grokability/snipe-it",
"version": "v8.3.2",
"date": "2025-09-18T13:55:58Z"
},
{
"name": "zitadel/zitadel",
"version": "v4.2.2",
"date": "2025-09-18T10:45:22Z"
},
{
"name": "cloudflare/cloudflared",
"version": "2025.9.0",
"date": "2025-09-18T10:23:49Z"
},
{
"name": "chrisvel/tududi",
"version": "v0.82-rc5",
"date": "2025-09-18T09:57:28Z"
},
{
"name": "NLnetLabs/unbound",
"version": "release-1.24.0",
"date": "2025-09-18T08:36:55Z"
},
{
"name": "outline/outline",
"version": "v0.87.4",
"date": "2025-09-18T00:47:08Z"
},
{
"name": "henrygd/beszel",
"version": "v0.12.9",
"date": "2025-09-17T20:13:59Z"
},
{
"name": "TasmoAdmin/TasmoAdmin",
"version": "v4.3.1",
"date": "2025-07-22T20:10:08Z"
},
{
"name": "msgbyte/tianji",
"version": "v1.25.14",
"date": "2025-09-17T19:00:05Z"
},
{
"name": "eclipse-mosquitto/mosquitto",
"version": "2.1.0-test1",
"date": "2025-09-17T18:21:45Z"
},
{
"name": "open-webui/open-webui",
"version": "v0.6.30",
"date": "2025-09-17T17:25:37Z"
},
{
"name": "tailscale/tailscale",
"version": "v1.88.2",
"date": "2025-09-17T17:25:12Z"
},
{
"name": "heiher/hev-socks5-server",
"version": "2.10.0",
"date": "2025-09-17T14:47:00Z"
},
{
"name": "glpi-project/glpi",
"version": "10.0.20",
"date": "2025-09-10T12:00:00Z"
},
{
"name": "silverbulletmd/silverbullet",
"version": "2.0.0",
"date": "2025-08-29T13:38:35Z"
},
{
"name": "jenkinsci/jenkins",
"version": "jenkins-2.528",
"date": "2025-09-17T13:09:51Z"
},
{
"name": "cockpit-project/cockpit",
"version": "347",
"date": "2025-09-17T12:03:45Z"
},
{
"name": "dgtlmoon/changedetection.io",
"version": "0.50.14",
"date": "2025-09-17T11:44:22Z"
},
{
"name": "icereed/paperless-gpt",
"version": "v0.23.0",
"date": "2025-09-17T10:15:51Z"
},
{
"name": "semaphoreui/semaphore",
"version": "v2.16.31",
"date": "2025-09-17T09:57:55Z"
},
{
"name": "nzbgetcom/nzbget",
"version": "v25.3",
"date": "2025-09-01T09:47:06Z"
},
{
"name": "WGDashboard/WGDashboard",
"version": "v4.3.0.1",
"date": "2025-09-17T08:50:39Z"
},
{
"name": "morpheus65535/bazarr",
"version": "v1.5.3-beta.10",
"date": "2025-07-15T06:07:03Z"
},
{
"name": "gtsteffaniak/filebrowser",
"version": "v0.8.6-beta",
"date": "2025-09-17T00:57:54Z"
},
{
"name": "Cleanuparr/Cleanuparr",
"version": "v2.3.1",
@@ -19,11 +279,6 @@
"version": "2.510",
"date": "2025-09-16T20:28:37Z"
},
{
"name": "YunoHost/yunohost",
"version": "debian/12.1.24",
"date": "2025-09-16T19:55:04Z"
},
{
"name": "firefly-iii/firefly-iii",
"version": "v6.4.0",
@@ -39,16 +294,6 @@
"version": "v0.107.66",
"date": "2025-09-15T13:39:52Z"
},
{
"name": "msgbyte/tianji",
"version": "v1.25.11",
"date": "2025-09-16T16:24:18Z"
},
{
"name": "wazuh/wazuh",
"version": "v4.13.0-rc5",
"date": "2025-09-16T16:12:20Z"
},
{
"name": "booklore-app/booklore",
"version": "v1.3.2",
@@ -79,46 +324,21 @@
"version": "v11.3.0",
"date": "2025-09-16T13:53:44Z"
},
{
"name": "emqx/emqx",
"version": "e5.10.1-rc.2",
"date": "2025-09-16T13:41:59Z"
},
{
"name": "tobychui/zoraxy",
"version": "v3.2.5r2",
"date": "2025-07-21T12:52:26Z"
},
{
"name": "WGDashboard/WGDashboard",
"version": "v4.3.0",
"date": "2025-09-16T13:07:29Z"
},
{
"name": "Checkmk/checkmk",
"version": "v2.4.0p12",
"date": "2025-09-16T12:53:03Z"
},
{
"name": "zitadel/zitadel",
"version": "v4.2.0",
"date": "2025-09-15T09:29:55Z"
},
{
"name": "fallenbagel/jellyseerr",
"version": "preview-debug-plex-watchlist",
"date": "2025-09-16T09:20:58Z"
},
{
"name": "n8n-io/n8n",
"version": "n8n@1.109.2",
"date": "2025-09-03T07:50:21Z"
},
{
"name": "mattermost/mattermost",
"version": "v10.11.3",
"date": "2025-09-16T07:39:13Z"
},
{
"name": "readeck/readeck",
"version": "0.20.3",
@@ -129,26 +349,6 @@
"version": "2.1.1",
"date": "2025-09-16T06:21:32Z"
},
{
"name": "Jackett/Jackett",
"version": "v0.23.28",
"date": "2025-09-16T05:57:39Z"
},
{
"name": "jeedom/core",
"version": "4.4.20",
"date": "2025-09-16T00:27:04Z"
},
{
"name": "steveiliop56/tinyauth",
"version": "v3.6.2",
"date": "2025-07-17T12:08:03Z"
},
{
"name": "coder/code-server",
"version": "v4.104.0",
"date": "2025-09-15T22:24:49Z"
},
{
"name": "Paymenter/Paymenter",
"version": "v1.3.4",
@@ -164,11 +364,6 @@
"version": "v3.5.6",
"date": "2025-09-15T18:43:31Z"
},
{
"name": "keycloak/keycloak",
"version": "26.3.4",
"date": "2025-09-12T13:28:51Z"
},
{
"name": "apache/tika",
"version": "3.2.0",
@@ -219,21 +414,6 @@
"version": "v0.25.1",
"date": "2025-09-15T14:57:30Z"
},
{
"name": "nzbgetcom/nzbget",
"version": "v25.3",
"date": "2025-09-01T09:47:06Z"
},
{
"name": "fuma-nama/fumadocs",
"version": "fumadocs-core@15.7.12",
"date": "2025-09-15T12:37:01Z"
},
{
"name": "dgtlmoon/changedetection.io",
"version": "0.50.13",
"date": "2025-09-15T11:52:07Z"
},
{
"name": "VictoriaMetrics/VictoriaMetrics",
"version": "pmm-6401-v1.126.0",
@@ -274,11 +454,6 @@
"version": "v4.5.4",
"date": "2025-09-15T00:49:53Z"
},
{
"name": "inventree/InvenTree",
"version": "1.0.0",
"date": "2025-09-14T23:37:56Z"
},
{
"name": "moghtech/komodo",
"version": "v1.19.4",
@@ -299,16 +474,6 @@
"version": "cli/v0.27.1",
"date": "2025-09-14T14:48:48Z"
},
{
"name": "docmost/docmost",
"version": "v0.23.1",
"date": "2025-09-14T14:31:45Z"
},
{
"name": "semaphoreui/semaphore",
"version": "v2.17.0-beta2",
"date": "2025-09-14T14:08:27Z"
},
{
"name": "intri-in/manage-my-damn-life-nextjs",
"version": "v0.8.1",
@@ -319,16 +484,6 @@
"version": "3.2.7",
"date": "2025-09-14T06:35:13Z"
},
{
"name": "gtsteffaniak/filebrowser",
"version": "v0.8.5-beta",
"date": "2025-09-13T22:53:30Z"
},
{
"name": "home-assistant/core",
"version": "2025.9.3",
"date": "2025-09-13T12:44:37Z"
},
{
"name": "gotify/server",
"version": "v2.7.2",
@@ -344,51 +499,21 @@
"version": "v1.12.4",
"date": "2025-09-13T08:08:55Z"
},
{
"name": "ollama/ollama",
"version": "v0.11.11-rc3",
"date": "2025-09-12T23:40:14Z"
},
{
"name": "chrisvel/tududi",
"version": "v0.82-rc2",
"date": "2025-09-12T09:59:30Z"
},
{
"name": "homarr-labs/homarr",
"version": "v1.37.0",
"date": "2025-09-12T19:19:14Z"
},
{
"name": "cloudreve/cloudreve",
"version": "4.8.0",
"date": "2025-09-12T09:48:11Z"
},
{
"name": "MediaBrowser/Emby.Releases",
"version": "4.9.1.2",
"date": "2025-06-26T22:08:00Z"
},
{
"name": "go-vikunja/vikunja",
"version": "v1.0.0-rc0",
"date": "2025-08-17T18:47:15Z"
},
{
"name": "tailscale/tailscale",
"version": "v1.88.1",
"date": "2025-09-11T22:19:51Z"
},
{
"name": "influxdata/influxdb",
"version": "v3.4.2",
"date": "2025-09-11T20:43:23Z"
},
{
"name": "HabitRPG/habitica",
"version": "v5.41.0",
"date": "2025-09-11T19:46:20Z"
},
{
"name": "zerotier/ZeroTierOne",
"version": "1.16.0",
@@ -409,46 +534,16 @@
"version": "v4.14.0",
"date": "2025-09-05T18:28:28Z"
},
{
"name": "cockpit-project/cockpit",
"version": "345.2",
"date": "2025-09-11T09:06:44Z"
},
{
"name": "NLnetLabs/unbound",
"version": "release-1.24.0rc1",
"date": "2025-09-11T07:05:16Z"
},
{
"name": "go-gitea/gitea",
"version": "v1.24.6",
"date": "2025-09-11T04:20:27Z"
},
{
"name": "TandoorRecipes/recipes",
"version": "2.2.0",
"date": "2025-09-10T18:36:56Z"
},
{
"name": "aceberg/WatchYourLAN",
"version": "2.1.4",
"date": "2025-09-10T12:08:09Z"
},
{
"name": "glpi-project/glpi",
"version": "10.0.20",
"date": "2025-09-10T12:00:00Z"
},
{
"name": "open-webui/open-webui",
"version": "v0.6.28",
"date": "2025-09-10T10:53:42Z"
},
{
"name": "jenkinsci/jenkins",
"version": "jenkins-2.527",
"date": "2025-09-09T19:58:28Z"
},
{
"name": "kyantech/Palmr",
"version": "v3.2.1-beta",
@@ -459,11 +554,6 @@
"version": "v2.1.2",
"date": "2025-09-09T19:34:11Z"
},
{
"name": "hargata/lubelog",
"version": "v1.5.1",
"date": "2025-09-09T16:56:49Z"
},
{
"name": "element-hq/synapse",
"version": "v1.138.0",
@@ -474,11 +564,6 @@
"version": "v3.5.2",
"date": "2025-09-09T10:28:12Z"
},
{
"name": "docker/compose",
"version": "v2.39.3",
"date": "2025-09-09T08:27:27Z"
},
{
"name": "OctoPrint/OctoPrint",
"version": "1.11.3",
@@ -509,11 +594,6 @@
"version": "16.2",
"date": "2025-09-08T14:03:25Z"
},
{
"name": "theonedev/onedev",
"version": "v12.0.10",
"date": "2025-09-08T13:20:16Z"
},
{
"name": "evcc-io/evcc",
"version": "0.207.6",
@@ -534,11 +614,6 @@
"version": "RELEASE.2025-09-07T16-13-09Z",
"date": "2025-09-07T18:53:04Z"
},
{
"name": "runtipi/runtipi",
"version": "v4.4.0",
"date": "2025-09-02T19:26:18Z"
},
{
"name": "Radarr/Radarr",
"version": "v5.27.5.10198",
@@ -559,11 +634,6 @@
"version": "v1.3.2",
"date": "2025-09-05T18:44:15Z"
},
{
"name": "henrygd/beszel",
"version": "v0.12.7",
"date": "2025-09-05T18:11:36Z"
},
{
"name": "CrazyWolf13/streamlink-webui",
"version": "0.6",
@@ -609,11 +679,6 @@
"version": "v0.15.1",
"date": "2025-09-04T10:37:23Z"
},
{
"name": "morpheus65535/bazarr",
"version": "v1.5.3-beta.10",
"date": "2025-07-15T06:07:03Z"
},
{
"name": "actualbudget/actual",
"version": "v25.9.0",
@@ -654,11 +719,6 @@
"version": "2.6.1",
"date": "2025-09-01T19:05:18Z"
},
{
"name": "outline/outline",
"version": "v0.87.3",
"date": "2025-09-01T16:25:43Z"
},
{
"name": "seanmorley15/AdventureLog",
"version": "v0.11.0",
@@ -669,11 +729,6 @@
"version": "rrc_steady_12.2.0-17245430286.patch1",
"date": "2025-09-01T14:19:14Z"
},
{
"name": "grokability/snipe-it",
"version": "v8.3.1",
"date": "2025-09-01T11:00:07Z"
},
{
"name": "crowdsecurity/crowdsec",
"version": "v1.7.0",
@@ -684,21 +739,11 @@
"version": "v1.7.3",
"date": "2025-08-31T15:59:43Z"
},
{
"name": "silverbulletmd/silverbullet",
"version": "2.0.0",
"date": "2025-08-29T13:38:35Z"
},
{
"name": "Forceu/Gokapi",
"version": "v2.1.0",
"date": "2025-08-29T12:56:13Z"
},
{
"name": "saltstack/salt",
"version": "v3007.7",
"date": "2025-08-29T01:19:08Z"
},
{
"name": "linkwarden/linkwarden",
"version": "v2.12.2",
@@ -724,16 +769,6 @@
"version": "v1.9.2",
"date": "2025-08-28T07:06:14Z"
},
{
"name": "pocket-id/pocket-id",
"version": "v1.10.0",
"date": "2025-08-27T20:35:47Z"
},
{
"name": "ipfs/kubo",
"version": "v0.37.0",
"date": "2025-08-27T20:03:52Z"
},
{
"name": "advplyr/audiobookshelf",
"version": "v2.29.0",
@@ -784,11 +819,6 @@
"version": "v6.9.1",
"date": "2025-08-22T04:04:12Z"
},
{
"name": "cloudflare/cloudflared",
"version": "2025.8.1",
"date": "2025-08-21T15:39:34Z"
},
{
"name": "gethomepage/homepage",
"version": "v1.4.6",
@@ -804,11 +834,6 @@
"version": "v2.1.2.0-2.1.2.0_beta_2025-08-20",
"date": "2025-08-20T08:15:46Z"
},
{
"name": "TwiN/gatus",
"version": "v5.23.2",
"date": "2025-08-19T21:24:45Z"
},
{
"name": "karlomikus/bar-assistant",
"version": "v5.8.0",
@@ -874,11 +899,6 @@
"version": "v2.5.308",
"date": "2025-08-13T07:09:29Z"
},
{
"name": "bluenviron/mediamtx",
"version": "v1.14.0",
"date": "2025-08-12T13:58:46Z"
},
{
"name": "slskd/slskd",
"version": "0.23.2",
@@ -989,26 +1009,11 @@
"version": "v2.19.0",
"date": "2025-07-27T22:25:00Z"
},
{
"name": "heiher/hev-socks5-server",
"version": "2.9.0",
"date": "2025-07-25T14:20:25Z"
},
{
"name": "TasmoAdmin/TasmoAdmin",
"version": "v4.3.1",
"date": "2025-07-22T20:10:08Z"
},
{
"name": "PCJones/UmlautAdaptarr",
"version": "v0.7.3",
"date": "2025-07-22T14:39:54Z"
},
{
"name": "icereed/paperless-gpt",
"version": "v0.22.0",
"date": "2025-07-17T06:35:43Z"
},
{
"name": "sbondCo/Watcharr",
"version": "v2.1.1",
@@ -1029,11 +1034,6 @@
"version": "1.3.11",
"date": "2025-07-13T13:33:48Z"
},
{
"name": "eclipse-mosquitto/mosquitto",
"version": "v2.0.22",
"date": "2025-07-11T21:34:20Z"
},
{
"name": "NginxProxyManager/nginx-proxy-manager",
"version": "v2.12.6",

View File

@@ -13,9 +13,7 @@ setting_up_container
network_check
update_os
msg_info "Installing AdGuard Home"
$STD tar zxvf <(curl -fsSL https://static.adtidy.org/adguardhome/release/AdGuardHome_linux_amd64.tar.gz) -C /opt
msg_ok "Installed AdGuard Home"
fetch_and_deploy_gh_release "AdGuardHome" "AdguardTeam/AdGuardHome" "prebuild" "latest" "/opt/AdGuardHome" "AdGuardHome_linux_amd64.tar.gz"
msg_info "Creating Service"
cat <<EOF >/etc/systemd/system/AdGuardHome.service
@@ -45,6 +43,7 @@ motd_ssh
customize
msg_info "Cleaning up"
$STD apt-get -y autoremove
$STD apt-get -y autoclean
$STD apt -y autoremove
$STD apt -y autoclean
$STD apt -y clean
msg_ok "Cleaned"

View File

@@ -0,0 +1,70 @@
#!/usr/bin/env bash
# Copyright (c) 2021-2025 community-scripts ORG
# Author: cobalt (cobaltgit)
# License: MIT | https://github.com/community-scripts/ProxmoxVE/raw/main/LICENSE
# Source: https://caddyserver.com/
source /dev/stdin <<<"$FUNCTIONS_FILE_PATH"
color
verb_ip6
catch_errors
setting_up_container
network_check
update_os
msg_info "Installing Caddy"
$STD apk add --no-cache caddy caddy-openrc
cat <<EOF >/etc/caddy/Caddyfile
:80 {
# Set this path to your site's directory.
root * /var/www/html
# Enable the static file server.
file_server
# Another common task is to set up a reverse proxy:
# reverse_proxy localhost:8080
# Or serve a PHP site through php-fpm:
# php_fastcgi localhost:9000
}
EOF
mkdir -p /var/www/html
cat <<EOF >/var/www/html/index.html
<!DOCTYPE html>
<html>
<head>
<title>Caddy works!</title>
</head>
<body>
<h1>Hello Caddy!</h1>
<p>For more information, refer to the Caddy <a href="https://caddyserver.com/docs/">documentation</a><p>
</body>
</html>
EOF
msg_ok "Installed Caddy"
read -r -p "${TAB3}Would you like to install xCaddy Addon? <y/N> " prompt
if [[ "${prompt,,}" =~ ^(y|yes)$ ]]; then
GO_VERSION="$(curl -fsSL https://go.dev/VERSION?m=text | head -1 | cut -c3-)" setup_go
msg_info "Setup xCaddy"
cd /opt
RELEASE=$(curl -fsSL https://api.github.com/repos/caddyserver/xcaddy/releases/latest | grep "tag_name" | awk '{print substr($2, 2, length($2)-3) }')
curl -fsSL "https://github.com/caddyserver/xcaddy/releases/download/${RELEASE}/xcaddy_${RELEASE:1}_linux_amd64.tar.gz" -o "xcaddy_${RELEASE:1}_linux_amd64.tar.gz"
$STD tar xzf xcaddy_"${RELEASE:1}"_linux_amd64.tar.gz -C /usr/local/bin xcaddy
rm -rf /opt/xcaddy*
$STD xcaddy build
msg_ok "Setup xCaddy"
fi
msg_info "Enabling Caddy Service"
$STD rc-update add caddy default
msg_ok "Enabled Caddy Service"
msg_info "Starting Caddy"
$STD service caddy start
msg_ok "Started Caddy"
motd_ssh
customize

View File

@@ -15,11 +15,16 @@ update_os
msg_info "Installing Cloudflared"
mkdir -p --mode=0755 /usr/share/keyrings
VERSION="$(awk -F'=' '/^VERSION_CODENAME=/{ print $NF }' /etc/os-release)"
curl -fsSL https://pkg.cloudflare.com/cloudflare-main.gpg >/usr/share/keyrings/cloudflare-main.gpg
echo "deb [signed-by=/usr/share/keyrings/cloudflare-main.gpg] https://pkg.cloudflare.com/cloudflared $VERSION main" >/etc/apt/sources.list.d/cloudflared.list
$STD apt-get update
$STD apt-get install -y cloudflared
cat <<EOF >/etc/apt/sources.list.d/cloudflared.sources
Types: deb
URIs: https://pkg.cloudflare.com/cloudflared/
Suites: any
Components: main
Signed-By: /usr/share/keyrings/cloudflare-main.gpg
EOF
$STD apt update
$STD apt install -y cloudflared
msg_ok "Installed Cloudflared"
read -r -p "${TAB3}Would you like to configure cloudflared as a DNS-over-HTTPS (DoH) proxy? <y/N> " prompt
@@ -61,6 +66,7 @@ motd_ssh
customize
msg_info "Cleaning up"
$STD apt-get -y autoremove
$STD apt-get -y autoclean
$STD apt -y autoremove
$STD apt -y autoclean
$STD apt -y clean
msg_ok "Cleaned"

View File

@@ -17,6 +17,8 @@ motd_ssh
customize
msg_info "Cleaning up"
$STD apt-get -y autoremove
$STD apt-get -y autoclean
$STD apt -y autoremove
$STD apt -y autoclean
$STD apt -y clean
msg_ok "Cleaned"

View File

@@ -0,0 +1,30 @@
#!/usr/bin/env bash
# Copyright (c) 2021-2025 community-scripts ORG
# Author: Giovanni Pellerano (evilaliv3)
# License: MIT | https://github.com/community-scripts/ProxmoxVE/raw/main/LICENSE
# Source: https://github.com/globaleaks/globaleaks-whistleblowing-software
source /dev/stdin <<<"$FUNCTIONS_FILE_PATH"
color
verb_ip6
catch_errors
setting_up_container
network_check
update_os
msg_info "Setup GlobaLeaks"
DISTRO_CODENAME="$(awk -F= '/^VERSION_CODENAME=/{print $2}' /etc/os-release)"
curl -fsSL https://deb.globaleaks.org/globaleaks.asc | gpg --dearmor -o /etc/apt/trusted.gpg.d/globaleaks.gpg
echo "deb [signed-by=/etc/apt/trusted.gpg.d/globaleaks.gpg] http://deb.globaleaks.org $DISTRO_CODENAME/" >/etc/apt/sources.list.d/globaleaks.list
echo 'APPARMOR_SANDBOXING=0' >/etc/default/globaleaks
$STD apt update
$STD apt -y install globaleaks
msg_ok "Setup GlobaLeaks"
motd_ssh
customize
msg_info "Cleaning up"
$STD apt-get -y autoremove
$STD apt-get -y autoclean
msg_ok "Cleaned"

View File

@@ -1,7 +1,7 @@
#!/usr/bin/env bash
# Copyright (c) 2021-2025 community-scripts ORG
# Author: cfurrow
# Author: cfurrow | Co-Author: Slaviša Arežina (tremor021)
# License: MIT | https://github.com/community-scripts/ProxmoxVE/raw/main/LICENSE
# Source: https://github.com/gristlabs/grist-core
@@ -17,20 +17,15 @@ msg_info "Installing Dependencies"
$STD apt-get install -y \
make \
ca-certificates \
python3.11-venv
python3-venv
msg_ok "Installed Dependencies"
NODE_VERSION="22" NODE_MODULE="yarn@latest" setup_nodejs
fetch_and_deploy_gh_release "grist" "gristlabs/grist-core" "tarball"
msg_info "Installing Grist"
RELEASE=$(curl -fsSL https://api.github.com/repos/gristlabs/grist-core/releases/latest | grep "tag_name" | awk '{print substr($2, 3, length($2)-4) }')
export CYPRESS_INSTALL_BINARY=0
export NODE_OPTIONS="--max-old-space-size=2048"
cd /opt
curl -fsSL "https://github.com/gristlabs/grist-core/archive/refs/tags/v${RELEASE}.zip" -o "v${RELEASE}.zip"
$STD unzip v$RELEASE.zip
mv grist-core-${RELEASE} grist
cd grist
cd /opt/grist
$STD yarn install
$STD yarn run build:prod
$STD yarn run install:python
@@ -64,7 +59,6 @@ motd_ssh
customize
msg_info "Cleaning up"
rm -rf /opt/v${RELEASE}.zip
$STD apt-get -y autoremove
$STD apt-get -y autoclean
msg_ok "Cleaned"

View File

@@ -15,14 +15,7 @@ update_os
setup_uv
msg_info "Configuring apt and installing dependencies"
echo "deb http://deb.debian.org/debian testing main contrib" >/etc/apt/sources.list.d/immich.list
cat <<EOF >/etc/apt/preferences.d/immich
Package: *
Pin: release a=testing
Pin-Priority: -10
EOF
msg_info "Installing dependencies"
$STD apt-get update
$STD apt-get install --no-install-recommends -y \
git \
@@ -53,25 +46,33 @@ $STD apt-get install --no-install-recommends -y \
libgomp1 \
liblqr-1-0 \
libltdl7 \
libmimalloc2.0 \
libmimalloc3 \
libopenjp2-7 \
meson \
ninja-build \
pkg-config \
cpanminus \
mesa-utils \
mesa-va-drivers \
mesa-vulkan-drivers \
ocl-icd-libopencl1 \
tini \
zlib1g
zlib1g \
libio-compress-brotli-perl \
libwebp7 \
libwebpdemux2 \
libwebpmux3 \
libhwy1t64 \
libdav1d-dev \
libhwy-dev \
libwebp-dev \
libaom-dev
curl -fsSL https://repo.jellyfin.org/jellyfin_team.gpg.key | gpg --dearmor -o /etc/apt/keyrings/jellyfin.gpg
DPKG_ARCHITECTURE="$(dpkg --print-architecture)"
export DPKG_ARCHITECTURE
cat <<EOF >/etc/apt/sources.list.d/jellyfin.sources
Types: deb
URIs: https://repo.jellyfin.org/debian
Suites: bookworm
Suites: trixie
Components: main
Architectures: ${DPKG_ARCHITECTURE}
Signed-By: /etc/apt/keyrings/jellyfin.gpg
@@ -93,6 +94,7 @@ read -r -p "${TAB3}Install OpenVINO dependencies for Intel HW-accelerated machin
if [[ ${prompt,,} =~ ^(y|yes)$ ]]; then
msg_info "Installing OpenVINO dependencies"
touch ~/.openvino
$STD apt-get install -y --no-install-recommends patchelf
tmp_dir=$(mktemp -d)
$STD pushd "$tmp_dir"
curl -fsSLO https://github.com/intel/intel-graphics-compiler/releases/download/igc-1.0.17384.11/intel-igc-core_1.0.17384.11_amd64.deb
@@ -100,6 +102,7 @@ if [[ ${prompt,,} =~ ^(y|yes)$ ]]; then
curl -fsSLO https://github.com/intel/compute-runtime/releases/download/24.31.30508.7/intel-opencl-icd_24.31.30508.7_amd64.deb
curl -fsSLO https://github.com/intel/compute-runtime/releases/download/24.31.30508.7/libigdgmm12_22.4.1_amd64.deb
$STD apt install -y ./*.deb
$STD apt-mark hold libigdgmm12
$STD popd
rm -rf "$tmp_dir"
dpkg -l | grep "intel-opencl-icd" | awk '{print $3}' >~/.intel_version
@@ -134,27 +137,7 @@ $STD sudo -u postgres psql -c "ALTER USER $DB_USER WITH SUPERUSER;"
} >>~/"$APPLICATION".creds
msg_ok "Set up Postgresql Database"
msg_info "Installing Packages from Testing Repo"
export APT_LISTCHANGES_FRONTEND=none
export DEBIAN_FRONTEND=noninteractive
$STD apt-get install -t testing --no-install-recommends -y \
libio-compress-brotli-perl \
libwebp7 \
libwebpdemux2 \
libwebpmux3 \
libhwy1t64 \
libdav1d-dev \
libhwy-dev \
libwebp-dev \
libaom-dev
if [[ -f ~/.openvino ]]; then
$STD apt-get install -t testing -y patchelf
fi
msg_ok "Packages from Testing Repo Installed"
$STD sudo -u postgres psql -c "ALTER DATABASE postgres REFRESH COLLATION VERSION;"
$STD sudo -u postgres psql -c "ALTER DATABASE $DB_NAME REFRESH COLLATION VERSION;"
msg_info "Compiling Custom Photo-processing Library (extreme patience)"
LD_LIBRARY_PATH=/usr/local/lib
export LD_RUN_PATH=/usr/local/lib
STAGING_DIR=/opt/staging
@@ -169,8 +152,7 @@ cd "$STAGING_DIR"
SOURCE=${SOURCE_DIR}/libjxl
JPEGLI_LIBJPEG_LIBRARY_SOVERSION="62"
JPEGLI_LIBJPEG_LIBRARY_VERSION="62.3.0"
# : "${LIBJXL_REVISION:=$(jq -cr '.revision' $BASE_DIR/server/sources/libjxl.json)}"
: "${LIBJXL_REVISION:=794a5dcf0d54f9f0b20d288a12e87afb91d20dfc}"
: "${LIBJXL_REVISION:=$(jq -cr '.revision' $BASE_DIR/server/sources/libjxl.json)}"
$STD git clone https://github.com/libjxl/libjxl.git "$SOURCE"
cd "$SOURCE"
$STD git reset --hard "$LIBJXL_REVISION"
@@ -207,8 +189,7 @@ msg_ok "(1/5) Compiled libjxl"
msg_info "(2/5) Compiling libheif"
SOURCE=${SOURCE_DIR}/libheif
# : "${LIBHEIF_REVISION:=$(jq -cr '.revision' $BASE_DIR/server/sources/libheif.json)}"
: "${LIBHEIF_REVISION:=35dad50a9145332a7bfdf1ff6aef6801fb613d68}"
: "${LIBHEIF_REVISION:=$(jq -cr '.revision' $BASE_DIR/server/sources/libheif.json)}"
$STD git clone https://github.com/strukturag/libheif.git "$SOURCE"
cd "$SOURCE"
$STD git reset --hard "$LIBHEIF_REVISION"
@@ -233,8 +214,7 @@ msg_ok "(2/5) Compiled libheif"
msg_info "(3/5) Compiling libraw"
SOURCE=${SOURCE_DIR}/libraw
# : "${LIBRAW_REVISION:=$(jq -cr '.revision' $BASE_DIR/server/sources/libraw.json)}"
: "${LIBRAW_REVISION:=09bea31181b43e97959ee5452d91e5bc66365f1f}"
: "${LIBRAW_REVISION:=$(jq -cr '.revision' $BASE_DIR/server/sources/libraw.json)}"
$STD git clone https://github.com/libraw/libraw.git "$SOURCE"
cd "$SOURCE"
$STD git reset --hard "$LIBRAW_REVISION"
@@ -249,12 +229,11 @@ msg_ok "(3/5) Compiled libraw"
msg_info "(4/5) Compiling imagemagick"
SOURCE=$SOURCE_DIR/imagemagick
# : "${IMAGEMAGICK_REVISION:=$(jq -cr '.revision' $BASE_DIR/server/sources/imagemagick.json)}"
: "${IMAGEMAGICK_REVISION:=8289a3388a085ad5ae81aa6812f21554bdfd54f2}"
: "${IMAGEMAGICK_REVISION:=$(jq -cr '.revision' $BASE_DIR/server/sources/imagemagick.json)}"
$STD git clone https://github.com/ImageMagick/ImageMagick.git "$SOURCE"
cd "$SOURCE"
$STD git reset --hard "$IMAGEMAGICK_REVISION"
$STD ./configure --with-modules
$STD ./configure --with-modules CPPFLAGS="-DMAGICK_LIBRAW_VERSION_TAIL=202502"
$STD make -j"$(nproc)"
$STD make install
ldconfig /usr/local/lib
@@ -264,8 +243,7 @@ msg_ok "(4/5) Compiled imagemagick"
msg_info "(5/5) Compiling libvips"
SOURCE=$SOURCE_DIR/libvips
# : "${LIBVIPS_REVISION:=$(jq -cr '.revision' $BASE_DIR/server/sources/libvips.json)}"
: "${LIBVIPS_REVISION:=8fa37a64547e392d3808eed8d72adab7e02b3d00}"
: "${LIBVIPS_REVISION:=$(jq -cr '.revision' $BASE_DIR/server/sources/libvips.json)}"
$STD git clone https://github.com/libvips/libvips.git "$SOURCE"
cd "$SOURCE"
$STD git reset --hard "$LIBVIPS_REVISION"
@@ -294,7 +272,7 @@ GEO_DIR="${INSTALL_DIR}/geodata"
mkdir -p "$INSTALL_DIR"
mkdir -p {"${APP_DIR}","${UPLOAD_DIR}","${GEO_DIR}","${INSTALL_DIR}"/cache}
fetch_and_deploy_gh_release "immich" "immich-app/immich" "tarball" "v1.142.0" "$SRC_DIR"
fetch_and_deploy_gh_release "immich" "immich-app/immich" "tarball" "v1.142.1" "$SRC_DIR"
msg_info "Installing ${APPLICATION} (patience)"
@@ -314,6 +292,7 @@ sed -i 's|^start|./start|' "$APP_DIR"/bin/immich-admin
# openapi & web build
cd "$SRC_DIR"
echo "packageImportMethod: hardlink" >>./pnpm-workspace.yaml
$STD pnpm --filter @immich/sdk --filter immich-web --frozen-lockfile --force install
$STD pnpm --filter @immich/sdk --filter immich-web build
cp -a web/build "$APP_DIR"/www
@@ -326,16 +305,17 @@ $STD pnpm --filter @immich/cli --prod --no-optional deploy "$APP_DIR"/cli
msg_ok "Installed Immich Server and Web Components"
cd "$SRC_DIR"/machine-learning
mkdir -p "$ML_DIR"
$STD useradd -U -s /usr/sbin/nologin -r -M -d "$INSTALL_DIR" immich
mkdir -p "$ML_DIR" && chown -R immich:immich "$INSTALL_DIR"
export VIRTUAL_ENV="${ML_DIR}/ml-venv"
if [[ -f ~/.openvino ]]; then
msg_info "Installing HW-accelerated machine-learning"
$STD uv sync --extra openvino --no-cache --active
$STD sudo --preserve-env=VIRTUAL_ENV -nu immich uv sync --extra openvino --active -n -p python3.11 --managed-python
patchelf --clear-execstack "${VIRTUAL_ENV}/lib/python3.11/site-packages/onnxruntime/capi/onnxruntime_pybind11_state.cpython-311-x86_64-linux-gnu.so"
msg_ok "Installed HW-accelerated machine-learning"
else
msg_info "Installing machine-learning"
$STD uv sync --extra cpu --no-cache --active
$STD sudo --preserve-env=VIRTUAL_ENV -nu immich uv sync --extra cpu --active -n -p python3.11 --managed-python
msg_ok "Installed machine-learning"
fi
cd "$SRC_DIR"
@@ -374,8 +354,7 @@ mkdir -p /var/log/immich
touch /var/log/immich/{web.log,ml.log}
msg_ok "Installed ${APPLICATION}"
msg_info "Creating user, env file, scripts & services"
$STD useradd -U -s /usr/sbin/nologin -r -M -d "$INSTALL_DIR" immich
msg_info "Modifying user, creating env file, scripts & services"
usermod -aG video,render immich
cat <<EOF >"${INSTALL_DIR}"/.env
@@ -464,11 +443,8 @@ WantedBy=multi-user.target
EOF
chown -R immich:immich "$INSTALL_DIR" /var/log/immich
systemctl enable -q --now "$APPLICATION"-ml.service "$APPLICATION"-web.service
msg_ok "Created user, env file, scripts and services"
msg_ok "Modified user, created env file, scripts and services"
sed -i "$ a VERSION_ID=12" /etc/os-release # otherwise the motd_ssh function will fail
cp /etc/debian_version ~/.debian_version.bak
sed -i 's/.*/13.0/' /etc/debian_version
motd_ssh
customize

View File

@@ -23,19 +23,17 @@ msg_ok "Installed Dependencies"
msg_info "Adding RabbitMQ signing key"
curl -fsSL "https://keys.openpgp.org/vks/v1/by-fingerprint/0A9AF2115F4687BD29803A206B73A36E6026DFCA" | gpg --dearmor >/usr/share/keyrings/com.rabbitmq.team.gpg
curl -fsSL "https://github.com/rabbitmq/signing-keys/releases/download/3.0/cloudsmith.rabbitmq-erlang.E495BB49CC4BBE5B.key" | gpg --dearmor >/usr/share/keyrings/rabbitmq.E495BB49CC4BBE5B.gpg
curl -fsSL "https://github.com/rabbitmq/signing-keys/releases/download/3.0/cloudsmith.rabbitmq-server.9F4587F226208342.key" | gpg --dearmor >/usr/share/keyrings/rabbitmq.9F4587F226208342.gpg
msg_ok "Signing keys added"
msg_info "Adding RabbitMQ repository"
cat <<EOF >/etc/apt/sources.list.d/rabbitmq.list
## Provides modern Erlang/OTP releases from a Cloudsmith mirror
deb [signed-by=/usr/share/keyrings/rabbitmq.E495BB49CC4BBE5B.gpg] https://dl.cloudsmith.io/public/rabbitmq/rabbitmq-erlang/deb/debian $(lsb_release -cs) main
deb-src [signed-by=/usr/share/keyrings/rabbitmq.E495BB49CC4BBE5B.gpg] https://dl.cloudsmith.io/public/rabbitmq/rabbitmq-erlang/deb/debian $(lsb_release -cs) main
## Modern Erlang/OTP releases
deb [arch=amd64 signed-by=/usr/share/keyrings/com.rabbitmq.team.gpg] https://deb1.rabbitmq.com/rabbitmq-erlang/debian/bookworm bookworm main
deb [arch=amd64 signed-by=/usr/share/keyrings/com.rabbitmq.team.gpg] https://deb2.rabbitmq.com/rabbitmq-erlang/debian/bookworm bookworm main
## Provides RabbitMQ from a Cloudsmith mirror
deb [signed-by=/usr/share/keyrings/rabbitmq.9F4587F226208342.gpg] https://dl.cloudsmith.io/public/rabbitmq/rabbitmq-server/deb/debian $(lsb_release -cs) main
deb-src [signed-by=/usr/share/keyrings/rabbitmq.9F4587F226208342.gpg] https://dl.cloudsmith.io/public/rabbitmq/rabbitmq-server/deb/debian $(lsb_release -cs) main
## Provides modern RabbitMQ releases
deb [arch=amd64 signed-by=/usr/share/keyrings/com.rabbitmq.team.gpg] https://deb1.rabbitmq.com/rabbitmq-server/debian/bookworm bookworm main
deb [arch=amd64 signed-by=/usr/share/keyrings/com.rabbitmq.team.gpg] https://deb2.rabbitmq.com/rabbitmq-server/debian/bookworm bookworm main
EOF
msg_ok "RabbitMQ repository added"

View File

@@ -30,12 +30,13 @@ $STD apt-get install -y clickhouse-server clickhouse-client
msg_ok "Setup ClickHouse"
msg_info "Setting up Zookeeper"
curl -fsSL "https://dlcdn.apache.org/zookeeper/zookeeper-3.8.4/apache-zookeeper-3.8.4-bin.tar.gz" -o "$HOME/zookeeper.tar.gz"
ZOOURL=$(curl -fsSL https://dlcdn.apache.org/zookeeper/current/ | grep -o 'apache-zookeeper-[0-9.]\+-bin\.tar\.gz' | head -n1)
curl -fsSL "https://dlcdn.apache.org/zookeeper/current/$ZOOURL" -o ~/zookeeper.tar.gz
tar -xzf "$HOME/zookeeper.tar.gz" -C "$HOME"
mkdir -p /opt/zookeeper
mkdir -p /var/lib/zookeeper
mkdir -p /var/log/zookeeper
cp -r ~/apache-zookeeper-3.8.4-bin/* /opt/zookeeper
cp -r ~/apache-zookeeper-*-bin/* /opt/zookeeper
cat <<EOF >/opt/zookeeper/conf/zoo.cfg
tickTime=2000
@@ -256,7 +257,7 @@ customize
msg_info "Cleaning up"
rm -rf ~/zookeeper.tar.gz
rm -rf ~/apache-zookeeper-3.8.4-bin
rm -rf ~/apache-zookeeper-*-bin
$STD apt-get -y autoremove
$STD apt-get -y autoclean
msg_ok "Cleaned"

101
install/tunarr-install.sh Normal file
View File

@@ -0,0 +1,101 @@
#!/usr/bin/env bash
# Copyright (c) 2021-2025 tteck
# Author: chrisbenincasa
# License: MIT | https://github.com/community-scripts/ProxmoxVE/raw/main/LICENSE
# Source: https://tunarr.com/
source /dev/stdin <<<"$FUNCTIONS_FILE_PATH"
color
verb_ip6
catch_errors
setting_up_container
network_check
update_os
msg_info "Setting Up Hardware Acceleration"
if [[ "$CTTYPE" == "0" ]]; then
$STD adduser "$(id -un)" video
$STD adduser "$(id -un)" render
fi
msg_ok "Base Hardware Acceleration Set Up"
read -r -p "${TAB3}Do you need the intel-media-va-driver-non-free driver for HW encoding (Debian 13 only)? <y/N> " prompt
if [[ ${prompt,,} =~ ^(y|yes)$ ]]; then
msg_info "Installing Intel Hardware Acceleration (non-free)"
cat <<'EOF' >/etc/apt/sources.list.d/non-free.sources
Types: deb deb-src
URIs: http://deb.debian.org/debian
Suites: trixie
Components: non-free non-free-firmware
Types: deb deb-src
URIs: http://deb.debian.org/debian-security
Suites: trixie-security
Components: non-free non-free-firmware
Types: deb deb-src
URIs: http://deb.debian.org/debian
Suites: trixie-updates
Components: non-free non-free-firmware
EOF
$STD apt update
$STD apt -y install \
intel-media-va-driver-non-free \
ocl-icd-libopencl1 \
mesa-opencl-icd \
mesa-va-drivers \
libvpl2 \
vainfo \
intel-gpu-tools
else
msg_info "Installing Intel Hardware Acceleration (open packages)"
$STD apt -y install \
va-driver-all \
ocl-icd-libopencl1 \
mesa-opencl-icd \
mesa-va-drivers \
vainfo \
intel-gpu-tools
fi
msg_ok "Installed and Set Up Intel Hardware Acceleration"
fetch_and_deploy_gh_release "tunarr" "chrisbenincasa/tunarr" "singlefile" "latest" "/opt/tunarr" "*linux-x64"
fetch_and_deploy_gh_release "ersatztv-ffmpeg" "ErsatzTV/ErsatzTV-ffmpeg" "prebuild" "latest" "/opt/ErsatzTV-ffmpeg" "*-linux64-gpl-7.1.tar.xz"
msg_info "Set ErsatzTV-ffmpeg links"
chmod +x /opt/ErsatzTV-ffmpeg/bin/*
ln -sf /opt/ErsatzTV-ffmpeg/bin/ffmpeg /usr/bin/ffmpeg
ln -sf /opt/ErsatzTV-ffmpeg/bin/ffplay /usr/bin/ffplay
ln -sf /opt/ErsatzTV-ffmpeg/bin/ffprobe /usr/bin/ffprobe
msg_ok "ffmpeg links set"
msg_info "Creating Service"
cat <<EOF >/etc/systemd/system/tunarr.service
[Unit]
Description=Tunarr Service
After=multi-user.target
[Service]
Type=simple
User=root
WorkingDirectory=/opt/tunarr
ExecStart=/opt/tunarr/tunarr
Restart=always
RestartSec=30
[Install]
WantedBy=multi-user.target
EOF
systemctl enable -q --now tunarr
msg_ok "Created Service"
motd_ssh
customize
msg_info "Cleaning up"
$STD apt -y autoremove
$STD apt -y autoclean
$STD apt -y clean
msg_ok "Cleaned"

84
tools/pve/execute.sh Normal file
View File

@@ -0,0 +1,84 @@
#!/usr/bin/env bash
# Copyright (c) 2021-2025 community-scripts ORG
# Author: jeroenzwart
# License: MIT
# https://github.com/community-scripts/ProxmoxVE/raw/main/LICENSE
function header_info() {
clear
cat <<"EOF"
______ __ __ _ ________
/ ____/ _____ _______ __/ /____ / / | |/ / ____/
/ __/ | |/_/ _ \/ ___/ / / / __/ _ \ / / | / /
/ /____> </ __/ /__/ /_/ / /_/ __/ / /___/ / /___
/_____/_/|_|\___/\___/\__,_/\__/\___/ /_____/_/|_\____/
EOF
}
set -eEuo pipefail
BL=$(echo "\033[36m")
RD=$(echo "\033[01;31m")
CM='\xE2\x9C\x94\033'
GN=$(echo "\033[1;92m")
CL=$(echo "\033[m")
header_info
echo "Loading..."
whiptail --backtitle "Proxmox VE Helper Scripts" --title "Proxmox VE LXC Execute" --yesno "This will execute a command inside selected LXC Containers. Proceed?" 10 58
NODE=$(hostname)
EXCLUDE_MENU=()
MSG_MAX_LENGTH=0
while read -r TAG ITEM; do
OFFSET=2
((${#ITEM} + OFFSET > MSG_MAX_LENGTH)) && MSG_MAX_LENGTH=${#ITEM}+OFFSET
EXCLUDE_MENU+=("$TAG" "$ITEM " "OFF")
done < <(pct list | awk 'NR>1')
excluded_containers=$(whiptail --backtitle "Proxmox VE Helper Scripts" --title "Containers on $NODE" --checklist "\nSelect containers to skip from executing:\n" \
16 $((MSG_MAX_LENGTH + 23)) 6 "${EXCLUDE_MENU[@]}" 3>&1 1>&2 2>&3 | tr -d '"')
if [ $? -ne 0 ]; then
exit
fi
read -r -p "Enter here command for inside the containers: " custom_command
header_info
echo "One moment please...\n"
function execute_in() {
container=$1
name=$(pct exec "$container" hostname)
echo -e "${BL}[Info]${GN} Execute inside${BL} ${name}${GN} with output: ${CL}"
pct exec "$container" -- bash -c "${custom_command}" | tee
}
for container in $(pct list | awk '{if(NR>1) print $1}'); do
if [[ " ${excluded_containers[@]} " =~ " $container " ]]; then
echo -e "${BL}[Info]${GN} Skipping ${BL}$container${CL}"
else
os=$(pct config "$container" | awk '/^ostype/ {print $2}')
if [ "$os" != "debian" ] && [ "$os" != "ubuntu" ]; then
echo -e "${BL}[Info]${GN} Skipping ${name} ${RD}$container is not Debian or Ubuntu ${CL}"
continue
fi
status=$(pct status "$container")
template=$(pct config "$container" | grep -q "template:" && echo "true" || echo "false")
if [ "$template" == "false" ] && [ "$status" == "status: stopped" ]; then
echo -e "${BL}[Info]${GN} Starting${BL} $container ${CL}"
pct start "$container"
echo -e "${BL}[Info]${GN} Waiting For${BL} $container${CL}${GN} To Start ${CL}"
sleep 5
execute_in "$container"
echo -e "${BL}[Info]${GN} Shutting down${BL} $container ${CL}"
pct shutdown "$container" &
elif [ "$status" == "status: running" ]; then
execute_in "$container"
fi
fi
done
wait
echo -e "${GN} Finished, execute command inside selected containers. ${CL} \n"