Initial upload
This commit is contained in:
62
recipes/services/node-red/install.sh
Normal file
62
recipes/services/node-red/install.sh
Normal file
@@ -0,0 +1,62 @@
|
||||
#!/usr/bin/env bash
|
||||
set -euo pipefail
|
||||
|
||||
ensure_root
|
||||
detect_pkg_manager
|
||||
pkg_install curl
|
||||
|
||||
BASE="/srv/docker/services/node-red"
|
||||
$SUDO mkdir -p "$BASE/data"
|
||||
cd "$BASE"
|
||||
|
||||
echo "Starte Installation von Node-RED..."
|
||||
|
||||
# Funktion: finde den nächsten freien Port ab 1880
|
||||
find_free_port() {
|
||||
PORT=1880
|
||||
while ss -lnt | awk '{print $4}' | grep -q ":$PORT$"; do
|
||||
PORT=$((PORT + 1))
|
||||
done
|
||||
echo "$PORT"
|
||||
}
|
||||
|
||||
FREE_PORT=$(find_free_port)
|
||||
echo "✅ Freier Port für Node-RED gefunden: $FREE_PORT"
|
||||
|
||||
$SUDO tee docker-compose.yml >/dev/null <<EOF
|
||||
services:
|
||||
node-red:
|
||||
image: nodered/node-red:latest
|
||||
container_name: node-red-$FREE_PORT
|
||||
restart: unless-stopped
|
||||
ports:
|
||||
- "$FREE_PORT:1880"
|
||||
volumes:
|
||||
- ./data:/data
|
||||
environment:
|
||||
TZ=Europe/Berlin
|
||||
EOF
|
||||
|
||||
$SUDO docker compose up -d
|
||||
|
||||
log "Node-RED wurde installiert."
|
||||
log "Web UI: http://<server-ip>:$FREE_PORT"
|
||||
log "Konfiguration / Flows: $BASE/data/"
|
||||
|
||||
echo ""
|
||||
read -p "Soll ein NGINX Proxy-Pfad eingerichtet werden? (y/n): " PROXY
|
||||
|
||||
if [[ "$PROXY" == "y" || "$PROXY" == "Y" ]]; then
|
||||
PROXY_SCRIPT="/srv/docker/system/nginx-proxy-path/install.sh"
|
||||
|
||||
if [ ! -f "$PROXY_SCRIPT" ]; then
|
||||
log "Fehler: nginx-proxy-path nicht installiert."
|
||||
log "Bitte zuerst das Rezept 'nginx-proxy-path' installieren."
|
||||
exit 0
|
||||
fi
|
||||
|
||||
echo ""
|
||||
echo "Bitte Proxy-Pfad einrichten:"
|
||||
bash "$PROXY_SCRIPT"
|
||||
fi
|
||||
|
||||
Reference in New Issue
Block a user