Compare commits

..

6 Commits

Author SHA1 Message Date
community-scripts-pr-app[bot]
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
community-scripts-pr-app[bot]
9f890aae89 Update CHANGELOG.md (#3434) 2025-03-27 11:53:04 +01:00
CanbiZ
9cbd315456 [core]: add functions for Alpine (update / core deps) (#3437) 2025-03-27 11:52:04 +01:00
CanbiZ
022472af34 Refactor Spinner/MSG Function (support now alpine and better performance / handling) (#3436) 2025-03-27 11:51:40 +01:00
CanbiZ
3274115041 harmonize licence to VE (not VED) 2025-03-27 10:20:57 +01:00
community-scripts-pr-app[bot]
dc980951ea Update versions.json (#3432) 2025-03-27 09:29:54 +01:00
6 changed files with 181 additions and 149 deletions

View File

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

View File

@@ -2,7 +2,7 @@
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/ProxmoxVED/raw/main/LICENSE
# License: MIT | https://github.com/community-scripts/ProxmoxVE/raw/main/LICENSE
# Source: https://fileflows.com/
APP="FileFlows"

View File

@@ -1,13 +1,108 @@
[
{
"name": "fhem/fhem-mirror",
"version": "6.2",
"date": "2025-03-26T10:33:41Z"
"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.0",
"date": "2025-03-26T10:19:01Z"
"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-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.2",
"date": "2025-03-26T19:13:48Z"
},
{
"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",
@@ -29,11 +124,6 @@
"version": "v1.34.0",
"date": "2025-03-26T08:48:34Z"
},
{
"name": "Jackett/Jackett",
"version": "v0.22.1695",
"date": "2025-03-26T06:01:34Z"
},
{
"name": "pocketbase/pocketbase",
"version": "v0.26.4",
@@ -59,21 +149,6 @@
"version": "v11.6.0",
"date": "2025-03-25T22:10:15Z"
},
{
"name": "dgtlmoon/changedetection.io",
"version": "0.49.8",
"date": "2025-03-25T22:00:52Z"
},
{
"name": "immich-app/immich",
"version": "v1.130.1",
"date": "2025-03-25T20:49:15Z"
},
{
"name": "keycloak/keycloak",
"version": "26.1.4",
"date": "2025-03-13T15:41:42Z"
},
{
"name": "zabbix/zabbix",
"version": "7.2.5rc2",
@@ -134,26 +209,11 @@
"version": "v1.6.8",
"date": "2025-03-25T13:33:10Z"
},
{
"name": "n8n-io/n8n",
"version": "n8n@1.85.1",
"date": "2025-03-25T09:33:57Z"
},
{
"name": "element-hq/synapse",
"version": "v1.127.0",
"date": "2025-03-25T12:47:44Z"
},
{
"name": "icereed/paperless-gpt",
"version": "v0.14.1",
"date": "2025-03-25T10:09:14Z"
},
{
"name": "runtipi/runtipi",
"version": "v3.10.0",
"date": "2025-03-15T14:38:16Z"
},
{
"name": "VictoriaMetrics/VictoriaMetrics",
"version": "pmm-6401-v1.114.0",
@@ -214,11 +274,6 @@
"version": "2.0.2",
"date": "2025-03-24T12:02:08Z"
},
{
"name": "semaphoreui/semaphore",
"version": "v2.13.2",
"date": "2025-03-24T11:18:10Z"
},
{
"name": "nzbgetcom/nzbget",
"version": "v24.8",
@@ -259,11 +314,6 @@
"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": "usememos/memos",
"version": "v0.24.2",
@@ -284,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",
@@ -299,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",
@@ -329,16 +369,6 @@
"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",
@@ -364,11 +394,6 @@
"version": "8.0-rc1",
"date": "2025-03-11T18:16:27Z"
},
{
"name": "wazuh/wazuh",
"version": "coverity-w11-4.12.0",
"date": "2025-03-14T20:04:02Z"
},
{
"name": "rabbitmq/rabbitmq-server",
"version": "v4.0.7",
@@ -399,16 +424,6 @@
"version": "v0.22.1",
"date": "2025-03-18T21:01:22Z"
},
{
"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": "OctoPrint/OctoPrint",
"version": "1.10.3",
@@ -464,11 +479,6 @@
"version": "2.303",
"date": "2025-03-17T04:54:50Z"
},
{
"name": "glanceapp/glance",
"version": "v0.7.7",
"date": "2025-03-17T02:24:06Z"
},
{
"name": "gethomepage/homepage",
"version": "v1.0.4",
@@ -504,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",
@@ -679,11 +684,6 @@
"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",

View File

@@ -2,7 +2,7 @@
# Copyright (c) 2021-2025 community-scripts ORG
# Author: kkroboth
# License: MIT | https://github.com/community-scripts/ProxmoxVED/raw/main/LICENSE
# License: MIT | https://github.com/community-scripts/ProxmoxVE/raw/main/LICENSE
# Source: https://fileflows.com/
# Import Functions und Setup

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"
}
@@ -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
}