Keine eigenen Cookies · Kein Tracking auf dieser Seite

KI Tutorials

ChatGPT, Claude, lokale LLMs und Prompt-Engineering — KI praxisnah einsetzen.

6 Tutorials in dieser Kategorie

Startseite Büro Windows PowerShell Linux Raspberry Pi Mac iPhone Android Tools Troubleshooting KI Netzwerk Robotik Sicherheit

KI

KI-gestützte Workflows für Server, Sicherheit und Automatisierung

Lokales LLM
Profi

llamafile: komplettes lokales LLM als EINE ausfuehrbare Datei — ohne Installation

Modellgewichte, Inferenz-Engine und Webserver in EINER ausfuehrbaren Datei: lokales LLM ohne Installation, cross-OS, mit OpenAI-kompatibler API.

Mehr lesen

Mozillas llamafile packt Modellgewichte, die Inferenz-Engine (llama.cpp) und einen Webserver in eine einzige ausfuehrbare Datei. Dank Cosmopolitan Libc entsteht ein „Actually Portable Executable", das ohne Installation, Runtime oder Container auf Linux, macOS, Windows, FreeBSD und OpenBSD laeuft. Fuer dich als Profi ist das der schnellste Weg zu einem reproduzierbaren, vollstaendig offline laufenden LLM mit OpenAI-kompatibler REST-API — ideal, wenn keine Daten den Rechner verlassen duerfen (DSGVO).

Wie es funktioniert

  • Eine Binary enthaelt Engine + Webserver + UI + Modellgewichte — keine externen Abhaengigkeiten, kein pip, kein Docker.
  • Das APE-Format wird je OS unterschiedlich interpretiert: Linux liest die ELF-Header, Windows fuehrt es als PE aus, macOS bootstrappt beim ersten Start nach Mach-O.
  • Beim Start wird sowohl eine Web-Chat-UI auf http://127.0.0.1:8080/ als auch eine OpenAI-kompatible API unter /v1 bereitgestellt — bestehende Clients (LangChain, Haystack, SDKs) zeigen einfach dorthin.
  • Ohne GPU laeuft alles auf der CPU; llamafile faellt automatisch zurueck.

Herunterladen und starten

  1. Fertiges llamafile (z. B. ein Llama-3.2- oder Qwen3-Modell) aus den Mozilla-AI-Releases oder von Hugging Face laden.
  2. Auf Linux/macOS/BSD ausfuehrbar machen und starten:
    chmod +x ./model.llamafile
    ./model.llamafile
  3. Auf Windows die Datei in model.exe umbenennen und ausfuehren. Beachte: Windows hat ein 4-GB-Limit fuer ausfuehrbare Dateien — groessere Modelle entweder unter WSL starten oder als externe Gewichte laden (siehe unten).
  4. Ohne Modus-Flag startet der Combined Mode: Webserver auf :8080 plus Terminal-Chat gleichzeitig. Fuer reinen Headless-Betrieb:
    ./model.llamafile --server --nobrowser --host 0.0.0.0 --port 8080

Modi und wichtige Flags

  • --server — nur HTTP-Server (Web-UI + API), --nobrowser unterdrueckt das Auto-Oeffnen des Browsers.
  • --cli — One-Shot-Inferenz im Terminal, Prompt via -p "...", Bild fuer multimodale Modelle via --image.
  • --chat — interaktiver Terminal-Chat mit /-Befehlen.
  • -m datei.ggufexterne Gewichte mit dem schlanken Launcher kombinieren (umgeht das Windows-4-GB-Limit).
  • --ngl 999 — moeglichst viele Transformer-Layer auf NVIDIA/AMD-GPU auslagern (so viele wie passen).
  • --ctx-size, --temp, --host, --port — Kontextfenster, Temperatur, Bind-Adresse, Port.

Die OpenAI-kompatible API nutzen

Sobald der Server laeuft, sprichst du ihn wie OpenAI an — der API-Key ist ein Platzhalter, da lokal nicht geprueft:

curl http://localhost:8080/v1/chat/completions \
  -H "Content-Type: application/json" \
  -H "Authorization: Bearer no-key" \
  -d '{
    "model": "local",
    "messages": [{"role": "user", "content": "Fasse DSGVO Art. 9 in einem Satz zusammen."}]
  }'

