1
0
forked from Proxmox/ProxmoxVE

Compare commits

..

2 Commits

Author SHA1 Message Date
f543fec926 Update nginxproxymanager.sh 2025-03-24 19:04:30 +01:00
f270ddf0c6 Update nginxproxymanager-install.sh 2025-03-24 19:03:17 +01:00
43 changed files with 531 additions and 1275 deletions

View File

@ -111,8 +111,11 @@ Example:
```bash
$STD apt-get install -y \
curl \
composer \
git \
sudo \
mc \
nginx
```

View File

@ -14,9 +14,12 @@ setting_up_container
network_check
update_os
# Installing Dependencies
# Installing Dependencies with the 3 core dependencies (curl;sudo;mc)
msg_info "Installing Dependencies"
$STD apt-get install -y \
curl \
sudo \
mc \
[PACKAGE_1] \
[PACKAGE_2] \
[PACKAGE_3]

View File

@ -7,5 +7,5 @@ contact_links:
url: https://github.com/community-scripts/ProxmoxVE/discussions/new?category=request-script
about: For feature/script requests, please use the Discussions section.
- name: 💻 Discord
url: https://discord.gg/jsYVk5JBxq
url: https://discord.gg/UHrpNWGwkH
about: Join our Discord server to chat with other users in the Proxmox Helper Scripts community.

View File

