1
0
forked from Proxmox/ProxmoxVE

Compare commits

...

30 Commits

Author SHA1 Message Date
73faa0ab10 Update versions.json (#3440)
Co-authored-by: GitHub Actions[bot] <github-actions[bot]@users.noreply.github.com>
2025-03-27 13:15:48 +01:00
9f890aae89 Update CHANGELOG.md (#3434) 2025-03-27 11:53:04 +01:00
9cbd315456 [core]: add functions for Alpine (update / core deps) (#3437) 2025-03-27 11:52:04 +01:00
022472af34 Refactor Spinner/MSG Function (support now alpine and better performance / handling) (#3436) 2025-03-27 11:51:40 +01:00
3274115041 harmonize licence to VE (not VED) 2025-03-27 10:20:57 +01:00
dc980951ea Update versions.json (#3432) 2025-03-27 09:29:54 +01:00
a9b7c52b1a Update CHANGELOG.md (#3425)
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2025-03-26 21:37:58 +01:00
beeef264b8 FlowiseAI: Fix dependencies (#3427)
* Fix dependencies

* Fix missing documentation link
2025-03-26 20:47:45 +01:00
008af3cbfc Update .app files (#3426)
Co-authored-by: GitHub Actions <github-actions[bot]@users.noreply.github.com>
2025-03-26 16:20:40 +01:00
b9a63edfb0 Alpine: Gitea (#3424) 2025-03-26 15:28:52 +01:00
6be9d72f70 Update versions.json (#3422) 2025-03-26 13:32:17 +01:00
6ba5c98706 Update CHANGELOG.md (#3421) 2025-03-26 13:32:02 +01:00
333b0c00cc Remove coredeps in CONTRIBUTOR_AND_GUIDES (#3420)
* Remove core deps from install deps

* Remove core deps fileflows-install.sh
2025-03-26 12:43:49 +01:00
3072f7dd51 Update CHANGELOG.md (#3418) 2025-03-26 10:11:43 +01:00
51f9de27f1 fluid-calendar: Fix failed build; simplify backup (#3417) 2025-03-26 08:31:29 +01:00
c0d31ccd57 Update versions.json (#3416)
Co-authored-by: GitHub Actions[bot] <github-actions[bot]@users.noreply.github.com>
2025-03-26 07:10:55 +01:00
2f5fbf7416 Update CHANGELOG.md (#3410) 2025-03-25 19:03:42 +01:00
cac4294d27 Update Discord URL (#3412) 2025-03-25 15:37:18 +01:00
7886795e81 Update versions.json (#3411)
Co-authored-by: GitHub Actions[bot] <github-actions[bot]@users.noreply.github.com>
2025-03-25 13:29:42 +01:00
01bba3b325 Update versions.json (#3409) 2025-03-25 06:42:02 +01:00
8f862060d5 Update CHANGELOG.md (#3407)
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2025-03-24 23:42:52 +01:00
67c391e3ed qBittorrent: Switch to static builds for faster updating/upgrading (#3405)
* qBittorrent update to v5.0.4

* fixes
2025-03-24 23:29:53 +01:00
d621ecb124 Update CHANGELOG.md (#3404)
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2025-03-24 21:18:06 +01:00
4f723800ec Update date in json (#3401)
Co-authored-by: GitHub Actions <github-actions[bot]@users.noreply.github.com>
2025-03-24 21:15:58 +01:00
76bbb72392 Update CHANGELOG.md (#3403)
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2025-03-24 21:15:44 +01:00
59bb9e334e Update .app files (#3402)
Co-authored-by: GitHub Actions <github-actions[bot]@users.noreply.github.com>
2025-03-24 21:15:26 +01:00
e19a2e90d3 fileflows (#3392)
* 'Add new script'

* increase RAM

---------

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-03-24 21:05:19 +01:00
ca55795473 Update CHANGELOG.md (#3398)
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2025-03-24 20:43:45 +01:00
62dc2bdecc Extend HOME Env for Kubo (#3397) 2025-03-24 20:34:52 +01:00
694f063f0c [core] extend hardware transcoding for fileflows #3392 (#3396) 2025-03-24 20:34:25 +01:00
23 changed files with 771 additions and 376 deletions

View File

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

View File

@ -14,12 +14,9 @@ setting_up_container
network_check
update_os
# Installing Dependencies with the 3 core dependencies (curl;sudo;mc)
# Installing Dependencies
msg_info "Installing Dependencies"
$STD apt-get install -y \
curl \
sudo \
mc \
[PACKAGE_1] \
[PACKAGE_2] \
[PACKAGE_3]
@ -80,4 +77,4 @@ msg_info "Cleaning up"
rm -f ${RELEASE}.zip
$STD apt-get -y autoremove
$STD apt-get -y autoclean
msg_ok "Cleaned"
msg_ok "Cleaned"

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/UHrpNWGwkH
url: https://discord.gg/jsYVk5JBxq
about: Join our Discord server to chat with other users in the Proxmox Helper Scripts community.

View File

@ -14,22 +14,68 @@ 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-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
- wazuh [@omiinaya](https://github.com/omiinaya) ([#3381](https://github.com/community-scripts/ProxmoxVE/pull/3381))
- 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))
- 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
@ -38,6 +84,10 @@ 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/UHrpNWGwkH">
<a href="https://discord.gg/jsYVk5JBxq">
<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/UHrpNWGwkH) for real-time support.
- **Discord**: Join our [Proxmox Helper Scripts Discord server](https://discord.gg/jsYVk5JBxq) 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/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!
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!
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.

45
ct/alpine-gitea.sh Normal file
View File

@ -0,0 +1,45 @@
#!/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}"

73
ct/fileflows.sh Normal file
View File

@ -0,0 +1,73 @@
#!/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,15 +35,14 @@ 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
cp -rf ${APP}-${RELEASE}/* /opt/fluid-calendar
mv ${APP}-${RELEASE}/ /opt/fluid-calendar
mv /opt/fluid.env /opt/fluid-calendar/.env
cd /opt/fluid-calendar
export NEXT_TELEMETRY_DISABLED=1
$STD npm install --legacy-peer-deps
@ -58,8 +57,6 @@ 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

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

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

6
ct/headers/fileflows Normal file
View File

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

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 tteck
# Author: tteck (tteckster)
# Copyright (c) 2021-2025 community-scripts ORG
# Author: tteck (tteckster) | Co-Author: Slaviša Arežina (tremor021)
# License: MIT | https://github.com/community-scripts/ProxmoxVE/raw/main/LICENSE
# Source: https://www.qbittorrent.org/
@ -27,10 +27,36 @@ function update_script() {
msg_error "No ${APP} Installation Found!"
exit
fi
msg_info "Updating ${APP} LXC"
$STD apt-get update
$STD apt-get -y upgrade
msg_ok "Updated ${APP} LXC"
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
exit
}
@ -41,4 +67,4 @@ 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}:8090${CL}"
echo -e "${TAB}${GATEWAY}${BGN}http://${IP}:8090${CL}"

View File

@ -0,0 +1,39 @@
{
"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,34 +1,39 @@
{
"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": []
}
"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"
}
]
}

View File

@ -24,6 +24,17 @@
"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": {
@ -31,4 +42,4 @@
"password": null
},
"notes": []
}
}

View File

@ -1,49 +1,284 @@
[
{
"name": "home-assistant/core",
"version": "2025.3.4",
"date": "2025-03-21T20:22:46Z"
},
{
"name": "syncthing/syncthing",
"version": "v1.29.3",
"date": "2025-03-12T11:56:30Z"
},
{
"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": "Jackett/Jackett",
"version": "v0.22.1699",
"date": "2025-03-27T05:57:08Z"
},
{
"name": "openobserve/openobserve",
"version": "v0.14.5-rc6",
"date": "2025-03-27T05:15:49Z"
},
{
"name": "StarFleetCPTN/GoMFT",
"version": "v0.2.1",
"date": "2025-03-27T02:08:19Z"
},
{
"name": "fhem/fhem-mirror",
"version": "6.2",
"date": "2025-03-24T10:36:10Z"
"date": "2025-03-27T02:00:18Z"
},
{
"name": "element-hq/synapse",
"version": "v1.127.1",
"date": "2025-03-26T21:44:28Z"
},
{
"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.2",
"date": "2025-03-18T03:11:33Z"
},
{
"name": "runtipi/runtipi",
"version": "nightly",
"date": "2025-03-26T20:06:34Z"
},
{
"name": "glanceapp/glance",
"version": "v0.7.8",
"date": "2025-03-26T19:59:07Z"
},
{
"name": "tailscale/tailscale",
"version": "v1.82.0",
"date": "2025-03-26T19:50:59Z"
},
{
"name": "keycloak/keycloak",
"version": "26.1.4",
"date": "2025-03-13T15:41:42Z"
},
{
"name": "semaphoreui/semaphore",
"version": "v2.13.1",
"date": "2025-03-24T09:42:32Z"
"version": "v2.13.2",
"date": "2025-03-26T19:13:48Z"
},
{
"name": "zwave-js/zwave-js-ui",
"version": "v10.1.1",
"date": "2025-03-24T08:34:47Z"
"name": "wazuh/wazuh",
"version": "coverity-w11-4.12.0",
"date": "2025-03-14T20:04:02Z"
},
{
"name": "immich-app/immich",
"version": "v1.130.2",
"date": "2025-03-26T16:01:25Z"
},
{
"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": "n8n-io/n8n",
"version": "n8n@1.84.2",
"date": "2025-03-26T14:11:45Z"
},
{
"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": "Checkmk/checkmk",
"version": "v2.4.0b2-rc1",
"date": "2025-03-24T07:20:45Z"
"version": "v2.2.0p41",
"date": "2025-03-26T09:55:26Z"
},
{
"name": "sct/overseerr",
"version": "v1.34.0",
"date": "2025-03-26T08:48:34Z"
},
{
"name": "pocketbase/pocketbase",
"version": "v0.26.4",
"date": "2025-03-26T05:16:46Z"
},
{
"name": "theonedev/onedev",
"version": "v11.8.0",
"date": "2025-03-26T04:41:15Z"
},
{
"name": "cockpit-project/cockpit",
"version": "336",
"date": "2025-03-24T07:16:02Z"
"version": "336.1",
"date": "2025-03-26T04:10:14Z"
},
{
"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": "zabbix/zabbix",
"version": "7.2.5rc2",
"date": "2025-03-25T19:25:22Z"
},
{
"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": "aceberg/WatchYourLAN",
"version": "2.1.1",
"date": "2025-03-25T17:21:41Z"
},
{
"name": "pocket-id/pocket-id",
"version": "v0.44.0",
"date": "2025-03-25T16:09:10Z"
},
{
"name": "dotnetfactory/fluid-calendar",
"version": "v1.3.0",
"date": "2025-03-25T15:55:02Z"
},
{
"name": "emqx/emqx",
"version": "v5.8.6",
"date": "2025-03-25T15:22:13Z"
},
{
"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": "zwave-js/zwave-js-ui",
"version": "v10.1.2",
"date": "2025-03-25T13:56:22Z"
},
{
"name": "msgbyte/tianji",
"version": "v1.19.3",
"date": "2025-03-25T13:50:19Z"
},
{
"name": "crowdsecurity/crowdsec",
"version": "v1.6.8",
"date": "2025-03-25T13:33:10Z"
},
{
"name": "icereed/paperless-gpt",
"version": "v0.14.0",
"date": "2025-03-24T07:03:24Z"
"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": "zitadel/zitadel",
"version": "v2.70.6",
"date": "2025-03-25T07:11:32Z"
},
{
"name": "caddyserver/caddy",
"version": "v2.9.1",
"date": "2025-01-08T15:22:53Z"
},
{
"name": "fallenbagel/jellyseerr",
"version": "preview-OIDC",
"date": "2025-03-25T00:28:11Z"
},
{
"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": "Radarr/Radarr",
"version": "v5.21.1.9799",
"date": "2025-03-24T15:52:12Z"
},
{
"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"
},
{
"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",
@ -59,26 +294,6 @@
"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",
@ -94,36 +309,11 @@
"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",
@ -144,11 +334,6 @@
"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",
@ -159,11 +344,6 @@
"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",
@ -179,16 +359,6 @@
"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",
@ -199,51 +369,21 @@
"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",
@ -254,31 +394,6 @@
"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",
@ -309,46 +424,11 @@
"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",
@ -389,11 +469,6 @@
"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",
@ -404,16 +479,6 @@
"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",
@ -434,11 +499,6 @@
"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",
@ -454,11 +514,6 @@
"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",
@ -519,11 +574,6 @@
"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",
@ -559,11 +609,6 @@
"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",
@ -624,11 +669,6 @@
"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",
@ -639,21 +679,11 @@
"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",
@ -699,11 +729,6 @@
"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",
@ -784,16 +809,6 @@
"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",
@ -934,11 +949,6 @@
"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",
@ -1084,11 +1094,6 @@
"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",
@ -1193,10 +1198,5 @@
"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

@ -0,0 +1,40 @@
#!/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

@ -0,0 +1,69 @@
#!/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,7 +26,11 @@ $STD apt-get install -y nodejs
msg_ok "Installed Node.js"
msg_info "Installing FlowiseAI (Patience)"
$STD npm install -g flowise
$STD npm install -g flowise \
@opentelemetry/exporter-trace-otlp-grpc \
@opentelemetry/exporter-trace-otlp-proto \
@opentelemetry/sdk-trace-node \
langchainhub
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

@ -43,6 +43,7 @@ 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

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

View File

@ -8,7 +8,6 @@
color() {
# Colors
YW=$(echo "\033[33m")
YWB=$(echo "\033[93m")
BL=$(echo "\033[36m")
RD=$(echo "\033[01;31m")
GN=$(echo "\033[1;92m")
@ -30,10 +29,8 @@ 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
@ -143,6 +140,11 @@ 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
@ -181,7 +183,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
@ -191,4 +193,7 @@ 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,15 +29,13 @@ color() {
# Formatting
CL=$(echo "\033[m")
UL=$(echo "\033[4m")
BOLD=$(echo "\033[1m")
BFR="\\r\\033[K"
HOLD=" "
TAB=" "
# Icons
CM="${TAB}✔️${TAB}${CL}"
CROSS="${TAB}✖️${TAB}${CL}"
CM="${TAB}✔️${TAB}"
CROSS="${TAB}✖️${TAB}"
INFO="${TAB}💡${TAB}${CL}"
OS="${TAB}🖥️${TAB}${CL}"
OSVERSION="${TAB}🌟${TAB}${CL}"
@ -81,58 +79,75 @@ 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
local term_width=$(tput cols)
SPINNER_MSG="$msg"
printf "\r\e[2K" >&2
{
while [ "${SPINNER_ACTIVE:-1}" -eq 1 ]; do
printf "\r\e[2K${frames[spin_i]} ${YW}%b${CL}" "$msg" >&2
while [[ "$SPINNER_ACTIVE" -eq 1 ]]; do
printf "\r\e[2K%s %b" "${frames[spin_i]}" "${YW}${SPINNER_MSG}${CL}" >&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"
if [ "${SPINNER_ACTIVE:-0}" -eq 1 ]; then
return
fi
[[ -n "${MSG_INFO_SHOWN["$msg"]+x}" ]] && return
MSG_INFO_SHOWN["$msg"]=1
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"
printf "\r\e[2K${CM}${GN}%b${CL}\n" "$msg" >&2
unset SPINNER_PID
SPINNER_ACTIVE=0
log_message "OK" "$msg"
stop_spinner
printf "\r\e[2K%s %b\n" "${CM}" "${GN}${msg}${CL}" >&2
unset MSG_INFO_SHOWN["$msg"]
}
msg_error() {
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
stop_spinner
local msg="$1"
printf "\r\e[2K${CROSS}${RD}%b${CL}\n" "$msg" >&2
unset SPINNER_PID
SPINNER_ACTIVE=0
printf "\r\e[2K%s %b\n" "${CROSS}" "${RD}${msg}${CL}" >&2
log_message "ERROR" "$msg"
}
@ -1135,7 +1150,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" ]]; 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
cat <<EOF >>$LXC_CONFIG
# VAAPI hardware transcoding
lxc.cgroup2.devices.allow: c 226:0 rwm
@ -1147,7 +1162,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" ]]; 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 [[ -e "/dev/dri/renderD128" ]]; then
if [[ -e "/dev/dri/card0" ]]; then
cat <<EOF >>$LXC_CONFIG
@ -1250,21 +1265,21 @@ exit_script() {
#200 exit codes indicate error in create_lxc.sh
#100 exit codes indicate error in install.func
if [ $exit_code -ne 0 ]; then
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
}