In Python reicht der OpenAI-Client mit base_url="http://localhost:8080/v1" und api_key="no-key". So portierst du bestehenden GPT-Code ohne Logikaenderung auf eine rein lokale Instanz.

DSGVO und Sicherheit

  • Keine Telemetrie, kein Cloud-Call: Prompts und Antworten verlassen den Rechner nicht — die einfachste Basis fuer einen DSGVO-konformen, auch air-gapped betreibbaren LLM-Dienst.
  • Aeltere llamafile-Linien sandboxen den HTTP-Server unter Linux/OpenBSD per pledge() und SECCOMP (deaktivierbar mit --unsecure); nach dem Start hat der Server keinen Dateisystem-Zugriff mehr. Achtung: Im 0.10.x-Rebuild wurde dieser Sandbox-Layer entfernt — verlasse dich auf der jeweiligen Version nicht blind darauf, sondern isoliere selbst (eigener User, Firewall, kein Bind auf 0.0.0.0 in unsicheren Netzen).

Profi-Tipp: Trenne Engine und Gewichte. Mit dem ~25-MB-Launcher plus -m modell.gguf tauschst du Modelle aus, ohne mehrere GB grosse Binaries vorzuhalten — und du musst die GGUF-Datei vorher zipalign-en, sonst wird sie in den RAM kopiert statt per mmap eingeblendet, was den Speicherbedarf verdoppelt.

KI-Basics
Einsteiger

KI-Tools im Alltag sinnvoll nutzen: ChatGPT, Claude & lokale Modelle (ohne Vorkenntnisse)

ChatGPT, Claude und lokale Modelle ohne Vorkenntnisse nutzen: besser prompten, Dokumente zusammenfassen und wissen, was niemals in die Cloud gehoert.

Mehr lesen

KI-Chatbots wie ChatGPT und Claude sind 2026 Alltagswerkzeuge: Texte entwerfen, E-Mails formulieren, Dokumente zusammenfassen, Dinge erklaeren. Dieses Tutorial richtet sich an Einsteiger ohne Vorkenntnisse. Du lernst, wie du gute Anweisungen (Prompts) schreibst, lange Texte zusammenfassen laesst, welche Daten nicht in die Cloud gehoeren und wie du ein KI-Modell DSGVO-freundlich komplett lokal auf deinem eigenen Rechner startest.

Welches Tool fuer den Einstieg?

Beide grossen Anbieter haben einen kostenlosen Zugang, fuer den nur ein Konto noetig ist. Fuer erste Schritte reicht das voellig aus.

  • ChatGPT (chatgpt.com): Kostenlos mit dem Modell GPT-5.5 Instant. Gut fuer kreatives Schreiben, Bildgenerierung und Websuche.
  • Claude (claude.ai): Kostenlos mit Claude Sonnet 4.6 bei begrenzter Nutzung pro Zeitfenster. Stark beim Verarbeiten langer Dokumente und beim sauberen, nuechternen Formulieren.
  • Beide kostenpflichtige Plaene (Plus / Pro) liegen bei rund 20 USD im Monat und geben dir mehr Nachrichten und staerkere Modelle.

Tipp fuer Einsteiger: Lege dir bei beiden ein kostenloses Konto an und stelle dieselbe Frage parallel. So merkst du schnell, welcher Stil dir besser liegt.

Gut prompten: das R-A-F-Prinzip

Die meisten schlechten Antworten kommen nicht vom Modell, sondern von unklaren Anweisungen. Drei Bausteine bringen dich zu rund 80 Prozent der Qualitaet, die Profis erreichen:

  1. Rolle geben: Sag der KI, wer sie sein soll. „Du bist ein erfahrener Steuerberater“ liefert andere Antworten als eine allgemeine Auskunft.
  2. Aufgabe + Kontext: Beschreibe klar, was du willst und fuer wen. Nenne Hintergrund: „Ich bin Vereinsvorstand und schreibe an unsere 50 Mitglieder.“
  3. Format vorgeben: Sag, wie das Ergebnis aussehen soll — Laenge, Aufzaehlung, Tonfall, Sprache.

Statt „Schreib was ueber gesunde Ernaehrung“ also lieber:

Du bist Ernaehrungsberater. Schreibe einen freundlichen
Text fuer Einsteiger ueber gesunde Ernaehrung im Buero-Alltag.
Zielgruppe: Menschen ohne Zeit zum Kochen.
Format: 5 kurze Tipps als Aufzaehlung, je 1 Satz, auf Deutsch.