@ -14,111 +14,22 @@ Exercise vigilance regarding copycat or coat-tailing sites that seek to exploit
All LXC instances created using this repository come pre-installed with Midnight Commander, which is a command-line tool (`mc`) that offers a user-friendly file and directory management interface for the terminal environment.
## 2025-03-30
### 🚀 Updated Scripts
- #### 🐞 Bug Fixes
- Open WebUI: Fix Ollama update logic [@tremor021](https://github.com/tremor021) ([#3506](https://github.com/community-scripts/ProxmoxVE/pull/3506))
- GoMFT: Add frontend build procedure [@tremor021](https://github.com/tremor021) ([#3499](https://github.com/community-scripts/ProxmoxVE/pull/3499))
- #### ✨ New Features
- Open WebUI: Add Ollama update check [@tremor021](https://github.com/tremor021) ([#3478](https://github.com/community-scripts/ProxmoxVE/pull/3478))
## 2025-03-29
### 🆕 New Scripts
- Alpine MariaDB [@MickLesk](https://github.com/MickLesk) ([#3456](https://github.com/community-scripts/ProxmoxVE/pull/3456))
### 🚀 Updated Scripts
- #### 🐞 Bug Fixes
- Komodo: Fix wrong sed text [@tremor021](https://github.com/tremor021) ([#3491](https://github.com/community-scripts/ProxmoxVE/pull/3491))
- GoMFT: Fix release archive naming [@tremor021](https://github.com/tremor021) ([#3483](https://github.com/community-scripts/ProxmoxVE/pull/3483))
- Homepage: Fix release parsing [@tremor021](https://github.com/tremor021) ([#3484](https://github.com/community-scripts/ProxmoxVE/pull/3484))
- Netdata: Fix debian-keyring dependency missing [@tremor021](https://github.com/tremor021) ([#3477](https://github.com/community-scripts/ProxmoxVE/pull/3477))
- ErsatzTV: Fix temp file reference [@tremor021](https://github.com/tremor021) ([#3476](https://github.com/community-scripts/ProxmoxVE/pull/3476))
- Komodo: Fix compose.env [@tremor021](https://github.com/tremor021) ([#3466](https://github.com/community-scripts/ProxmoxVE/pull/3466))
## 2025-03-28
### 🆕 New Scripts
- Alpine Node-RED [@MickLesk](https://github.com/MickLesk) ([#3457](https://github.com/community-scripts/ProxmoxVE/pull/3457))
### 🚀 Updated Scripts
- #### 🐞 Bug Fixes
- GoMFT: Fix release grep [@tremor021](https://github.com/tremor021) ([#3462](https://github.com/community-scripts/ProxmoxVE/pull/3462))
- ErsatzTV: Fix path in update function [@tremor021](https://github.com/tremor021) ([#3463](https://github.com/community-scripts/ProxmoxVE/pull/3463))
## 2025-03-27
### 🚀 Updated Scripts
- [core]: add functions for Alpine (update / core deps) [@MickLesk](https://github.com/MickLesk) ([#3437](https://github.com/community-scripts/ProxmoxVE/pull/3437))
### 🧰 Maintenance
- #### 💾 Core
- [core]: Refactor Spinner/MSG Function (support now alpine / performance / handling) [@MickLesk](https://github.com/MickLesk) ([#3436](https://github.com/community-scripts/ProxmoxVE/pull/3436))
## 2025-03-26
### 🆕 New Scripts
- Alpine: Gitea [@MickLesk](https://github.com/MickLesk) ([#3424](https://github.com/community-scripts/ProxmoxVE/pull/3424))
### 🚀 Updated Scripts
- FlowiseAI: Fix dependencies [@tremor021](https://github.com/tremor021) ([#3427](https://github.com/community-scripts/ProxmoxVE/pull/3427))
- #### 🐞 Bug Fixes
- fluid-calendar: Fix failed build during updates [@vhsdream](https://github.com/vhsdream) ([#3417](https://github.com/community-scripts/ProxmoxVE/pull/3417))
### 🧰 Maintenance
- #### 📂 Github
- Remove coredeps in CONTRIBUTOR_AND_GUIDES [@bvdberg01](https://github.com/bvdberg01) ([#3420](https://github.com/community-scripts/ProxmoxVE/pull/3420))
## 2025-03-25
### 🧰 Maintenance
- #### 📂 Github
- Discord invite link updated [@MickLesk](https://github.com/MickLesk) ([#3412](https://github.com/community-scripts/ProxmoxVE/pull/3412))
## 2025-03-24
### 🆕 New Scripts
- fileflows [@kkroboth](https://github.com/kkroboth) ([#3392](https://github.com/community-scripts/ProxmoxVE/pull/3392))
- wazuh [@omiinaya](https://github.com/omiinaya) ([#3381](https://github.com/community-scripts/ProxmoxVE/pull/3381))
- wazuh [@omiinaya](https://github.com/omiinaya) ([#3381](https://github.com/community-scripts/ProxmoxVE/pull/3381))
- yt-dlp-webui [@CrazyWolf13](https://github.com/CrazyWolf13) ([#3364](https://github.com/community-scripts/ProxmoxVE/pull/3364))
- Extension/New Script: Redis Alpine Installation [@MickLesk](https://github.com/MickLesk) ([#3367](https://github.com/community-scripts/ProxmoxVE/pull/3367))
### 🚀 Updated Scripts
- #### 🐞 Bug Fixes
- Extend HOME Env for Kubo [@MickLesk](https://github.com/MickLesk) ([#3397](https://github.com/community-scripts/ProxmoxVE/pull/3397))
- #### ✨ New Features
- [core] Rebase Scripts (formatting, highlighting & remove old deps) [@MickLesk](https://github.com/MickLesk) ([#3378](https://github.com/community-scripts/ProxmoxVE/pull/3378))
- #### 🔧 Refactor
- qBittorrent: Switch to static builds for faster updating/upgrading [@tremor021](https://github.com/tremor021) ([#3405](https://github.com/community-scripts/ProxmoxVE/pull/3405))
- Refactor: ErsatzTV Script [@MickLesk](https://github.com/MickLesk) ([#3365](https://github.com/community-scripts/ProxmoxVE/pull/3365))
### 🧰 Maintenance
@ -127,10 +38,6 @@ All LXC instances created using this repository come pre-installed with Midnight
- [core] install core deps (debian / ubuntu) [@MickLesk](https://github.com/MickLesk) ([#3366](https://github.com/community-scripts/ProxmoxVE/pull/3366))
- #### 💾 Core
- [core] extend hardware transcoding for fileflows #3392 [@MickLesk](https://github.com/MickLesk) ([#3396](https://github.com/community-scripts/ProxmoxVE/pull/3396))
- #### 📂 Github
- Refactor Changelog Workflow [@michelroegl-brunner](https://github.com/michelroegl-brunner) ([#3371](https://github.com/community-scripts/ProxmoxVE/pull/3371))

View File

@ -13,7 +13,7 @@
<a href="https://helper-scripts.com">
<img src="https://img.shields.io/badge/Website-4c9b3f?style=for-the-badge&logo=github&logoColor=white" alt="Website" />
</a>
<a href="https://discord.gg/jsYVk5JBxq">
<a href="https://discord.gg/UHrpNWGwkH">
<img src="https://img.shields.io/badge/Discord-7289da?style=for-the-badge&logo=discord&logoColor=white" alt="Discord" />
</a>
<a href="https://ko-fi.com/community_scripts">
@ -82,7 +82,7 @@ We appreciate any contributions to the project—whether it's bug reports, featu
Join our community for support:
- **Discord**: Join our [Proxmox Helper Scripts Discord server](https://discord.gg/jsYVk5JBxq) for real-time support.
- **Discord**: Join our [Proxmox Helper Scripts Discord server](https://discord.gg/UHrpNWGwkH) for real-time support.
- **GitHub Discussions**: [Ask questions or report issues](https://github.com/community-scripts/ProxmoxVE/discussions).
## 🤝 Report a Bug or Feature Request

View File

@ -13,7 +13,7 @@ This project currently supports the following versions of Proxmox VE:
## 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 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/UHrpNWGwkH) 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!
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.

View File

@ -1,45 +0,0 @@
#!/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: MickLesk (CanbiZ)
# License: MIT | https://github.com/community-scripts/ProxmoxVE/raw/main/LICENSE
# Source: https://gitea.io
APP="Alpine-Gitea"
var_tags="alpine;git"
var_cpu="1"
var_ram="256"
var_disk="1"
var_os="alpine"
var_version="3.21"
var_unprivileged="1"
header_info "$APP"
variables
color
catch_errors
function update_script() {
header_info
msg_info "Updating Alpine Packages"
apk update
apk upgrade
msg_ok "Updated Alpine Packages"
msg_info "Updating Gitea"
apk upgrade gitea
msg_ok "Updated Gitea"
msg_info "Restarting Gitea"
rc-service gitea restart
msg_ok "Restarted Gitea"
}
start
build_container
description
msg_ok "Completed Successfully!\n"
echo -e "${CREATING}${GN}${APP} setup has been successfully initialized!${CL}"
echo -e "${INFO}${YW} Access it using the following URL:${CL}"
echo -e "${TAB}${GATEWAY}${BGN}http://${IP}:3000${CL}"

View File

@ -1,46 +0,0 @@
#!/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: MickLesk (CanbiZ)
# License: MIT | https://github.com/community-scripts/ProxmoxVE/raw/main/LICENSE
# Source: https://mariadb.org
APP="Alpine-MariaDB"
var_tags="${var_tags:-alpine;database}"
var_cpu="${var_cpu:-1}"
var_ram="${var_ram:-256}"
var_disk="${var_disk:-1}"
var_os="${var_os:-alpine}"
var_version="${var_version:-3.21}"
var_unprivileged="${var_unprivileged:-1}"
header_info "$APP"
variables
color
catch_errors
function update_script() {
msg_info "Updating Alpine Packages"
$STD apk update
$STD apk upgrade
msg_ok "Updated Alpine Packages"
msg_info "Updating MariaDB"
$STD apk upgrade mariadb mariadb-client
msg_ok "Updated MariaDB"
msg_info "Restarting MariaDB"
$STD rc-service mariadb restart
msg_ok "Restarted MariaDB"
exit 0
}
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 IP:${CL}"
echo -e "${TAB}${GATEWAY}${BGN}${IP}:3306${CL}"

View File

@ -1,50 +0,0 @@
#!/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: MickLesk (CanbiZ)
# License: MIT | https://github.com/community-scripts/ProxmoxVE/raw/main/LICENSE
# Source: https://nodered.org
APP="Alpine-Node-RED"
var_tags="${var_tags:-alpine;automation}"
var_cpu="${var_cpu:-1}"
var_ram="${var_ram:-256}"
var_disk="${var_disk:-1}"
var_os="${var_os:-alpine}"
var_version="${var_version:-3.21}"
var_unprivileged="${var_unprivileged:-1}"
header_info "$APP"
variables
color
catch_errors
function update_script() {
msg_info "Updating Alpine Packages"
$STD apk update
$STD apk upgrade
msg_ok "Updated Alpine Packages"
msg_info "Updating Node.js and npm"
$STD apk upgrade nodejs npm
msg_ok "Updated Node.js and npm"
msg_info "Updating Node-RED"
$STD npm install -g --unsafe-perm node-red
msg_ok "Updated Node-RED"
msg_info "Restarting Node-RED"
$STD rc-service nodered restart
msg_ok "Restarted Node-RED"
exit 0
}
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}:1880${CL}"

View File

@ -39,7 +39,7 @@ function update_script() {
temp_file=$(mktemp)
wget -qO- https://github.com/ErsatzTV/ErsatzTV/releases/download/${RELEASE}/ErsatzTV-${RELEASE}-linux-x64.tar.gz -O "$temp_file"
tar -xzf "$temp_file"
mv ErsatzTV-${RELEASE}-linux-x64 /opt/ErsatzTV
mv /opt/ErsatzTV-${RELEASE}-linux-x64 /opt/ErsatzTV
cp -R ErsatzTV-backup/* /opt/ErsatzTV/
rm -rf ErsatzTV-backup
echo "${RELEASE}" >/opt/${APP}_version.txt

View File

@ -1,73 +0,0 @@
#!/usr/bin/env bash
source <(curl -s https://raw.githubusercontent.com/community-scripts/ProxmoxVE/main/misc/build.func)
# Copyright (c) 2021-2025 community-scripts ORG
# Author: kkroboth
# License: MIT | https://github.com/community-scripts/ProxmoxVE/raw/main/LICENSE
# Source: https://fileflows.com/
APP="FileFlows"
var_tags="media;automation"
var_cpu="2"
var_ram="2048"
var_disk="8"
var_os="debian"
var_version="12"
var_unprivileged="1"
header_info "$APP"
variables
color
catch_errors
function update_script() {
header_info
check_container_storage
check_container_resources
if [[ ! -d /opt/fileflows ]]; then
msg_error "No ${APP} Installation Found!"
exit
fi
update_available=$(curl -s -X 'GET' "http://localhost:19200/api/status/update-available" -H 'accept: application/json' | jq .UpdateAvailable)
if [[ "${update_available}" == "true" ]]; then
msg_info "Stopping $APP"
systemctl stop fileflows
msg_ok "Stopped $APP"
msg_info "Creating Backup"
backup_filename="/opt/${APP}_backup_$(date +%F).tar.gz"
tar -czf $backup_filename -C /opt/fileflows Data
msg_ok "Backup Created"
msg_info "Updating $APP to latest version"
temp_file=$(mktemp)
curl -fsSL https://fileflows.com/downloads/zip -o $temp_file
unzip -oq -d /opt/fileflows $temp_file
msg_ok "Updated $APP to latest version"
msg_info "Starting $APP"
systemctl start fileflows
msg_ok "Started $APP"
msg_info "Cleaning Up"
rm -rf $temp_file
rm -rf $backup_filename
msg_ok "Cleanup Completed"
msg_ok "Update Successful"
else
msg_ok "No update required. ${APP} is already at latest version"
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}:19200${CL}"

View File

@ -35,14 +35,15 @@ function update_script() {
systemctl stop fluid-calendar.service
msg_ok "Stopped $APP"
msg_info "Creating Backup"
tar -czf "/opt/${APP}_backup_$(date +%F).tar.gz" /opt/fluid-calendar
msg_ok "Backup Created"
msg_info "Updating $APP to v${RELEASE}"
cp /opt/fluid-calendar/.env /opt/fluid.env
rm -rf /opt/fluid-calendar
tmp_file=$(mktemp)
wget -q "https://github.com/dotnetfactory/fluid-calendar/archive/refs/tags/v${RELEASE}.zip" -O $tmp_file
unzip -q $tmp_file
mv ${APP}-${RELEASE}/ /opt/fluid-calendar
mv /opt/fluid.env /opt/fluid-calendar/.env
cp -rf ${APP}-${RELEASE}/* /opt/fluid-calendar
cd /opt/fluid-calendar
export NEXT_TELEMETRY_DISABLED=1
$STD npm install --legacy-peer-deps
@ -57,6 +58,8 @@ function update_script() {
msg_info "Cleaning Up"
rm -rf $tmp_file
rm -rf "/opt/${APP}_backup_$(date +%F).tar.gz"
rm -rf /tmp/${APP}-${RELEASE}
msg_ok "Cleanup Completed"
echo "${RELEASE}" >/opt/${APP}_version.txt

View File

@ -28,17 +28,11 @@ function update_script() {
msg_error "No ${APP} Installation Found!"
exit
fi
RELEASE=$(curl -fsSL https://api.github.com/repos/StarFleetCPTN/GoMFT/releases/latest | grep "tag_name" | awk '{print substr($2, 3, length($2)-4) }')
RELEASE=$(curl -s https://api.github.com/repos/StarFleetCPTN/GoMFT/releases/latest | grep "tag_name" | awk '{print substr($2, 3, length($2)-4) }')
if ! dpkg -l | grep -q "^ii.*build-essential"; then
$STD apt-get install -y build-essential
fi
if [[ ! -f "/usr/bin/node" ]]; then
mkdir -p /etc/apt/keyrings
curl -fsSL https://deb.nodesource.com/gpgkey/nodesource-repo.gpg.key | gpg --dearmor -o /etc/apt/keyrings/nodesource.gpg
echo "deb [signed-by=/etc/apt/keyrings/nodesource.gpg] https://deb.nodesource.com/node_22.x nodistro main" >/etc/apt/sources.list.d/nodesource.list
$STD apt-get update
$STD apt-get install -y nodejs
fi
if [[ "${RELEASE}" != "$(cat /opt/${APP}_version.txt)" ]] || [[ ! -f /opt/${APP}_version.txt ]]; then
msg_info "Stopping $APP"
systemctl stop gomft
@ -47,15 +41,12 @@ function update_script() {
msg_info "Updating $APP to ${RELEASE}"
rm -f /opt/gomft/gomft
temp_file=$(mktemp)
curl -fsSL "https://github.com/StarFleetCPTN/GoMFT/archive/refs/tags/v.${RELEASE}.tar.gz" -o $temp_file
wget -q "https://github.com/StarFleetCPTN/GoMFT/archive/refs/tags/v${RELEASE}.tar.gz" -O $temp_file
tar -xzf $temp_file
cp -rf GoMFT-v.${RELEASE}/* /opt/gomft
cp -rf GoMFT-${RELEASE}/* /opt/gomft
cd /opt/gomft
rm -f /opt/gomft/node_modules
$STD npm ci
$STD node build.js
$STD go mod download
$STD go get -u github.com/a-h/templ
$STD go install github.com/a-h/templ/cmd/templ@latest
$STD $HOME/go/bin/templ generate
export CGO_ENABLED=1
export GOOS=linux
@ -66,7 +57,7 @@ function update_script() {
msg_info "Cleaning Up"
rm -f $temp_file
rm -rf $HOME/GoMFT-v.${RELEASE}
rm -rf GoMFT-${RELEASE}
msg_ok "Cleanup Complete"
msg_info "Starting $APP"

View File

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

View File

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

View File

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

View File

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

View File

@ -40,7 +40,7 @@ function update_script() {
if [[ "${RELEASE}" != "$(cat /opt/${APP}_version.txt)" ]] || [[ ! -f /opt/${APP}_version.txt ]]; then
msg_info "Updating Homepage to v${RELEASE} (Patience)"
systemctl stop homepage
curl -fsSL "https://github.com/gethomepage/homepage/archive/refs/tags/v${RELEASE}.tar.gz" -o $(basename "https://github.com/gethomepage/homepage/archive/refs/tags/v${RELEASE}.tar.gz")
wget -q https://github.com/gethomepage/homepage/archive/refs/tags/v${RELEASE}.tar.gz
tar -xzf v${RELEASE}.tar.gz
rm -rf v${RELEASE}.tar.gz
cp -r homepage-${RELEASE}/* /opt/homepage/

View File

@ -62,8 +62,6 @@ function update_script() {
ln -sf /usr/local/openresty/nginx/ /etc/nginx
sed -i "s|\"version\": \"0.0.0\"|\"version\": \"$RELEASE\"|" backend/package.json
sed -i "s|\"version\": \"0.0.0\"|\"version\": \"$RELEASE\"|" frontend/package.json
sed -i 's|"fork-me": ".*"|"fork-me": "Proxmox VE Helper-Scripts"|' frontend/js/i18n/messages.json
sed -i "s|https://github.com.*source=nginx-proxy-manager|https://helper-scripts.com|g" frontend/js/app/ui/footer/main.ejs
sed -i 's+^daemon+#daemon+g' docker/rootfs/etc/nginx/nginx.conf
NGINX_CONFS=$(find "$(pwd)" -type f -name "*.conf")
for NGINX_CONF in $NGINX_CONFS; do

View File

@ -27,21 +27,6 @@ function update_script() {
msg_error "No ${APP} Installation Found!"
exit
fi
if [ -x "/usr/bin/ollama" ]; then
msg_info "Updating Ollama"
OLLAMA_VERSION=$(ollama -v | awk '{print $NF}')
RELEASE=$(curl -s https://api.github.com/repos/ollama/ollama/releases/latest | grep "tag_name" | awk '{print substr($2, 3, length($2)-4)}')
if [ "$OLLAMA_VERSION" != "$RELEASE" ]; then
curl -fsSLO https://ollama.com/download/ollama-linux-amd64.tgz
tar -C /usr -xzf ollama-linux-amd64.tgz
rm -rf ollama-linux-amd64.tgz
msg_ok "Ollama updated to version $RELEASE"
else
msg_ok "Ollama is already up to date."
fi
fi
msg_info "Updating ${APP} (Patience)"
cd /opt/open-webui
mkdir -p /opt/open-webui-backup

View File

@ -1,7 +1,7 @@
#!/usr/bin/env bash
source <(curl -s https://raw.githubusercontent.com/community-scripts/ProxmoxVE/main/misc/build.func)
# Copyright (c) 2021-2025 community-scripts ORG
# Author: tteck (tteckster) | Co-Author: Slaviša Arežina (tremor021)
# Copyright (c) 2021-2025 tteck
# Author: tteck (tteckster)
# License: MIT | https://github.com/community-scripts/ProxmoxVE/raw/main/LICENSE
# Source: https://www.qbittorrent.org/
@ -27,36 +27,10 @@ function update_script() {
msg_error "No ${APP} Installation Found!"
exit
fi
if [[ ! -f /opt/${APP}_version.txt ]]; then
touch /opt/${APP}_version.txt
mkdir -p $HOME/.config/qBittorrent/
mkdir -p /opt/qbittorrent/
mv /.config/qBittorrent $HOME/.config/
$STD apt-get remove --purge -y qbittorrent-nox
sed -i 's@ExecStart=/usr/bin/qbittorrent-nox@ExecStart=/opt/qbittorrent/qbittorrent-nox@g' /etc/systemd/system/qbittorrent-nox.service
systemctl daemon-reload
fi
FULLRELEASE=$(curl -s https://api.github.com/repos/userdocs/qbittorrent-nox-static/releases/latest | grep "tag_name" | awk '{print substr($2, 2, length($2)-3) }')
RELEASE=$(echo $FULLRELEASE | cut -c 9-13)
if [[ ! -f /opt/${APP}_version.txt ]] || [[ "${RELEASE}" != "$(cat /opt/${APP}_version.txt)" ]]; then
msg_info "Stopping Service"
systemctl stop qbittorrent-nox
msg_ok "Stopped Service"
msg_info "Updating ${APP} to v${RELEASE}"
rm -f /opt/qbittorrent/qbittorrent-nox
curl -fsSL "https://github.com/userdocs/qbittorrent-nox-static/releases/download/${FULLRELEASE}/x86_64-qbittorrent-nox" -o /opt/qbittorrent/qbittorrent-nox
chmod +x /opt/qbittorrent/qbittorrent-nox
echo "${RELEASE}" >/opt/${APP}_version.txt
msg_ok "Updated $APP to v${RELEASE}"
msg_info "Starting Service"
systemctl start qbittorrent-nox
msg_ok "Started Service"
msg_ok "Updated Successfully"
else
msg_ok "No update required. ${APP} is already at v${RELEASE}"
fi
msg_info "Updating ${APP} LXC"
$STD apt-get update
$STD apt-get -y upgrade
msg_ok "Updated ${APP} LXC"
exit
}

View File

@ -1,39 +0,0 @@
{
"name": "FileFlows",
"slug": "fileflows",
"categories": [
13
],
"date_created": "2025-03-24",
"type": "ct",
"updateable": true,
"privileged": false,
"interface_port": 19200,
"documentation": "https://fileflows.com/docs",
"website": "https://fileflows.com/",
"logo": "https://raw.githubusercontent.com/revenz/FileFlows/refs/heads/develop/icon.png",
"description": "FileFlows is a powerful, open-source tool for automating media file processing workflows, including encoding, decoding, and media management. It offers an intuitive GUI and extensive plugin support, making it ideal for tasks like video transcoding, organizing, and managing large media libraries.",
"install_methods": [
{
"type": "default",
"script": "ct/fileflows.sh",
"resources": {
"cpu": 2,
"ram": 2048,
"hdd": 8,
"os": "Debian",
"version": "12"
}
}
],
"default_credentials": {
"username": null,
"password": null
},
"notes": [
{
"text": "With Privileged/Unprivileged Hardware Acceleration Support",
"type": "info"
}
]
}

View File

@ -1,39 +1,34 @@
{
"name": "FlowiseAI",
"slug": "flowiseai",
"categories": [
20
],
"date_created": "2024-05-02",
"type": "ct",
"updateable": true,
"privileged": false,
"interface_port": 3000,
"documentation": "https://docs.flowiseai.com/",
"website": "https://flowiseai.com/",
"logo": "https://flowiseai.com/_next/image?url=%2F_next%2Fstatic%2Fmedia%2Flogo-color-high.e60de2f8.png&w=256&q=75",
"description": "FlowiseAI is an open source low-code tool for developers to build customized LLM orchestration flow & AI agents",
"install_methods": [
{
"type": "default",
"script": "ct/flowiseai.sh",
"resources": {
"cpu": 4,
"ram": 4096,
"hdd": 10,
"os": "debian",
"version": "12"
}
}
],
"default_credentials": {
"username": null,
"password": null
},
"notes": [
{
"text": "Application takes long time to install. Please be patient!",
"type": "warning"
}
]
"name": "FlowiseAI",
"slug": "flowiseai",
"categories": [
20
],
"date_created": "2024-05-02",
"type": "ct",
"updateable": true,
"privileged": false,
"interface_port": 3000,
"documentation": null,
"website": "https://flowiseai.com/",
"logo": "https://flowiseai.com/_next/image?url=%2F_next%2Fstatic%2Fmedia%2Flogo-color-high.e60de2f8.png&w=256&q=75",
"description": "FlowiseAI is an open source low-code tool for developers to build customized LLM orchestration flow & AI agents",
"install_methods": [
{
"type": "default",
"script": "ct/flowiseai.sh",
"resources": {
"cpu": 4,
"ram": 4096,
"hdd": 10,
"os": "debian",
"version": "12"
}
}
],
"default_credentials": {
"username": null,
"password": null
},
"notes": []
}

View File

@ -24,17 +24,6 @@
"os": "debian",
"version": "12"
}
},
{
"type": "alpine",
"script": "ct/alpine-gitea.sh",
"resources": {
"cpu": 1,
"ram": 256,
"hdd": 1,
"os": "alpine",
"version": "3.21"
}
}
],
"default_credentials": {

View File

@ -24,17 +24,6 @@
"os": "debian",
"version": "12"
}
},
{
"type": "alpine",
"script": "ct/alpine-mariadb.sh",
"resources": {
"cpu": 1,
"ram": 256,
"hdd": 1,
"os": "alpine",
"version": "3.21"
}
}
],
"default_credentials": {

View File

@ -24,17 +24,6 @@
"os": "debian",
"version": "12"
}
},
{
"type": "alpine",
"script": "ct/alpine-node-red.sh",
"resources": {
"cpu": 1,
"ram": 256,
"hdd": 1,
"os": "alpine",
"version": "3.21"
}
}
],
"default_credentials": {
@ -43,7 +32,7 @@
},
"notes": [
{
"text": "To install themes, type `update` in the LXC console. (debian/ubuntu only)",
"text": "To install themes, type `update` in the LXC console.",
"type": "info"
}
]

View File

@ -1,404 +1,49 @@
[
{
"name": "pocketbase/pocketbase",
"version": "v0.26.6",
"date": "2025-03-30T08:02:19Z"
},
{
"name": "Prowlarr/Prowlarr",
"version": "v1.32.2.4987",
"date": "2025-03-16T09:41:37Z"
},
{
"name": "Readarr/Readarr",
"version": "v2.0.0.4645",
"date": "2017-03-07T18:56:06Z"
},
{
"name": "Lidarr/Lidarr",
"version": "v2.10.3.4602",
"date": "2025-03-23T11:00:37Z"
},
{
"name": "Radarr/Radarr",
"version": "v5.21.1.9799",
"date": "2025-03-24T15:52:12Z"
},
{
"name": "aceberg/WatchYourLAN",
"version": "2.1.2-alpine",
"date": "2025-03-30T06:25:22Z"
},
{
"name": "Jackett/Jackett",
"version": "v0.22.1709",
"date": "2025-03-30T05:51:21Z"
},
{
"name": "pocket-id/pocket-id",
"version": "v0.45.0",
"date": "2025-03-29T23:12:22Z"
},
{
"name": "keycloak/keycloak",
"version": "26.1.4",
"date": "2025-03-13T15:41:42Z"
},
{
"name": "glanceapp/glance",
"version": "v0.7.9",
"date": "2025-03-29T18:08:11Z"
},
{
"name": "home-assistant/core",
"version": "2025.3.4",
"date": "2025-03-21T20:22:46Z"
},
{
"name": "theonedev/onedev",
"version": "v11.8.4",
"date": "2025-03-29T13:37:15Z"
},
{
"name": "runtipi/runtipi",
"version": "v3.10.0",
"date": "2025-03-15T14:38:16Z"
},
{
"name": "syncthing/syncthing",
"version": "v2.0.0-beta.1",
"date": "2025-03-29T12:53:28Z"
},
{
"name": "tobychui/zoraxy",
"version": "v3.1.9",
"date": "2025-03-01T02:24:33Z"
},
{
"name": "inspircd/inspircd",
"version": "v4.7.0",
"date": "2025-03-29T03:50:50Z"
},
{
"name": "fhem/fhem-mirror",
"version": "6.2",
"date": "2025-03-29T01:59:30Z"
},
{
"name": "bunkerity/bunkerweb",
"version": "v1.6.1",
"date": "2025-03-15T17:29:17Z"
},
{
"name": "OliveTin/OliveTin",
"version": "2025.3.28",
"date": "2025-03-29T00:18:56Z"
},
{
"name": "msgbyte/tianji",
"version": "v1.19.5",
"date": "2025-03-28T22:03:01Z"
},
{
"name": "homarr-labs/homarr",
"version": "v1.13.1",
"date": "2025-03-28T21:58:30Z"
},
{
"name": "TasmoAdmin/TasmoAdmin",
"version": "v4.2.3",
"date": "2025-02-09T23:07:48Z"
},
{
"name": "gristlabs/grist-core",
"version": "v1.5.0",
"date": "2025-03-28T20:43:51Z"
},
{
"name": "grocy/grocy",
"version": "v4.5.0",
"date": "2025-03-28T19:02:22Z"
},
{
"name": "Brandawg93/PeaNUT",
"version": "v5.6.1",
"date": "2025-03-28T18:40:22Z"
},
{
"name": "NodeBB/NodeBB",
"version": "v4.2.0",
"date": "2025-03-19T18:34:01Z"
},
{
"name": "louislam/uptime-kuma",
"version": "2.0.0-beta.2-temp",
"date": "2025-03-28T08:45:58Z"
},
{
"name": "zitadel/zitadel",
"version": "v2.71.5",
"date": "2025-03-28T15:34:27Z"
},
{
"name": "emqx/emqx",
"version": "e5.9.0-beta.2",
"date": "2025-03-28T15:06:27Z"
},
{
"name": "goauthentik/authentik",
"version": "version/2025.2.3",
"date": "2025-03-28T14:28:34Z"
},
{
"name": "hakimel/reveal.js",
"version": "5.2.1",
"date": "2025-03-28T13:00:23Z"
},
{
"name": "cockpit-project/cockpit",
"version": "336.2",
"date": "2025-03-28T10:16:47Z"
},
{
"name": "YunoHost/yunohost",
"version": "debian/12.0.12",
"date": "2025-03-16T11:59:24Z"
},
{
"name": "gethomepage/homepage",
"version": "v1.1.1",
"date": "2025-03-28T04:12:31Z"
},
{
"name": "documenso/documenso",
"version": "v1.10.0-rc.3",
"date": "2025-03-28T03:45:54Z"
},
{
"name": "StarFleetCPTN/GoMFT",
"version": "v0.2.3",
"date": "2025-03-27T23:54:49Z"
},
{
"name": "Bubka/2FAuth",
"version": "v5.5.0",
"date": "2025-03-27T22:35:02Z"
},
{
"name": "ellite/Wallos",
"version": "v2.48.1",
"date": "2025-03-27T22:02:16Z"
},
{
"name": "hivemq/hivemq-community-edition",
"version": "2025.2",
"date": "2025-03-27T19:21:13Z"
},
{
"name": "TriliumNext/Notes",
"version": "v0.92.4",
"date": "2025-03-17T16:00:19Z"
},
{
"name": "fallenbagel/jellyseerr",
"version": "preview-music-support",
"date": "2025-03-27T16:54:41Z"
},
{
"name": "immich-app/immich",
"version": "v1.130.3",
"date": "2025-03-27T16:38:04Z"
},
{
"name": "zwave-js/zwave-js-ui",
"version": "v10.1.3",
"date": "2025-03-27T15:51:38Z"
},
{
"name": "home-assistant/operating-system",
"version": "15.0",
"date": "2025-03-17T10:26:18Z"
},
{
"name": "tailscale/tailscale",
"version": "v1.82.0",
"date": "2025-03-27T13:08:18Z"
},
{
"name": "n8n-io/n8n",
"version": "n8n@1.84.3",
"date": "2025-03-27T11:54:33Z"
},
{
"name": "zabbix/zabbix",
"version": "7.2.5",
"date": "2025-03-27T11:06:48Z"
},
{
"name": "evcc-io/evcc",
"version": "0.202.1",
"date": "2025-03-27T08:24:55Z"
},
{
"name": "morpheus65535/bazarr",
"version": "v1.5.1",
"date": "2025-01-01T16:15:52Z"
},
{
"name": "openobserve/openobserve",
"version": "v0.14.5-rc6",
"date": "2025-03-27T05:15:49Z"
},
{
"name": "element-hq/synapse",
"version": "v1.127.1",
"date": "2025-03-26T21:44:28Z"
},
{
"name": "wazuh/wazuh",
"version": "coverity-w13-4.12.0",
"date": "2025-03-26T21:11:43Z"
},
{
"name": "duplicati/duplicati",
"version": "v2.1.0.112-2.1.0.112_canary_2025-03-26",
"date": "2025-03-26T21:04:38Z"
},
{
"name": "ollama/ollama",
"version": "v0.6.3-rc1",
"date": "2025-03-26T20:39:01Z"
"date": "2025-03-24T10:36:10Z"
},
{
"name": "semaphoreui/semaphore",
"version": "v2.13.2",
"date": "2025-03-26T19:13:48Z"
"version": "v2.13.1",
"date": "2025-03-24T09:42:32Z"
},
{
"name": "dgtlmoon/changedetection.io",
"version": "0.49.9",
"date": "2025-03-26T15:31:03Z"
},
{
"name": "prometheus/prometheus",
"version": "v0.303.0-rc.0",
"date": "2025-03-26T12:48:46Z"
},
{
"name": "jupyter/notebook",
"version": "@jupyter-notebook/ui-components@7.4.0-beta.3",
"date": "2025-03-26T10:07:53Z"
},
{
"name": "forgejo/forgejo",
"version": "v12.0.0-dev",
"date": "2025-03-26T09:58:55Z"
"name": "zwave-js/zwave-js-ui",
"version": "v10.1.1",
"date": "2025-03-24T08:34:47Z"
},
{
"name": "Checkmk/checkmk",
"version": "v2.2.0p41",
"date": "2025-03-26T09:55:26Z"
"version": "v2.4.0b2-rc1",
"date": "2025-03-24T07:20:45Z"
},
{
"name": "sct/overseerr",
"version": "v1.34.0",
"date": "2025-03-26T08:48:34Z"
},
{
"name": "esphome/esphome",
"version": "2025.3.2",
"date": "2025-03-25T23:06:45Z"
},
{
"name": "grafana/grafana",
"version": "v11.6.0",
"date": "2025-03-25T22:10:15Z"
},
{
"name": "Stirling-Tools/Stirling-PDF",
"version": "v0.45.0",
"date": "2025-03-25T18:48:17Z"
},
{
"name": "ipfs/kubo",
"version": "v0.34.1",
"date": "2025-03-25T18:11:12Z"
},
{
"name": "dotnetfactory/fluid-calendar",
"version": "v1.3.0",
"date": "2025-03-25T15:55:02Z"
},
{
"name": "hansmi/prometheus-paperless-exporter",
"version": "v0.0.7",
"date": "2025-03-25T15:11:18Z"
},
{
"name": "jenkinsci/jenkins",
"version": "jenkins-2.503",
"date": "2025-03-25T14:01:20Z"
},
{
"name": "crowdsecurity/crowdsec",
"version": "v1.6.8",
"date": "2025-03-25T13:33:10Z"
"name": "cockpit-project/cockpit",
"version": "336",
"date": "2025-03-24T07:16:02Z"
},
{
"name": "icereed/paperless-gpt",
"version": "v0.14.1",
"date": "2025-03-25T10:09:14Z"
},
{
"name": "VictoriaMetrics/VictoriaMetrics",
"version": "pmm-6401-v1.114.0",
"date": "2025-03-25T07:58:34Z"
},
{
"name": "caddyserver/caddy",
"version": "v2.9.1",
"date": "2025-01-08T15:22:53Z"
},
{
"name": "influxdata/influxdb",
"version": "v3.0.0-0.beta.2",
"date": "2025-03-24T21:12:19Z"
},
{
"name": "ZoeyVid/NPMplus",
"version": "2025-03-24-r2",
"date": "2025-03-24T20:52:35Z"
},
{
"name": "HabitRPG/habitica",
"version": "v5.35.0",
"date": "2025-03-24T20:51:10Z"
},
{
"name": "go-gitea/gitea",
"version": "v1.23.6",
"date": "2025-03-24T20:38:45Z"
},
{
"name": "docmost/docmost",
"version": "v0.9.0",
"date": "2025-03-24T18:25:37Z"
},
{
"name": "Graylog2/graylog2-server",
"version": "6.2.0-beta.2",
"date": "2025-03-24T12:20:51Z"
},
{
"name": "wavelog/wavelog",
"version": "2.0.2",
"date": "2025-03-24T12:02:08Z"
"version": "v0.14.0",
"date": "2025-03-24T07:03:24Z"
},
{
"name": "nzbgetcom/nzbget",
"version": "v24.8",
"date": "2025-03-18T07:33:51Z"
},
{
"name": "Jackett/Jackett",
"version": "v0.22.1685",
"date": "2025-03-24T05:54:06Z"
},
{
"name": "pocketbase/pocketbase",
"version": "v0.26.3",
"date": "2025-03-24T04:42:52Z"
},
{
"name": "firefly-iii/firefly-iii",
"version": "v6.2.10",
@ -414,21 +59,96 @@
"version": "v1.17.0",
"date": "2025-03-24T00:46:32Z"
},
{
"name": "runtipi/runtipi",
"version": "v3.10.0",
"date": "2025-03-15T14:38:16Z"
},
{
"name": "msgbyte/tianji",
"version": "v1.19.2",
"date": "2025-03-23T16:33:14Z"
},
{
"name": "dgtlmoon/changedetection.io",
"version": "0.49.7",
"date": "2025-03-23T15:51:11Z"
},
{
"name": "keycloak/keycloak",
"version": "26.1.4",
"date": "2025-03-13T15:41:42Z"
},
{
"name": "Lidarr/Lidarr",
"version": "v2.10.3.4602",
"date": "2025-03-23T11:00:37Z"
},
{
"name": "YunoHost/yunohost",
"version": "debian/12.0.12",
"date": "2025-03-16T11:59:24Z"
},
{
"name": "nicolargo/glances",
"version": "v4.3.1",
"date": "2025-03-23T09:02:54Z"
},
{
"name": "forgejo/forgejo",
"version": "v10.0.3",
"date": "2025-03-23T08:58:24Z"
},
{
"name": "Radarr/Radarr",
"version": "v5.20.2.9777",
"date": "2025-03-18T12:11:37Z"
},
{
"name": "Prowlarr/Prowlarr",
"version": "v1.32.2.4987",
"date": "2025-03-16T09:41:37Z"
},
{
"name": "morpheus65535/bazarr",
"version": "v1.5.1",
"date": "2025-01-01T16:15:52Z"
},
{
"name": "theonedev/onedev",
"version": "v11.7.6",
"date": "2025-03-23T05:08:22Z"
},
{
"name": "esphome/esphome",
"version": "2025.3.1",
"date": "2025-03-23T04:45:21Z"
},
{
"name": "usememos/memos",
"version": "v0.24.2",
"date": "2025-03-23T04:01:50Z"
},
{
"name": "OliveTin/OliveTin",
"version": "2025.3.23",
"date": "2025-03-23T01:38:55Z"
},
{
"name": "hoarder-app/hoarder",
"version": "sdk/v0.23.0",
"date": "2025-03-22T17:26:10Z"
},
{
"name": "documenso/documenso",
"version": "v1.10.0-rc.1",
"date": "2025-03-22T06:34:33Z"
},
{
"name": "ollama/ollama",
"version": "v0.6.2",
"date": "2025-03-18T03:11:33Z"
},
{
"name": "netbox-community/netbox",
"version": "v4.2.6",
@ -439,6 +159,11 @@
"version": "4.4.1",
"date": "2024-12-20T13:21:31Z"
},
{
"name": "home-assistant/core",
"version": "2025.3.4",
"date": "2025-03-21T20:22:46Z"
},
{
"name": "leiweibau/Pi.Alert",
"version": "v2025-03-21",
@ -449,6 +174,21 @@
"version": "v2.7.6",
"date": "2025-03-21T19:24:53Z"
},
{
"name": "homarr-labs/homarr",
"version": "v1.12.0",
"date": "2025-03-21T19:14:59Z"
},
{
"name": "influxdata/influxdb",
"version": "v1.12.0rc0",
"date": "2025-03-21T17:24:38Z"
},
{
"name": "ZoeyVid/NPMplus",
"version": "2025-03-21-r1",
"date": "2025-03-21T14:54:00Z"
},
{
"name": "photoprism/photoprism",
"version": "250321-57590c48b",
@ -459,16 +199,51 @@
"version": "v0.107.59",
"date": "2025-03-21T11:11:39Z"
},
{
"name": "openobserve/openobserve",
"version": "v0.14.5-rc5",
"date": "2025-03-21T10:50:34Z"
},
{
"name": "StarFleetCPTN/GoMFT",
"version": "v0.1.18",
"date": "2025-03-21T04:36:04Z"
},
{
"name": "jhuckaby/Cronicle",
"version": "v0.9.77",
"date": "2025-03-21T02:25:42Z"
},
{
"name": "ipfs/kubo",
"version": "v0.34.0",
"date": "2025-03-20T21:51:05Z"
},
{
"name": "pocket-id/pocket-id",
"version": "v0.43.1",
"date": "2025-03-20T20:38:06Z"
},
{
"name": "stonith404/pingvin-share",
"version": "v1.10.4",
"date": "2025-03-20T18:56:10Z"
},
{
"name": "dotnetfactory/fluid-calendar",
"version": "v1.2.3",
"date": "2025-03-20T17:54:55Z"
},
{
"name": "ellite/Wallos",
"version": "v2.48.0",
"date": "2025-03-20T16:57:43Z"
},
{
"name": "HabitRPG/habitica",
"version": "v5.34.4",
"date": "2025-03-20T16:54:45Z"
},
{
"name": "neo4j/neo4j",
"version": "4.4.42",
@ -479,16 +254,51 @@
"version": "8.0-rc1",
"date": "2025-03-11T18:16:27Z"
},
{
"name": "Stirling-Tools/Stirling-PDF",
"version": "v0.44.3",
"date": "2025-03-20T09:43:56Z"
},
{
"name": "jenkinsci/jenkins",
"version": "jenkins-2.502",
"date": "2025-03-18T15:02:59Z"
},
{
"name": "wazuh/wazuh",
"version": "coverity-w11-4.12.0",
"date": "2025-03-14T20:04:02Z"
},
{
"name": "jupyter/notebook",
"version": "@jupyter-notebook/ui-components@7.4.0-beta.2",
"date": "2025-03-20T07:41:24Z"
},
{
"name": "evcc-io/evcc",
"version": "0.201.1",
"date": "2025-03-20T06:59:18Z"
},
{
"name": "rabbitmq/rabbitmq-server",
"version": "v4.0.7",
"date": "2025-02-26T19:07:11Z"
},
{
"name": "NodeBB/NodeBB",
"version": "v4.2.0",
"date": "2025-03-19T18:34:01Z"
},
{
"name": "seanmorley15/AdventureLog",
"version": "v0.9.0",
"date": "2025-03-19T13:30:02Z"
},
{
"name": "hakimel/reveal.js",
"version": "5.2.0",
"date": "2025-03-19T11:03:56Z"
},
{
"name": "Luligu/matterbridge",
"version": "2.2.5",
@ -499,11 +309,46 @@
"version": "v0.22.1",
"date": "2025-03-18T21:01:22Z"
},
{
"name": "zitadel/zitadel",
"version": "v2.66.14",
"date": "2025-03-18T16:05:48Z"
},
{
"name": "prometheus/prometheus",
"version": "v2.53.4",
"date": "2025-03-18T15:50:39Z"
},
{
"name": "syncthing/syncthing",
"version": "v1.29.3",
"date": "2025-03-12T11:56:30Z"
},
{
"name": "element-hq/synapse",
"version": "v1.126.0",
"date": "2025-03-11T16:29:42Z"
},
{
"name": "OctoPrint/OctoPrint",
"version": "1.10.3",
"date": "2024-11-05T09:20:50Z"
},
{
"name": "n8n-io/n8n",
"version": "n8n@1.84.0",
"date": "2025-03-17T13:58:36Z"
},
{
"name": "zabbix/zabbix",
"version": "7.2.5rc1",
"date": "2025-03-18T14:10:32Z"
},
{
"name": "crowdsecurity/crowdsec",
"version": "v1.6.6",
"date": "2025-03-18T13:05:01Z"
},
{
"name": "apache/couchdb",
"version": "3.4.3.post1",
@ -529,16 +374,51 @@
"version": "v0.8.5.11",
"date": "2025-03-17T19:25:25Z"
},
{
"name": "goauthentik/authentik",
"version": "version/2025.2.2",
"date": "2025-03-17T19:16:49Z"
},
{
"name": "Sonarr/Sonarr",
"version": "v4.0.14.2939",
"date": "2025-03-17T19:12:37Z"
},
{
"name": "TriliumNext/Notes",
"version": "v0.92.4",
"date": "2025-03-17T16:00:19Z"
},
{
"name": "Graylog2/graylog2-server",
"version": "6.2.0-beta.1",
"date": "2025-03-17T13:00:39Z"
},
{
"name": "home-assistant/operating-system",
"version": "15.0",
"date": "2025-03-17T10:26:18Z"
},
{
"name": "webmin/webmin",
"version": "2.303",
"date": "2025-03-17T04:54:50Z"
},
{
"name": "fallenbagel/jellyseerr",
"version": "v2.5.1",
"date": "2025-03-17T03:18:32Z"
},
{
"name": "glanceapp/glance",
"version": "v0.7.7",
"date": "2025-03-17T02:24:06Z"
},
{
"name": "gethomepage/homepage",
"version": "v1.0.4",
"date": "2025-03-16T22:19:31Z"
},
{
"name": "autobrr/autobrr",
"version": "v1.60.0",
@ -554,6 +434,11 @@
"version": "v3.5.0",
"date": "2025-03-16T06:05:55Z"
},
{
"name": "VictoriaMetrics/VictoriaMetrics",
"version": "v1.17.0-victorialogs",
"date": "2025-03-16T00:22:43Z"
},
{
"name": "pelican-dev/wings",
"version": "v1.0.0-beta10",
@ -564,6 +449,16 @@
"version": "v1.0.0-beta18",
"date": "2025-03-15T20:24:04Z"
},
{
"name": "bunkerity/bunkerweb",
"version": "v1.6.1",
"date": "2025-03-15T17:29:17Z"
},
{
"name": "duplicati/duplicati",
"version": "v2.1.0.111-2.1.0.111_canary_2025-03-15",
"date": "2025-03-15T11:06:44Z"
},
{
"name": "henrygd/beszel",
"version": "v0.10.2",
@ -624,6 +519,11 @@
"version": "4.0.1-beta.1",
"date": "2024-12-13T00:16:24Z"
},
{
"name": "emqx/emqx",
"version": "e5.9.0-beta.1",
"date": "2025-03-12T09:52:26Z"
},
{
"name": "gotson/komga",
"version": "1.21.2",
@ -659,11 +559,26 @@
"version": "v1.9.9",
"date": "2025-03-10T03:22:11Z"
},
{
"name": "caddyserver/caddy",
"version": "v2.9.1",
"date": "2025-01-08T15:22:53Z"
},
{
"name": "awawa-dev/HyperHDR",
"version": "v21.0.0.0",
"date": "2025-03-09T12:25:44Z"
},
{
"name": "Readarr/Readarr",
"version": "v2.0.0.4645",
"date": "2017-03-07T18:56:06Z"
},
{
"name": "Brandawg93/PeaNUT",
"version": "v5.6.0",
"date": "2025-03-08T19:02:31Z"
},
{
"name": "YuukanOO/seelf",
"version": "v2.4.2",
@ -709,6 +624,11 @@
"version": "3.0.0",
"date": "2025-03-05T21:41:29Z"
},
{
"name": "immich-app/immich",
"version": "v1.129.0",
"date": "2025-03-05T20:19:18Z"
},
{
"name": "snipe/snipe-it",
"version": "v8.0.4",
@ -719,11 +639,21 @@
"version": "tc_v0.6.4",
"date": "2025-03-05T15:43:40Z"
},
{
"name": "go-gitea/gitea",
"version": "v1.23.5",
"date": "2025-03-05T00:10:15Z"
},
{
"name": "apache/tomcat",
"version": "10.1.39",
"date": "2025-03-04T19:05:18Z"
},
{
"name": "tailscale/tailscale",
"version": "v1.80.3",
"date": "2025-03-04T18:47:25Z"
},
{
"name": "pi-hole/pi-hole",
"version": "v6.0.5",
@ -749,11 +679,31 @@
"version": "2.8.0",
"date": "2025-03-02T04:30:50Z"
},
{
"name": "inspircd/inspircd",
"version": "v4.6.0",
"date": "2025-03-01T10:29:31Z"
},
{
"name": "tobychui/zoraxy",
"version": "v3.1.9",
"date": "2025-03-01T02:24:33Z"
},
{
"name": "grocy/grocy",
"version": "v4.4.2",
"date": "2025-02-28T16:26:05Z"
},
{
"name": "jordan-dalby/ByteStash",
"version": "v1.5.7",
"date": "2025-02-27T20:04:08Z"
},
{
"name": "docmost/docmost",
"version": "v0.8.4",
"date": "2025-02-27T16:18:45Z"
},
{
"name": "cloudflare/cloudflared",
"version": "2025.2.1",
@ -834,6 +784,21 @@
"version": "v0.18.3",
"date": "2025-02-21T20:51:12Z"
},
{
"name": "wavelog/wavelog",
"version": "2.0.1",
"date": "2025-02-21T17:55:59Z"
},
{
"name": "grafana/grafana",
"version": "v11.5.2",
"date": "2025-02-19T00:12:27Z"
},
{
"name": "gristlabs/grist-core",
"version": "v1.4.2",
"date": "2025-02-18T21:43:36Z"
},
{
"name": "prometheus-pve/prometheus-pve-exporter",
"version": "v3.5.2",
@ -899,6 +864,11 @@
"version": "v1.9.0",
"date": "2025-02-11T13:26:42Z"
},
{
"name": "TasmoAdmin/TasmoAdmin",
"version": "v4.2.3",
"date": "2025-02-09T23:07:48Z"
},
{
"name": "dani-garcia/vaultwarden",
"version": "1.33.2",
@ -954,11 +924,21 @@
"version": "1.7.6",
"date": "2025-02-01T09:50:52Z"
},
{
"name": "hivemq/hivemq-community-edition",
"version": "2025.1",
"date": "2025-01-29T10:04:27Z"
},
{
"name": "rustdesk/rustdesk-server",
"version": "1.1.14",
"date": "2025-01-25T12:48:28Z"
},
{
"name": "hansmi/prometheus-paperless-exporter",
"version": "v0.0.6",
"date": "2025-01-22T22:19:33Z"
},
{
"name": "crafty-controller/crafty-4",
"version": "v4.4.7",
@ -1019,6 +999,11 @@
"version": "v0.24.6",
"date": "2024-12-22T20:24:35Z"
},
{
"name": "louislam/uptime-kuma",
"version": "2.0.0-beta.1",
"date": "2024-12-20T08:56:43Z"
},
{
"name": "IceWhaleTech/CasaOS",
"version": "v0.4.15",
@ -1049,6 +1034,11 @@
"version": "v1.7.3",
"date": "2024-11-27T21:26:11Z"
},
{
"name": "Bubka/2FAuth",
"version": "v5.4.3",
"date": "2024-11-27T14:02:18Z"
},
{
"name": "lldap/lldap",
"version": "v0.6.1",
@ -1094,6 +1084,11 @@
"version": "v2024.10.22-7ca5933",
"date": "2024-10-22T09:58:03Z"
},
{
"name": "aceberg/WatchYourLAN",
"version": "2.0.4",
"date": "2024-10-20T18:57:37Z"
},
{
"name": "NLnetLabs/unbound",
"version": "release-1.22.0",
@ -1198,5 +1193,10 @@
"name": "wger-project/wger",
"version": "2.2",
"date": "2023-12-06T12:08:09Z"
},
{
"name": "sct/overseerr",
"version": "preview-test-node-18",
"date": "2023-11-06T10:21:37Z"
}
]

View File

@ -1,40 +0,0 @@
#!/usr/bin/env bash
# Copyright (c) 2021-2025 community-scripts ORG
# Author: MickLesk (CanbiZ)
# License: MIT | https://github.com/community-scripts/ProxmoxVE/raw/main/LICENSE
# Source: https://gitea.io/
source /dev/stdin <<<"$FUNCTIONS_FILE_PATH"
color
verb_ip6
catch_errors
setting_up_container
network_check
update_os
msg_info "Installing Dependencies"
$STD apk add \
newt \
curl \
openssh \
nano \
mc \
gpg
msg_ok "Installed Dependencies"
msg_info "Installing Gitea"
$STD apk add --no-cache gitea
msg_ok "Installed Gitea"
msg_info "Enabling Gitea Service"
$STD rc-update add gitea default
msg_ok "Enabled Gitea Service"
msg_info "Starting Gitea"
$STD service gitea start
msg_ok "Started Gitea"
motd_ssh
customize

View File

@ -1,59 +0,0 @@
#!/usr/bin/env bash
# Copyright (c) 2021-2025 community-scripts ORG
# Author: MickLesk (CanbiZ)
# License: MIT | https://github.com/community-scripts/ProxmoxVE/raw/main/LICENSE
# Source: https://mariadb.org/
source /dev/stdin <<<"$FUNCTIONS_FILE_PATH"
color
verb_ip6
catch_errors
setting_up_container
network_check
update_os
msg_info "Installing Dependencies"
$STD apk add \
gpg \
sudo
msg_ok "Installed Dependencies"
msg_info "Installing MariaDB"
$STD apk add --no-cache mariadb mariadb-client
$STD rc-update add mariadb default
$STD rc-service mariadb start
msg_ok "Installed MariaDB"
msg_info "Configuring MariaDB"
mysql_install_db --user=mysql --basedir=/usr --datadir=/var/lib/mysql >/dev/null 2>&1
$STD rc-service mariadb restart
msg_ok "MariaDB Configured"
read -r -p "Would you like to install Adminer with lighthttpd? <y/N>: " prompt
if [[ ${prompt,,} =~ ^(y|yes)$ ]]; then
msg_info "Installing Adminer"
$STD apk add --no-cache lighttpd php php-cgi php-mysqli php-mbstring php-zip php-gd php-json php-curl jq
sed -i 's|server.modules += ( "mod_cgi" )|server.modules += ( "mod_cgi", "mod_fastcgi" )|' /etc/lighttpd/lighttpd.conf
echo 'fastcgi.server += ( ".php" => (( "bin-path" => "/usr/bin/php-cgi", "socket" => "/var/run/php-cgi.sock" )))' >>/etc/lighttpd/lighttpd.conf
ADMINER_VERSION=$(curl -s https://api.github.com/repos/vrana/adminer/releases/latest | jq -r '.tag_name' | sed 's/v//')
wget -q -O /var/www/adminer.php "https://github.com/vrana/adminer/releases/download/v${ADMINER_VERSION}/adminer-${ADMINER_VERSION}.php"
chown lighttpd:lighttpd /var/www/adminer.php
chmod 755 /var/www/adminer.php
msg_ok "Adminer Installed"
msg_info "Starting Lighttpd"
$STD rc-update add lighttpd default
$STD rc-service lighttpd restart
msg_ok "Lighttpd Started"
echo -e "Adminer is available at: ${BL}http://$(hostname -I | awk '{print $1}')/adminer${CL}"
else
echo -e "Skipped Adminer Installation..."
fi
motd_ssh
customize
msg_info "Cleaning up"
msg_ok "Cleaned"

View File

@ -1,56 +0,0 @@
#!/usr/bin/env bash
# Copyright (c) 2021-2025 community-scripts ORG
# Author: MickLesk (CanbiZ)
# License: MIT | https://github.com/community-scripts/ProxmoxVE/raw/main/LICENSE
# Source: https://nodered.org/
source /dev/stdin <<<"$FUNCTIONS_FILE_PATH"
color
verb_ip6
catch_errors
setting_up_container
network_check
update_os
msg_info "Installing Dependencies"
$STD apk add --no-cache \
gpg \
git \
nodejs \
npm
msg_ok "Installed Dependencies"
msg_info "Creating Node-RED User"
adduser -D -H -s /sbin/nologin -G users nodered
msg_ok "Created Node-RED User"
msg_info "Installing Node-RED"
npm install -g --unsafe-perm node-red
msg_ok "Installed Node-RED"
msg_info "Creating Node-RED Service"
service_path="/etc/init.d/nodered"
echo '#!/sbin/openrc-run
description="Node-RED Service"
command="/usr/bin/node-red"
command_args="--max-old-space-size=128 -v"
command_user="nodered"
pidfile="/var/run/nodered.pid"
depend() {
use net
}' >$service_path
chmod +x $service_path
$STD rc-update add nodered default
msg_ok "Created Node-RED Service"
msg_info "Starting Node-RED"
$STD service nodered start
msg_ok "Started Node-RED"
motd_ssh
customize

View File

@ -35,7 +35,6 @@ fi
msg_ok "Set Up Hardware Acceleration"
msg_info "Installing ErsatzTV"
temp_file=$(mktemp)
cd /opt
RELEASE=$(curl -s https://api.github.com/repos/ErsatzTV/ErsatzTV/releases | grep -oP '"tag_name": "\K[^"]+' | head -n 1)
wget -qO- "https://github.com/ErsatzTV/ErsatzTV/releases/download/${RELEASE}/ErsatzTV-${RELEASE}-linux-x64.tar.gz" -O "$temp_file"

View File

@ -1,69 +0,0 @@
#!/usr/bin/env bash
# Copyright (c) 2021-2025 community-scripts ORG
# Author: kkroboth
# License: MIT | https://github.com/community-scripts/ProxmoxVE/raw/main/LICENSE
# Source: https://fileflows.com/
# Import Functions und Setup
source /dev/stdin <<< "$FUNCTIONS_FILE_PATH"
color
verb_ip6
catch_errors
setting_up_container
network_check
update_os
msg_info "Installing Dependencies"
$STD apt-get install -y \
ffmpeg
msg_ok "Installed Dependencies"
read -r -p "Do you need the intel-media-va-driver-non-free driver for HW encoding (Debian 12 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.list
deb http://deb.debian.org/debian bookworm non-free non-free-firmware
deb-src http://deb.debian.org/debian bookworm non-free non-free-firmware
deb http://deb.debian.org/debian-security bookworm-security non-free non-free-firmware
deb-src http://deb.debian.org/debian-security bookworm-security non-free non-free-firmware
deb http://deb.debian.org/debian bookworm-updates non-free non-free-firmware
deb-src http://deb.debian.org/debian bookworm-updates non-free non-free-firmware
EOF
$STD apt-get update
$STD apt-get -y install {intel-media-va-driver-non-free,ocl-icd-libopencl1,intel-opencl-icd,vainfo,intel-gpu-tools}
else
msg_info "Installing Intel Hardware Acceleration"
$STD apt-get -y install {va-driver-all,ocl-icd-libopencl1,intel-opencl-icd,vainfo,intel-gpu-tools}
fi
msg_ok "Installed and Set Up Intel Hardware Acceleration"
msg_info "Installing ASP.NET Core Runtime"
curl -fsSL https://packages.microsoft.com/config/debian/12/packages-microsoft-prod.deb -o packages-microsoft-prod.deb
$STD dpkg -i packages-microsoft-prod.deb
rm -rf packages-microsoft-prod.deb
$STD apt-get update
$STD apt-get install -y aspnetcore-runtime-8.0
msg_ok "Installed ASP.NET Core Runtime"
msg_info "Setup ${APPLICATION}"
$STD ln -svf /usr/bin/ffmpeg /usr/local/bin/ffmpeg
$STD ln -svf /usr/bin/ffprobe /usr/local/bin/ffprobe
temp_file=$(mktemp)
curl -fsSL https://fileflows.com/downloads/zip -o $temp_file
unzip -q -d /opt/fileflows $temp_file
(cd /opt/fileflows/Server && dotnet FileFlows.Server.dll --systemd install --root true)
systemctl enable -q --now fileflows.service
msg_ok "Setup ${APPLICATION}"
motd_ssh
customize
msg_info "Cleaning up"
rm -f $temp_file
$STD apt-get -y autoremove
$STD apt-get -y autoclean
msg_ok "Cleaned"

View File

@ -26,11 +26,7 @@ $STD apt-get install -y nodejs
msg_ok "Installed Node.js"
msg_info "Installing FlowiseAI (Patience)"
$STD npm install -g flowise \
@opentelemetry/exporter-trace-otlp-grpc \
@opentelemetry/exporter-trace-otlp-proto \
@opentelemetry/sdk-trace-node \
langchainhub
$STD npm install -g flowise
mkdir -p /opt/flowiseai
wget -q https://raw.githubusercontent.com/FlowiseAI/Flowise/main/packages/server/.env.example -O /opt/flowiseai/.env
msg_ok "Installed FlowiseAI"

View File

@ -19,8 +19,7 @@ $STD apt-get install -y \
rclone \
tzdata \
ca-certificates \
build-essential \
gnupg
build-essential
msg_ok "Installed Dependencies"
msg_info "Setting up Golang"
@ -33,29 +32,15 @@ ln -sf /usr/local/go/bin/go /usr/local/bin/go
set -o pipefail
msg_ok "Setup Golang"
msg_info "Setting up Node.js Repository"
mkdir -p /etc/apt/keyrings
curl -fsSL https://deb.nodesource.com/gpgkey/nodesource-repo.gpg.key | gpg --dearmor -o /etc/apt/keyrings/nodesource.gpg
echo "deb [signed-by=/etc/apt/keyrings/nodesource.gpg] https://deb.nodesource.com/node_22.x nodistro main" >/etc/apt/sources.list.d/nodesource.list
msg_ok "Set up Node.js Repository"
msg_info "Installing Node.js"
$STD apt-get update
$STD apt-get install -y nodejs
msg_ok "Installed Node.js"
msg_info "Setup ${APPLICATION} (Patience)"
temp_file=$(mktemp)
RELEASE=$(curl -fsSL https://api.github.com/repos/StarFleetCPTN/GoMFT/releases/latest | grep "tag_name" | awk '{print substr($2, 3, length($2)-4) }')
curl -fsSL "https://github.com/StarFleetCPTN/GoMFT/archive/refs/tags/v.${RELEASE}.tar.gz" -o $temp_file
RELEASE=$(curl -s https://api.github.com/repos/StarFleetCPTN/GoMFT/releases/latest | grep "tag_name" | awk '{print substr($2, 3, length($2)-4) }')
wget -q "https://github.com/StarFleetCPTN/GoMFT/archive/refs/tags/v${RELEASE}.tar.gz" -O $temp_file
tar -xzf $temp_file
mv GoMFT-v.${RELEASE}/ /opt/gomft
mv GoMFT-${RELEASE}/ /opt/gomft
cd /opt/gomft
$STD npm ci
$STD node build.js
$STD go mod download
$STD go install github.com/a-h/templ/cmd/templ@latest
$STD go get -u github.com/a-h/templ
$STD $HOME/go/bin/templ generate
export CGO_ENABLED=1
export GOOS=linux

View File

@ -32,7 +32,7 @@ msg_ok "Installed Node.js"
LOCAL_IP=$(hostname -I | awk '{print $1}')
RELEASE=$(curl -s https://api.github.com/repos/gethomepage/homepage/releases/latest | grep "tag_name" | awk '{print substr($2, 3, length($2)-4) }')
msg_info "Installing Homepage v${RELEASE} (Patience)"
curl -fsSL "https://github.com/gethomepage/homepage/archive/refs/tags/v${RELEASE}.tar.gz" -o $(basename "https://github.com/gethomepage/homepage/archive/refs/tags/v${RELEASE}.tar.gz")
wget -q https://github.com/gethomepage/homepage/archive/refs/tags/v${RELEASE}.tar.gz
$STD tar -xzf v${RELEASE}.tar.gz
rm -rf v${RELEASE}.tar.gz
mkdir -p /opt/homepage/config

View File

@ -70,9 +70,9 @@ PASSKEY=$(openssl rand -base64 24 | tr -d '/+=')
WEBHOOK_SECRET=$(openssl rand -base64 24 | tr -d '/+=')
JWT_SECRET=$(openssl rand -base64 24 | tr -d '/+=')
sed -i "s/^KOMODO_DB_USERNAME=.*/KOMODO_DB_USERNAME=komodo_admin/" /opt/komodo/compose.env
sed -i "s/^KOMODO_DB_PASSWORD=.*/KOMODO_DB_PASSWORD=${DB_PASSWORD}/" /opt/komodo/compose.env
sed -i "s/^KOMODO_PASSKEY=.*/KOMODO_PASSKEY=${PASSKEY}/" /opt/komodo/compose.env
sed -i "s/^DB_USERNAME=.*/DB_USERNAME=komodo_admin/" /opt/komodo/compose.env
sed -i "s/^DB_PASSWORD=.*/DB_PASSWORD=${DB_PASSWORD}/" /opt/komodo/compose.env
sed -i "s/^PASSKEY=.*/PASSKEY=${PASSKEY}/" /opt/komodo/compose.env
sed -i "s/^KOMODO_WEBHOOK_SECRET=.*/KOMODO_WEBHOOK_SECRET=${WEBHOOK_SECRET}/" /opt/komodo/compose.env
sed -i "s/^KOMODO_JWT_SECRET=.*/KOMODO_JWT_SECRET=${JWT_SECRET}/" /opt/komodo/compose.env
msg_ok "Setup Komodo Environment"

View File

@ -43,7 +43,6 @@ After=syslog.target network.target
Type=simple
ExecStart=/usr/local/bin/ipfs daemon
Restart=on-failure
Environment=HOME=/root
[Install]
WantedBy=multi-user.target
EOF

View File

@ -16,6 +16,9 @@ update_os
msg_info "Installing Dependencies"
$STD apt-get update
$STD apt-get -y install \
sudo \
mc \
curl \
gnupg \
make \
gcc \
@ -27,7 +30,7 @@ $STD apt-get -y install \
git
msg_ok "Installed Dependencies"
msg_info "Installing Python Dependencies"
msg_info "Installing Python3"
$STD apt-get install -y \
python3 \
python3-dev \
@ -39,13 +42,12 @@ $STD apt-get install -y \
$STD pip3 install certbot-dns-multi
$STD python3 -m venv /opt/certbot/
rm -rf /usr/lib/python3.*/EXTERNALLY-MANAGED
msg_ok "Installed Python Dependencies"
VERSION="$(awk -F'=' '/^VERSION_CODENAME=/{ print $NF }' /etc/os-release)"
msg_ok "Installed Python3"
msg_info "Installing Openresty"
wget -qO - https://openresty.org/package/pubkey.gpg | gpg --dearmor -o /etc/apt/trusted.gpg.d/openresty-archive-keyring.gpg
echo -e "deb http://openresty.org/package/debian bullseye openresty" >/etc/apt/sources.list.d/openresty.list
VERSION="$(awk -F'=' '/^VERSION_CODENAME=/{ print $NF }' /etc/os-release)"
wget -qO - https://openresty.org/package/pubkey.gpg | gpg --dearmor -o /etc/apt/trusted.gpg.d/openresty.gpg
echo -e "deb http://openresty.org/package/debian $VERSION openresty" >/etc/apt/sources.list.d/openresty.list
$STD apt-get update
$STD apt-get -y install openresty
msg_ok "Installed Openresty"
@ -61,36 +63,16 @@ msg_info "Installing pnpm"
$STD npm install -g pnpm@8.15
msg_ok "Installed pnpm"
RELEASE=$(curl -s https://api.github.com/repos/NginxProxyManager/nginx-proxy-manager/releases/latest |
grep "tag_name" |
awk '{print substr($2, 3, length($2)-4) }')
read -r -p "Would you like to install an older version (v2.10.4)? <y/N> " prompt
if [[ ${prompt,,} =~ ^(y|yes)$ ]]; then
msg_info "Downloading Nginx Proxy Manager v2.10.4"
wget -q https://codeload.github.com/NginxProxyManager/nginx-proxy-manager/tar.gz/v2.10.4 -O - | tar -xz
cd ./nginx-proxy-manager-2.10.4
msg_ok "Downloaded Nginx Proxy Manager v2.10.4"
else
msg_info "Downloading Nginx Proxy Manager v${RELEASE}"
wget -q https://codeload.github.com/NginxProxyManager/nginx-proxy-manager/tar.gz/v${RELEASE} -O - | tar -xz
cd ./nginx-proxy-manager-${RELEASE}
msg_ok "Downloaded Nginx Proxy Manager v${RELEASE}"
fi
msg_info "Setting up Environment"
msg_info "Setup Nginx Proxy Manager"
RELEASE=$(curl -s https://api.github.com/repos/NginxProxyManager/nginx-proxy-manager/releases/latest | grep "tag_name" | awk '{print substr($2, 3, length($2)-4) }')
wget -q https://codeload.github.com/NginxProxyManager/nginx-proxy-manager/tar.gz/v${RELEASE} -O - | tar -xz
cd ./nginx-proxy-manager-${RELEASE}
ln -sf /usr/bin/python3 /usr/bin/python
ln -sf /usr/bin/certbot /opt/certbot/bin/certbot
ln -sf /usr/local/openresty/nginx/sbin/nginx /usr/sbin/nginx
ln -sf /usr/local/openresty/nginx/ /etc/nginx
if [[ ${prompt,,} =~ ^(y|yes)$ ]]; then
sed -i "s|\"version\": \"0.0.0\"|\"version\": \"2.10.4\"|" backend/package.json
sed -i "s|\"version\": \"0.0.0\"|\"version\": \"2.10.4\"|" frontend/package.json
else
sed -i "s|\"version\": \"0.0.0\"|\"version\": \"$RELEASE\"|" backend/package.json
sed -i "s|\"version\": \"0.0.0\"|\"version\": \"$RELEASE\"|" frontend/package.json
fi
sed -i 's|"fork-me": ".*"|"fork-me": "Proxmox VE Helper-Scripts"|' frontend/js/i18n/messages.json
sed -i "s|https://github.com.*source=nginx-proxy-manager|https://helper-scripts.com|g" frontend/js/app/ui/footer/main.ejs
sed -i "s|\"version\": \"0.0.0\"|\"version\": \"$RELEASE\"|" backend/package.json
sed -i "s|\"version\": \"0.0.0\"|\"version\": \"$RELEASE\"|" frontend/package.json
sed -i 's+^daemon+#daemon+g' docker/rootfs/etc/nginx/nginx.conf
NGINX_CONFS=$(find "$(pwd)" -type f -name "*.conf")
for NGINX_CONF in $NGINX_CONFS; do
@ -134,7 +116,7 @@ fi
mkdir -p /app/global /app/frontend/images
cp -r backend/* /app
cp -r global/* /app/global
msg_ok "Set up Environment"
msg_ok "Setup Nginx Proxy Manager"
msg_info "Building Frontend"
cd ./frontend

View File

@ -1,7 +1,7 @@
#!/usr/bin/env bash
# Copyright (c) 2021-2025 community-scripts ORG
# Author: tteck (tteckster) | Co-Author: Slaviša Arežina (tremor021)
# Copyright (c) 2021-2025 tteck
# Author: tteck (tteckster)
# License: MIT | https://github.com/community-scripts/ProxmoxVE/raw/main/LICENSE
# Source: https://www.qbittorrent.org/
@ -13,14 +13,10 @@ setting_up_container
network_check
update_os
msg_info "Setup qBittorrent-nox"
FULLRELEASE=$(curl -s https://api.github.com/repos/userdocs/qbittorrent-nox-static/releases/latest | grep "tag_name" | awk '{print substr($2, 2, length($2)-3) }')
RELEASE=$(echo $FULLRELEASE | cut -c 9-13)
mkdir -p /opt/qbittorrent
curl -fsSL "https://github.com/userdocs/qbittorrent-nox-static/releases/download/${FULLRELEASE}/x86_64-qbittorrent-nox" -o /opt/qbittorrent/qbittorrent-nox
chmod +x /opt/qbittorrent/qbittorrent-nox
mkdir -p $HOME/.config/qBittorrent/
cat <<EOF >$HOME/.config/qBittorrent/qBittorrent.conf
msg_info "Installing qbittorrent-nox"
$STD apt-get install -y qbittorrent-nox
mkdir -p /.config/qBittorrent/
cat <<EOF >/.config/qBittorrent/qBittorrent.conf
[LegalNotice]
Accepted=true
@ -30,21 +26,16 @@ WebUI\Port=8090
WebUI\UseUPnP=false
WebUI\Username=admin
EOF
echo "${RELEASE}" >/opt/${APPLICATION}_version.txt
msg_ok "Setup qBittorrent-nox"
msg_ok "qbittorrent-nox"
msg_info "Creating Service"
cat <<EOF >/etc/systemd/system/qbittorrent-nox.service
[Unit]
Description=qBittorrent client
After=network.target
[Service]
Type=simple
User=root
ExecStart=/opt/qbittorrent/qbittorrent-nox
ExecStart=/usr/bin/qbittorrent-nox
Restart=always
[Install]
WantedBy=multi-user.target
EOF

View File

@ -8,6 +8,7 @@
color() {
# Colors
YW=$(echo "\033[33m")
YWB=$(echo "\033[93m")
BL=$(echo "\033[36m")
RD=$(echo "\033[01;31m")
GN=$(echo "\033[1;92m")
@ -29,8 +30,10 @@ color() {
INFO="${TAB}💡${TAB}${CL}"
NETWORK="${TAB}📡${TAB}${CL}"
OS="${TAB}🖥️${TAB}${CL}"
OSVERSION="${TAB}🌟${TAB}${CL}"
HOSTNAME="${TAB}🏠${TAB}${CL}"
GATEWAY="${TAB}🌐${TAB}${CL}"
DEFAULT="${TAB}⚙️${TAB}${CL}"
}
# Function to set STD mode based on verbosity
@ -140,11 +143,6 @@ update_os() {
$STD apk update
$STD apk upgrade
msg_ok "Updated Container OS"
msg_info "Installing core dependencies"
$STD apk update
$STD apk add newt curl openssh nano mc ncurses
msg_ok "Core dependencies installed"
}
# This function modifies the message of the day (motd) and SSH settings
@ -183,7 +181,7 @@ motd_ssh() {
# Validate Timezone for some LXC's
validate_tz() {
[[ -f "/usr/share/zoneinfo/$1" ]]
[[ -f "/usr/share/zoneinfo/$1" ]]
}
# This function customizes the container and enables passwordless login for the root user
@ -193,7 +191,4 @@ customize() {
bash -c "passwd -d root" >/dev/null 2>&1
msg_ok "Customized Container"
fi
echo "bash -c \"\$(curl -fsSL https://github.com/community-scripts/ProxmoxVE/raw/main/ct/${app}.sh)\"" >/usr/bin/update
chmod +x /usr/bin/update
}

View File

@ -29,13 +29,15 @@ color() {
# Formatting
CL=$(echo "\033[m")
UL=$(echo "\033[4m")
BOLD=$(echo "\033[1m")
BFR="\\r\\033[K"
HOLD=" "
TAB=" "
# Icons
CM="${TAB}✔️${TAB}"
CROSS="${TAB}✖️${TAB}"
CM="${TAB}✔️${TAB}${CL}"
CROSS="${TAB}✖️${TAB}${CL}"
INFO="${TAB}💡${TAB}${CL}"
OS="${TAB}🖥️${TAB}${CL}"
OSVERSION="${TAB}🌟${TAB}${CL}"
@ -79,75 +81,58 @@ error_handler() {
}
# This function displays an informational message with logging support.
declare -A MSG_INFO_SHOWN
SPINNER_ACTIVE=0
SPINNER_PID=""
SPINNER_MSG=""
trap 'stop_spinner' EXIT INT TERM HUP
start_spinner() {
local msg="$1"
local frames=(⠋ ⠙ ⠹ ⠸ ⠼ ⠴ ⠦ ⠧ ⠇ ⠏)
local frames=('⠋' '⠙' '⠹' '⠸' '⠼' '⠴' '⠦' '⠧' '⠇' '⠏')
local spin_i=0
local interval=0.1
SPINNER_MSG="$msg"
printf "\r\e[2K" >&2
local term_width=$(tput cols)
{
while [[ "$SPINNER_ACTIVE" -eq 1 ]]; do
printf "\r\e[2K%s %b" "${frames[spin_i]}" "${YW}${SPINNER_MSG}${CL}" >&2
while [ "${SPINNER_ACTIVE:-1}" -eq 1 ]; do
printf "\r\e[2K${frames[spin_i]} ${YW}%b${CL}" "$msg" >&2
spin_i=$(((spin_i + 1) % ${#frames[@]}))
sleep "$interval"
done
} &
SPINNER_PID=$!
disown "$SPINNER_PID"
}
stop_spinner() {
if [[ ${SPINNER_PID+v} && -n "$SPINNER_PID" ]] && kill -0 "$SPINNER_PID" 2>/dev/null; then
kill "$SPINNER_PID" 2>/dev/null
sleep 0.1
kill -0 "$SPINNER_PID" 2>/dev/null && kill -9 "$SPINNER_PID" 2>/dev/null
wait "$SPINNER_PID" 2>/dev/null || true
fi
SPINNER_ACTIVE=0
unset SPINNER_PID
}
spinner_guard() {
if [[ "$SPINNER_ACTIVE" -eq 1 ]] && [[ -n "$SPINNER_PID" ]]; then
kill "$SPINNER_PID" 2>/dev/null
wait "$SPINNER_PID" 2>/dev/null || true
SPINNER_ACTIVE=0
unset SPINNER_PID
fi
}
msg_info() {
local msg="$1"
[[ -n "${MSG_INFO_SHOWN["$msg"]+x}" ]] && return
MSG_INFO_SHOWN["$msg"]=1
if [ "${SPINNER_ACTIVE:-0}" -eq 1 ]; then
return
fi
spinner_guard
SPINNER_ACTIVE=1
start_spinner "$msg"
}
msg_ok() {
if [ -n "${SPINNER_PID:-}" ] && ps -p "$SPINNER_PID" >/dev/null 2>&1; then
kill "$SPINNER_PID" >/dev/null 2>&1
wait "$SPINNER_PID" 2>/dev/null || true
fi
local msg="$1"
stop_spinner
printf "\r\e[2K%s %b\n" "${CM}" "${GN}${msg}${CL}" >&2
unset MSG_INFO_SHOWN["$msg"]
printf "\r\e[2K${CM}${GN}%b${CL}\n" "$msg" >&2
unset SPINNER_PID
SPINNER_ACTIVE=0
log_message "OK" "$msg"
}
msg_error() {
stop_spinner
if [ -n "${SPINNER_PID:-}" ] && ps -p "$SPINNER_PID" >/dev/null 2>&1; then
kill "$SPINNER_PID" >/dev/null 2>&1
wait "$SPINNER_PID" 2>/dev/null || true
fi
local msg="$1"
printf "\r\e[2K%s %b\n" "${CROSS}" "${RD}${msg}${CL}" >&2
printf "\r\e[2K${CROSS}${RD}%b${CL}\n" "$msg" >&2
unset SPINNER_PID
SPINNER_ACTIVE=0
log_message "ERROR" "$msg"
}
@ -1150,7 +1135,7 @@ EOF
fi
if [ "$CT_TYPE" == "0" ]; then
if [[ "$APP" == "Channels" || "$APP" == "Emby" || "$APP" == "ErsatzTV" || "$APP" == "Frigate" || "$APP" == "Jellyfin" || "$APP" == "Plex" || "$APP" == "Scrypted" || "$APP" == "Tdarr" || "$APP" == "Unmanic" || "$APP" == "Ollama" || "$APP" == "FileFlows" ]]; then
if [[ "$APP" == "Channels" || "$APP" == "Emby" || "$APP" == "ErsatzTV" || "$APP" == "Frigate" || "$APP" == "Jellyfin" || "$APP" == "Plex" || "$APP" == "Scrypted" || "$APP" == "Tdarr" || "$APP" == "Unmanic" || "$APP" == "Ollama" ]]; then
cat <<EOF >>$LXC_CONFIG
# VAAPI hardware transcoding
lxc.cgroup2.devices.allow: c 226:0 rwm
@ -1162,7 +1147,7 @@ lxc.mount.entry: /dev/dri/renderD128 dev/dri/renderD128 none bind,optional,creat
EOF
fi
else
if [[ "$APP" == "Channels" || "$APP" == "Emby" || "$APP" == "ErsatzTV" || "$APP" == "Frigate" || "$APP" == "Jellyfin" || "$APP" == "Plex" || "$APP" == "Scrypted" || "$APP" == "Tdarr" || "$APP" == "Unmanic" || "$APP" == "Ollama" || "$APP" == "FileFlows" ]]; then
if [[ "$APP" == "Channels" || "$APP" == "Emby" || "$APP" == "ErsatzTV" || "$APP" == "Frigate" || "$APP" == "Jellyfin" || "$APP" == "Plex" || "$APP" == "Scrypted" || "$APP" == "Tdarr" || "$APP" == "Unmanic" || "$APP" == "Ollama" ]]; then
if [[ -e "/dev/dri/renderD128" ]]; then
if [[ -e "/dev/dri/card0" ]]; then
cat <<EOF >>$LXC_CONFIG
@ -1267,19 +1252,19 @@ exit_script() {
if [ $exit_code -ne 0 ]; then
case $exit_code in
100) post_update_to_api "failed" "100: Unexpected error in create_lxc.sh" ;;
101) post_update_to_api "failed" "101: No network connection detected in create_lxc.sh" ;;
200) post_update_to_api "failed" "200: LXC creation failed in create_lxc.sh" ;;
201) post_update_to_api "failed" "201: Invalid Storage class in create_lxc.sh" ;;
202) post_update_to_api "failed" "202: User aborted menu in create_lxc.sh" ;;
203) post_update_to_api "failed" "203: CTID not set in create_lxc.sh" ;;
204) post_update_to_api "failed" "204: PCT_OSTYPE not set in create_lxc.sh" ;;
205) post_update_to_api "failed" "205: CTID cannot be less than 100 in create_lxc.sh" ;;
206) post_update_to_api "failed" "206: CTID already in use in create_lxc.sh" ;;
207) post_update_to_api "failed" "207: Template not found in create_lxc.sh" ;;
208) post_update_to_api "failed" "208: Error downloading template in create_lxc.sh" ;;
209) post_update_to_api "failed" "209: Container creation failed, but template is intact in create_lxc.sh" ;;
*) post_update_to_api "failed" "Unknown error, exit code: $exit_code in create_lxc.sh" ;;
100) post_update_to_api "failed" "100: Unexpected error in create_lxc.sh" ;;
101) post_update_to_api "failed" "101: No network connection detected in create_lxc.sh" ;;
200) post_update_to_api "failed" "200: LXC creation failed in create_lxc.sh" ;;
201) post_update_to_api "failed" "201: Invalid Storage class in create_lxc.sh" ;;
202) post_update_to_api "failed" "202: User aborted menu in create_lxc.sh" ;;
203) post_update_to_api "failed" "203: CTID not set in create_lxc.sh" ;;
204) post_update_to_api "failed" "204: PCT_OSTYPE not set in create_lxc.sh" ;;
205) post_update_to_api "failed" "205: CTID cannot be less than 100 in create_lxc.sh" ;;
206) post_update_to_api "failed" "206: CTID already in use in create_lxc.sh" ;;
207) post_update_to_api "failed" "207: Template not found in create_lxc.sh" ;;
208) post_update_to_api "failed" "208: Error downloading template in create_lxc.sh" ;;
209) post_update_to_api "failed" "209: Container creation failed, but template is intact in create_lxc.sh" ;;
*) post_update_to_api "failed" "Unknown error, exit code: $exit_code in create_lxc.sh" ;;
esac
fi
}

View File

@ -59,7 +59,6 @@ install() {
header_info
msg_info "Setting up repository"
$STD apt-get install -y debian-keyring
wget -q https://repo.netdata.cloud/repos/repoconfig/debian/bookworm/netdata-repo_5-1+debian12_all.deb
$STD dpkg -i netdata-repo_5-1+debian12_all.deb
rm -rf netdata-repo_5-1+debian12_all.deb