From 6d0cd5856264541213d4d42db1e692b4fe5ee093 Mon Sep 17 00:00:00 2001 From: Wolfgang Date: Sun, 11 Jan 2026 13:25:47 +0100 Subject: [PATCH] Prototype2.1-JSON --- delete_stopped_lxcs.sh | 52 ++++++++++++++++++++++++++++++++++++++++++ templates/env.template | 20 ++++++++++++++++ 2 files changed, 72 insertions(+) create mode 100755 delete_stopped_lxcs.sh create mode 100644 templates/env.template diff --git a/delete_stopped_lxcs.sh b/delete_stopped_lxcs.sh new file mode 100755 index 0000000..0ef378d --- /dev/null +++ b/delete_stopped_lxcs.sh @@ -0,0 +1,52 @@ +#!/bin/bash + +# Skript zum Löschen aller gestoppten LXCs auf dem lokalen Proxmox-Node +# Verwendet pct destroy und berücksichtigt nur den lokalen Node + +# Überprüfen, ob das Skript als Root ausgeführt wird +if [ "$(id -u)" -ne 0 ]; then + echo "Dieses Skript muss als Root ausgeführt werden." >&2 + exit 1 +fi + +# Überprüfen, ob pct verfügbar ist +if ! command -v pct &> /dev/null; then + echo "pct ist nicht installiert. Bitte installieren Sie es zuerst." >&2 + exit 1 +fi + +# Alle gestoppten LXCs auf dem lokalen Node abrufen +echo "Suche nach gestoppten LXCs auf diesem Node..." +stopped_lxcs=$(pct list | awk '$2 == "stopped" {print $1}') + +if [ -z "$stopped_lxcs" ]; then + echo "Keine gestoppten LXCs auf diesem Node gefunden." + exit 0 +fi + +echo "Gefundene gestoppte LXCs auf diesem Node:" +echo "$stopped_lxcs" | while read -r lxc_id; do + lxc_name=$(pct config $lxc_id | grep '^hostname:' | awk '{print $2}') + echo " $lxc_id - $lxc_name" +done + +# Bestätigung einholen +read -p "Möchten Sie diese LXCs wirklich löschen? (y/n): " confirm +if [[ ! "$confirm" =~ ^[Yy]$ ]]; then + echo "Löschvorgang abgebrochen." + exit 0 +fi + +# LXCs löschen +echo "Lösche gestoppte LXCs..." +for lxc_id in $stopped_lxcs; do + echo "Lösche LXC $lxc_id..." + pct destroy $lxc_id + if [ $? -eq 0 ]; then + echo "LXC $lxc_id erfolgreich gelöscht." + else + echo "Fehler beim Löschen von LXC $lxc_id." >&2 + fi +done + +echo "Vorgang abgeschlossen." \ No newline at end of file diff --git a/templates/env.template b/templates/env.template new file mode 100644 index 0000000..edd3813 --- /dev/null +++ b/templates/env.template @@ -0,0 +1,20 @@ +# Basics +TZ=Europe/Berlin + +# n8n URL-Setup (wird pro Kunde gefüllt) +N8N_HOST={{N8N_HOST}} +N8N_EDITOR_BASE_URL=https://{{N8N_HOST}}/ +WEBHOOK_URL=https://{{N8N_HOST}}/ + +# Dashboard BasicAuth (wird random generiert) +DASHBOARD_USERNAME={{DASHBOARD_USERNAME}} +DASHBOARD_PASSWORD={{DASHBOARD_PASSWORD}} + +# n8n Credential Encryption Key (wird random generiert, 64 hex chars ok) +N8N_ENCRYPTION_KEY={{N8N_ENCRYPTION_KEY}} + +# Postgres +POSTGRES_USER=postgres +POSTGRES_PASSWORD={{POSTGRES_PASSWORD}} +POSTGRES_DB=postgres +