Wenn die Antwort nicht passt, gib einfach in derselben Unterhaltung Feedback („kuerzer“, „weniger formell“, „mit einem Beispiel“). Die KI merkt sich den bisherigen Verlauf.

Dokumente und lange Texte zusammenfassen

Eine der nuetzlichsten Alltagsaufgaben. So gehst du vor:

  1. Lade das Dokument hoch (PDF/Word per Bueroklammer-Symbol) oder kopiere den Text direkt in das Eingabefeld.
  2. Gib eine klare Aufgabe statt nur „fasse zusammen“:
Fasse das angehaengte Dokument in maximal 8 Stichpunkten
zusammen. Hebe alle Fristen und Geldbetraege hervor.
Wenn etwas unklar oder nicht im Text steht, schreibe
ausdruecklich "nicht angegeben" statt zu raten.

Der Zusatz „nicht angegeben statt zu raten“ ist wichtig: Er senkt das Risiko, dass die KI plausibel klingende, aber falsche Angaben erfindet (sogenannte Halluzinationen).

Wichtig: Pruefe Zahlen, Namen, Daten und Rechtsangaben immer im Originaldokument nach. Eine KI-Zusammenfassung ist ein Entwurf, keine gepruefte Quelle.

Was NICHT in die Cloud gehoert

ChatGPT und Claude laufen auf Servern der Anbieter (meist in den USA). Standardmaessig koennen deine Eingaben zur Modellverbesserung verwendet werden, wenn du nicht widersprichst. Daher gilt:

  • Niemals eingeben: Passwoerter, Bank-/Kreditkartendaten, komplette Personalakten, Gesundheits- oder Patientendaten, Mandanten- und Kundendaten ohne Auftragsverarbeitungsvertrag (AVV).
  • Als Privatperson: anonymisiere Namen, Adressen und Kontonummern, bevor du etwas einfuegst.
  • Beruflich/DSGVO: Personenbezogene Daten brauchen eine Rechtsgrundlage und einen AVV mit dem Anbieter. Im Zweifel nicht hochladen.

Trainingsnutzung abschalten (Stand 2026):

  • ChatGPT: EinstellungenDatensteuerung → Schalter „Modell fuer alle verbessern“ ausschalten.
  • Claude: EinstellungenDatenschutz → Schalter „Claude verbessern helfen“ ausschalten. Bei deaktivierter Trainingsnutzung liegt die Aufbewahrung bei rund 30 Tagen statt bis zu 5 Jahren.

Als EU-Nutzer hast du zudem DSGVO-Rechte (Auskunft, Loeschung, Datenuebertragbarkeit). Das Abschalten verhindert kuenftiges Training, loescht aber nicht automatisch bereits verarbeitete Daten.

Komplett lokal und DSGVO-konform starten (Ollama)

Wenn Daten den Rechner gar nicht verlassen sollen, betreibst du ein Modell lokal mit Ollama — kostenlos, offline, ohne dass etwas in eine Cloud gesendet wird. Faustregel: ab 8 GB RAM laufen kleine 7–8B-Modelle, fuer groessere brauchst du 16 GB oder mehr.

  1. Ollama installieren:
# Linux
curl -fsSL https://ollama.com/install.sh | sh

# macOS (mit Homebrew)
brew install ollama

# Windows: Installer von ollama.com/download laden und ausfuehren
  1. Ein Modell laden und starten — es wird beim ersten Mal heruntergeladen:
# kleines, schnelles Modell starten (interaktiver Chat)
ollama run llama3.2

# bereits geladene Modelle anzeigen
ollama list

# ein Modell nur herunterladen, ohne es zu starten
ollama pull llama3.2

Nach ollama run tippst du deine Frage direkt ins Terminal. Mit der Eingabe /bye beendest du den Chat. Da alles lokal laeuft, eignet sich dieser Weg gut fuer sensible Inhalte — die schon vorhandene Hardware setzt aber die Grenze, wie gross das Modell sein kann.

Profi-Hinweis: Lokale 7–8B-Modelle sind klar schwaecher als ChatGPT oder Claude in der Cloud. Eine sinnvolle Strategie: unkritische Aufgaben in der Cloud (mit abgeschaltetem Training), sensible personenbezogene Daten ausschliesslich lokal. Und egal welche Quelle — fuehre nie einen Befehl mit sudo aus, den du nicht verstehst.

