initial COM2 system snapshot

This commit is contained in:
gitea
2026-03-06 15:22:40 +00:00
commit 9c0fa49baf
4377 changed files with 273033 additions and 0 deletions

View File

@@ -0,0 +1,106 @@
#!/bin/bash
set -euo pipefail
# ================================
# HX-KI CADDY INSTALL (FALKENSTEIN)
# ================================
# Macht:
# - /opt/hx-caddy anlegen
# - docker-compose.yml + Caddyfile schreiben
# - Caddy per Docker starten
# - n8n.hx-ki.com -> Nürnberg:5678 routen
# Bricht lieber ab, wenn Ports 80/443 schon belegt sind.
NBG_IP="46.224.17.53" # Nürnberg (Gehirn)
N8N_DOMAIN="n8n.hx-ki.com" # Offizielle n8n-Subdomain
CADDY_DIR="/opt/hx-caddy"
echo "==> Prüfe, ob Docker installiert ist ..."
if ! command -v docker >/dev/null 2>&1; then
echo "Docker ist nicht installiert. Abbruch."
exit 1
fi
echo "==> Finde docker compose / docker-compose ..."
if docker compose version >/dev/null 2>&1; then
DC="docker compose"
elif command -v docker-compose >/dev/null 2>&1; then
DC="docker-compose"
else
echo "Weder 'docker compose' noch 'docker-compose' gefunden. Abbruch."
exit 1
fi
echo "==> Prüfe, ob Ports 80/443 bereits belegt sind ..."
if ss -tulpn 2>/dev/null | grep -qE ':(80|443)\s'; then
echo "ACHTUNG: Ports 80 oder 443 sind bereits in Benutzung."
echo "Ich mache NICHTS, um nichts zu zerschießen."
echo
ss -tulpn 2>/dev/null | grep -E ':(80|443)\s' || true
echo
echo "Bitte zuerst klären, welcher Dienst 80/443 nutzt (z.B. Mailcow/nginx),"
echo "und dann entscheiden, ob Caddy davor/danach stehen soll."
exit 1
fi
echo "==> Erstelle Verzeichnis: $CADDY_DIR ..."
mkdir -p "$CADDY_DIR"
cd "$CADDY_DIR"
echo "==> Backup vorhandener Dateien (falls vorhanden) ..."
for f in docker-compose.yml Caddyfile; do
if [ -f "$f" ]; then
cp "$f" "${f}.bak.$(date +%F-%H%M%S)"
echo " Backup von $f -> ${f}.bak.$(date +%F-%H%M%S)"
fi
done
echo "==> Schreibe docker-compose.yml für Caddy ..."
cat > docker-compose.yml <<EOF
services:
caddy:
image: caddy:2
restart: always
ports:
- "80:80"
- "443:443"
volumes:
- ./Caddyfile:/etc/caddy/Caddyfile
- caddy_data:/data
- caddy_config:/config
volumes:
caddy_data:
caddy_config:
EOF
echo "==> Schreibe Caddyfile (n8n-Proxy) ..."
cat > Caddyfile <<EOF
{
# Optional: E-Mail für Let's Encrypt
email admin@hx-ki.com
}
${N8N_DOMAIN} {
reverse_proxy ${NBG_IP}:5678
}
EOF
echo "==> Starte Caddy über Docker ..."
$DC up -d
echo "==> Laufende Caddy-Container:"
docker ps --format 'table {{.Names}}\t{{.Status}}\t{{.Ports}}' | grep caddy || true
echo
echo "=================================================="
echo "Caddy läuft jetzt (sofern keine Fehler gemeldet wurden)."
echo
echo "Wenn DNS korrekt gesetzt ist, solltest du n8n erreichen unter:"
echo " https://${N8N_DOMAIN}"
echo
echo "WICHTIG:"
echo "- Nürnberg (46.224.17.53:5678) liefert weiterhin deinen alten n8n-Workflow."
echo "- Wir haben NICHTS auf Nürnberg/Helsinki verändert."
echo "- Das hier ist nur der Türsteher auf Falkenstein."
echo "=================================================="