Compare commits

..

16 Commits

Author SHA1 Message Date
f46b9bbfb9 Update CHANGELOG.md (#3464)
Some checks failed
Create Changelog Pull Request / update-changelog-pull-request (push) Waiting to run
Auto Update .app-files / update-app-files (push) Has been cancelled
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2025-03-28 23:24:05 +01:00
07a3ab353c GoMFT: Fix release grep (#3462)
* Fix release grep

* Fix release grep in update function
2025-03-28 21:31:15 +01:00
c4cdb030b4 Fix path (#3463) 2025-03-28 21:30:57 +01:00
2ffd827be4 Update CHANGELOG.md (#3452)
Some checks failed
Auto Update .app-files / update-app-files (push) Waiting to run
Create Changelog Pull Request / update-changelog-pull-request (push) Waiting to run
Frontend CI/CD / build (push) Waiting to run
Frontend CI/CD / deploy (push) Blocked by required conditions
Crawl Versions from newreleases.io / crawl-versions (push) Has been cancelled
Build and Publish Docker Image / build (push) Has been cancelled
Create Daily Release / create-daily-release (push) Has been cancelled
2025-03-28 17:13:23 +01:00
515f9ab502 Update .app files (#3460)
Co-authored-by: GitHub Actions <github-actions[bot]@users.noreply.github.com>
2025-03-28 16:44:48 +01:00
079b089518 Alpine Node-RED (#3457)
* Alpine Node-RED

* Update alpine-node-red-install.sh
2025-03-28 16:36:32 +01:00
8300d7725d Update alpine-gitea.sh 2025-03-28 14:16:11 +01:00
ab45b91c4c move coc
CODE_OF_CONDUCT need to be in .github main folder
2025-03-28 13:23:41 +01:00
b428e8a267 Update versions.json (#3458)
Co-authored-by: GitHub Actions[bot] <github-actions[bot]@users.noreply.github.com>
2025-03-28 13:08:31 +01:00
2643c91516 Update versions.json (#3449)
Some checks are pending
Create Changelog Pull Request / update-changelog-pull-request (push) Waiting to run
Frontend CI/CD / build (push) Waiting to run
Frontend CI/CD / deploy (push) Blocked by required conditions
2025-03-28 08:08:36 +01:00
73faa0ab10 Update versions.json (#3440)
Some checks are pending
Auto Update .app-files / update-app-files (push) Waiting to run
Create Changelog Pull Request / update-changelog-pull-request (push) Waiting to run
Frontend CI/CD / build (push) Waiting to run
Frontend CI/CD / deploy (push) Blocked by required conditions
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)
Some checks are pending
Create Changelog Pull Request / update-changelog-pull-request (push) Waiting to run
Frontend CI/CD / build (push) Waiting to run
Frontend CI/CD / deploy (push) Blocked by required conditions
2025-03-27 09:29:54 +01:00
15 changed files with 392 additions and 224 deletions

View File

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

View File

@ -42,4 +42,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}:3000${CL}"
echo -e "${TAB}${GATEWAY}${BGN}http://${IP}:3000${CL}"

50
ct/alpine-node-red.sh Normal file
View File

@ -0,0 +1,50 @@
#!/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 /opt/ErsatzTV-${RELEASE}-linux-x64 /opt/ErsatzTV
mv ErsatzTV-${RELEASE}-linux-x64 /opt/ErsatzTV
cp -R ErsatzTV-backup/* /opt/ErsatzTV/
rm -rf ErsatzTV-backup
echo "${RELEASE}" >/opt/${APP}_version.txt
@ -67,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}:8409${CL}"
echo -e "${TAB}${GATEWAY}${BGN}http://${IP}:8409${CL}"

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

@ -28,7 +28,7 @@ function update_script() {
msg_error "No ${APP} Installation Found!"
exit
fi
RELEASE=$(curl -s 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, 4, length($2)-5) }')
if ! dpkg -l | grep -q "^ii.*build-essential"; then
$STD apt-get install -y build-essential
fi

View File

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

View File

@ -24,6 +24,17 @@
"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": {
@ -32,8 +43,8 @@
},
"notes": [
{
"text": "To install themes, type `update` in the LXC console.",
"text": "To install themes, type `update` in the LXC console. (debian/ubuntu only)",
"type": "info"
}
]
}
}

View File

@ -2,12 +2,177 @@
{
"name": "fhem/fhem-mirror",
"version": "6.2",
"date": "2025-03-26T10:33:41Z"
"date": "2025-03-28T10:33:13Z"
},
{
"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": "Jackett/Jackett",
"version": "v0.22.1702",
"date": "2025-03-28T05:57:28Z"
},
{
"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": "theonedev/onedev",
"version": "v11.8.1",
"date": "2025-03-28T00:13:20Z"
},
{
"name": "StarFleetCPTN/GoMFT",
"version": "v.0.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": "keycloak/keycloak",
"version": "26.1.4",
"date": "2025-03-13T15:41:42Z"
},
{
"name": "home-assistant/core",
"version": "2025.3.4",
"date": "2025-03-21T20:22:46Z"
},
{
"name": "gristlabs/grist-core",
"version": "v1.5.0",
"date": "2025-03-27T19:59:55Z"
},
{
"name": "hivemq/hivemq-community-edition",
"version": "2025.2",
"date": "2025-03-27T19:21:13Z"
},
{
"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": "msgbyte/tianji",
"version": "v1.19.4",
"date": "2025-03-27T16:25:34Z"
},
{
"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": "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": "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"
},
{
"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": "semaphoreui/semaphore",
"version": "v2.13.2",
"date": "2025-03-26T19:13:48Z"
},
{
"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",
@ -29,26 +194,11 @@
"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",
"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.1",
"date": "2025-03-26T04:10:14Z"
},
{
"name": "esphome/esphome",
"version": "2025.3.2",
@ -59,26 +209,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",
"date": "2025-03-25T19:25:22Z"
},
{
"name": "Stirling-Tools/Stirling-PDF",
"version": "v0.45.0",
@ -119,41 +249,16 @@
"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": "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",
@ -169,11 +274,6 @@
"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",
@ -214,11 +314,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",
@ -244,11 +339,6 @@
"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",
@ -259,11 +349,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",
@ -279,16 +364,6 @@
"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",
@ -299,11 +374,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 +399,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",
@ -349,11 +409,6 @@
"version": "v1.10.4",
"date": "2025-03-20T18:56:10Z"
},
{
"name": "ellite/Wallos",
"version": "v2.48.0",
"date": "2025-03-20T16:57:43Z"
},
{
"name": "neo4j/neo4j",
"version": "4.4.42",
@ -364,11 +419,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 +449,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",
@ -454,26 +494,11 @@
"version": "v0.92.4",
"date": "2025-03-17T16:00:19Z"
},
{
"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": "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",
@ -504,11 +529,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 +699,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",
@ -809,11 +824,6 @@
"version": "v0.18.3",
"date": "2025-02-21T20:51:12Z"
},
{
"name": "gristlabs/grist-core",
"version": "v1.4.2",
"date": "2025-02-18T21:43:36Z"
},
{
"name": "prometheus-pve/prometheus-pve-exporter",
"version": "v3.5.2",
@ -939,11 +949,6 @@
"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",
@ -1044,11 +1049,6 @@
"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",

View File

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

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

@ -34,7 +34,7 @@ msg_ok "Setup Golang"
msg_info "Setup ${APPLICATION} (Patience)"
temp_file=$(mktemp)
RELEASE=$(curl -s 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, 4, length($2)-5) }')
wget -q "https://github.com/StarFleetCPTN/GoMFT/archive/refs/tags/v${RELEASE}.tar.gz" -O $temp_file
tar -xzf $temp_file
mv GoMFT-${RELEASE}/ /opt/gomft

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
}