Homelab
Fortgeschritten

Proxmox + Ubuntu Server + Claude Code

Von Null zum KI-gesteuerten Homelab — Proxmox installieren, Ubuntu-VM aufsetzen und mit Claude Code arbeiten.

Mehr lesen

Warum ein eigenes Homelab?

Cloud-Dienste sind bequem, aber ein eigener Server gibt dir volle Kontrolle über deine Daten, keine monatlichen Kosten und unbegrenzte Möglichkeiten zum Lernen. Mit Proxmox VE als Hypervisor kannst du mehrere virtuelle Maschinen auf einem einzigen Rechner betreiben — ideal für Entwicklung, Tests und Produktiv-Systeme.

Was du brauchst

KomponenteMinimumEmpfohlen
CPU4 Kerne (Intel/AMD mit VT-x)8+ Kerne
RAM16 GB32+ GB
Speicher256 GB SSD500 GB+ NVMe
Netzwerk1x Ethernet1 Gbit Ethernet

Schritt 1: Proxmox VE installieren

  1. Proxmox ISO von proxmox.com herunterladen
  2. Mit Rufus (Windows) oder dd (Linux) auf USB-Stick schreiben
  3. Vom USB-Stick booten, Installationsassistent durchlaufen
  4. Nach dem Neustart: https://<IP>:8006 im Browser öffnen
# USB-Stick unter Linux erstellen
sudo dd if=proxmox-ve_9.1.iso of=/dev/sdX bs=4M status=progress
sync

Schritt 2: Ubuntu Server VM erstellen

  1. Im Proxmox Web-UI: Create VM klicken
  2. Ubuntu Server 24.04 ISO hochladen und auswählen
  3. Ressourcen zuweisen: 4 CPU-Kerne, 8 GB RAM, 64 GB Disk
  4. Netzwerk: vmbr0 (Bridge zum LAN)
  5. VM starten, Ubuntu Server installieren (minimale Installation)

Schritt 3: Claude Code installieren

# Node.js installieren (v22 LTS)
curl -fsSL https://deb.nodesource.com/setup_22.x | sudo -E bash -
sudo apt install -y nodejs

# Claude Code installieren
npm install -g @anthropic-ai/claude-code

# Starten und mit Anthropic-Konto verbinden
claude

Schritt 4: Tailscale für sicheren Remote-Zugriff

# Tailscale installieren
curl -fsSL https://tailscale.com/install.sh | sh
sudo tailscale up

# Jetzt erreichbar über Tailscale-IP (100.x.x.x)
# Von überall sicher per SSH verbinden:
ssh user@100.x.x.x

Ergebnis

Du hast jetzt einen Proxmox-Server mit einer Ubuntu-VM, auf der Claude Code läuft. Du kannst von überall über Tailscale darauf zugreifen und KI-gestützt arbeiten — Code schreiben, Server verwalten, Deployments automatisieren.

Tipp: Erstelle regelmäßig Snapshots deiner VM in Proxmox, bevor du größere Änderungen vornimmst. So kannst du jederzeit zurückrollen.

Security
Fortgeschritten

Server absichern mit KI-Unterstützung

UFW, Fail2ban, SSH-Hardening und Tailscale — mit Claude Code als Security-Assistent.

Mehr lesen

Warum Absicherung Pflicht ist

Ein Server im Netzwerk wird sofort angegriffen. Automatisierte Bots scannen rund um die Uhr nach offenen Ports, Standard-Passwörtern und bekannten Schwachstellen. Ohne Absicherung ist es nur eine Frage der Zeit, bis jemand einbricht.

1. SSH absichern

SSH ist der Haupteingang zu deinem Server. Hier gelten strenge Regeln:

# /etc/ssh/sshd_config
PermitRootLogin prohibit-password
PasswordAuthentication no
PubkeyAuthentication yes
KbdInteractiveAuthentication no
AllowUsers dein-user
MaxAuthTries 3
LoginGraceTime 30

# Nur moderne Algorithmen
KexAlgorithms sntrup761x25519-sha512@openssh.com,curve25519-sha256
HostKeyAlgorithms ssh-ed25519
Ciphers chacha20-poly1305@openssh.com,aes256-gcm@openssh.com
MACs hmac-sha2-512-etm@openssh.com,hmac-sha2-256-etm@openssh.com
# SSH-Key generieren (auf deinem Rechner)
ssh-keygen -t ed25519 -C "dein-name@server"

# Key auf den Server kopieren
ssh-copy-id -i ~/.ssh/id_ed25519.pub user@server-ip

# Dienst neu starten
sudo systemctl restart sshd

2. Firewall mit UFW

Prinzip: Alles verbieten, nur Erlaubtes zulassen (Zero-Trust).

# UFW installieren und konfigurieren
sudo apt install ufw
sudo ufw default deny incoming
sudo ufw default deny outgoing

# Nur das Nötigste erlauben
sudo ufw allow in on tailscale0     # Tailscale-Traffic
sudo ufw allow out 443/tcp          # HTTPS
sudo ufw allow out 80/tcp           # HTTP
sudo ufw allow out 53               # DNS

# Aktivieren
sudo ufw enable
sudo ufw status verbose

3. Fail2ban gegen Brute-Force

# Fail2ban installieren
sudo apt install fail2ban

# Konfiguration erstellen
sudo tee /etc/fail2ban/jail.local <<EOF
[sshd]
enabled = true
port = ssh
filter = sshd
maxretry = 3
bantime = 3600
findtime = 600
EOF

sudo systemctl enable --now fail2ban

4. Monitoring mit Telegram-Alerts

Werde sofort benachrichtigt, wenn sich jemand einloggt oder ein Login fehlschlägt:

# Login-Benachrichtigung in /etc/profile.d/login-notify.sh
#!/bin/bash
TITLE="SSH Login"
MSG="User: $(whoami) | Host: $(hostname) | IP: $(echo $SSH_CLIENT | awk '{print $1}')"
curl -s "https://api.telegram.org/bot<TOKEN>/sendMessage" \
  -d "chat_id=<CHAT_ID>" \
  -d "text=$TITLE: $MSG" >/dev/null 2>&1

5. Claude Code als Security-Assistent

Mit Claude Code kannst du deine Sicherheitskonfiguration prüfen und verbessern lassen:

  • Audit: „Prüfe meine sshd_config auf Schwachstellen“
  • Firewall: „Zeige mir alle offenen Ports und ob sie nötig sind“
  • Logs: „Analysiere /var/log/auth.log auf verdächtige Aktivitäten“
  • Updates: „Prüfe ob Sicherheitsupdates ausstehen“

Nie blind Befehle ausführen, die du nicht verstehst — auch nicht von einer KI. Lies immer zuerst, was ein Befehl tut, bevor du ihn mit sudo ausführst.

Automatisierung
Profi

VMs verwalten mit Claude Code

Proxmox-API steuern, Monitoring-Skripte erstellen und Backups automatisieren — alles mit KI.

Mehr lesen

Die Proxmox API

Proxmox VE bietet eine vollständige REST-API, die du per Kommandozeile oder Skript ansprechen kannst. Statt im Web-UI zu klicken, automatisierst du alles.

API-Token erstellen

  1. Proxmox Web-UI → Datacenter → Permissions → API Tokens
  2. Neuen Token erstellen (z.B. user@pve!claude-code)
  3. Token-Secret sicher speichern

VM-Status abfragen

# Alle VMs auflisten
curl -s -k \
  -H "Authorization: PVEAPIToken=user@pve!token=SECRET" \
  "https://proxmox:8006/api2/json/nodes/pve/qemu" \
  | python3 -m json.tool

# Status einer einzelnen VM (VMID 100)
curl -s -k \
  -H "Authorization: PVEAPIToken=user@pve!token=SECRET" \
  "https://proxmox:8006/api2/json/nodes/pve/qemu/100/status/current"

Monitoring-Skript mit Claude Code

Lass dir ein Monitoring-Skript erstellen, das regelmäßig prüft:

#!/bin/bash
# monitor.sh - VM Health Check
API="https://proxmox:8006/api2/json"
TOKEN="PVEAPIToken=user@pve!token=SECRET"

for VMID in 100 103 108; do
  STATUS=$(curl -s -k -H "Authorization: $TOKEN" \
    "$API/nodes/pve/qemu/$VMID/status/current" \
    | python3 -c "import sys,json; print(json.load(sys.stdin)['data']['status'])")

  if [ "$STATUS" != "running" ]; then
    echo "WARNUNG: VM $VMID ist $STATUS!"
    # Telegram-Alert senden
  fi
done

Backup-Strategie

TypFrequenzAufbewahrung
Datenbank-DumpTäglich 02:307 Tage + 4 Wochen + 12 Monate
VM-SnapshotVor ÄnderungenLetzte 3
Full VM BackupWöchentlich4 Wochen

Automatischer Datenbank-Backup

#!/bin/bash
# backup.sh - Verschlüsselter DB-Backup
BACKUP_DIR="/opt/backups"
DATE=$(date +%Y-%m-%d_%H%M)
DB_NAME="meine_app"

# Dump erstellen und verschlüsseln
docker exec db-container pg_dump -U postgres $DB_NAME \
  | gzip \
  | openssl enc -aes-256-cbc -salt -pbkdf2 \
    -pass file:/opt/backups/.backup-key \
  > "$BACKUP_DIR/${DB_NAME}_${DATE}.sql.gz.enc"

# Alte Backups aufräumen (7 Tage behalten)
find "$BACKUP_DIR" -name "*.enc" -mtime +7 -delete

Backups sind nur nützlich, wenn du sie auch testest. Stelle mindestens einmal im Monat einen Backup wieder her und prüfe, ob die Daten vollständig sind.

DevOps
Profi

Docker & Deployments mit KI

Container bauen, über mehrere VMs deployen und mit Cloudflare Tunnels sicher veröffentlichen.

Mehr lesen

Warum Docker?

Docker isoliert Anwendungen in Containern: Deine App läuft überall gleich — egal ob auf dem Entwicklungsrechner oder dem Produktiv-Server. Keine „bei mir funktioniert es aber“-Probleme mehr.

Dockerfile mit Claude Code erstellen

# Beispiel: Node.js-App
FROM node:22-alpine
WORKDIR /app
COPY package*.json ./
RUN npm ci --only=production
COPY . .
EXPOSE 3000
CMD ["node", "server/index.js"]

Docker Compose für App + Datenbank

# docker-compose.yml
services:
  app:
    build: .
    ports:
      - "127.0.0.1:3000:3000"
    environment:
      - DATABASE_URL=postgresql://user:pass@db:5432/myapp
    depends_on:
      - db
    restart: unless-stopped

  db:
    image: postgres:17-alpine
    ports:
      - "127.0.0.1:5433:5432"
    environment:
      - POSTGRES_USER=user
      - POSTGRES_PASSWORD=pass
      - POSTGRES_DB=myapp
    volumes:
      - pgdata:/var/lib/postgresql/data
    restart: unless-stopped

volumes:
  pgdata:

Multi-VM Deployment

Wenn dein Dev-Server und Prod-Server verschiedene VMs sind:

# 1. Auf dem Dev-Server bauen
docker build -t meine-app:latest .
docker save meine-app:latest | gzip > meine-app.tar.gz

# 2. Zum Prod-Server transferieren
scp meine-app.tar.gz user@prod-server:/tmp/

# 3. Auf dem Prod-Server laden und starten
ssh user@prod-server
docker load < /tmp/meine-app.tar.gz
cd /opt/meine-app
docker compose up -d

Cloudflare Tunnel für sichere Exposition

Statt Ports direkt zu öffnen, nutze einen Cloudflare Tunnel. Dein Server ist nie direkt aus dem Internet erreichbar.

# Cloudflare Tunnel installieren
curl -L --output cloudflared.deb \
  https://github.com/cloudflare/cloudflared/releases/latest/download/cloudflared-linux-amd64.deb
sudo dpkg -i cloudflared.deb

# Tunnel erstellen und konfigurieren
cloudflared tunnel login
cloudflared tunnel create mein-tunnel
cloudflared tunnel route dns mein-tunnel app.meine-domain.de

# Als Systemdienst installieren
sudo cloudflared service install

Container-Monitoring

# Health Check per Skript
#!/bin/bash
CONTAINER="meine-app"
if ! docker ps --format '{{.Names}}' | grep -q "^${CONTAINER}$"; then
  echo "$CONTAINER ist gestoppt! Starte neu..."
  cd /opt/meine-app && docker compose up -d
  # Telegram-Alert senden
fi

Verwende immer 127.0.0.1 statt 0.0.0.0 für Port-Bindings. So ist der Dienst nur lokal erreichbar — der Cloudflare Tunnel leitet den Traffic sicher weiter.