# Persistenter Cloudflare Tunnel für LM Studio auf Win11

**Ziel:** Eine feste URL wie `https://lmstudio.raumkommander.at` die NIE wechselt,
auch nach Reboot/Reconnect. Ersetzt die `*.trycloudflare.com` Quick-Tunnels.

## Voraussetzungen am Win11

```powershell
winget install --id Cloudflare.cloudflared
```

Prüfen:
```powershell
cloudflared --version
```

## Schritt 1: Cloudflare-Account verknüpfen (einmalig, interaktiv)

```powershell
cloudflared tunnel login
```

Browser öffnet sich → bei Cloudflare einloggen (Account `obermayerhofen@gmail.com`)
→ Zone `raumkommander.at` auswählen → Authorize.

Erzeugt `C:\Users\<dein-user>\.cloudflared\cert.pem`.

## Schritt 2: Benannten Tunnel erstellen

```powershell
cloudflared tunnel create lmstudio-win11
```

Output enthält eine UUID, z.B. `7f8d3c2e-abcd-1234-5678-...`
und schreibt `C:\Users\<user>\.cloudflared\<UUID>.json` (Credentials).

## Schritt 3: DNS-Record setzen

```powershell
cloudflared tunnel route dns lmstudio-win11 lmstudio.raumkommander.at
```

Damit zeigt `lmstudio.raumkommander.at` auf den Tunnel.
(Cloudflare-DNS-Token braucht Scope `Zone:DNS:Edit` — schon vorhanden.)

## Schritt 4: Tunnel-Config schreiben

Datei `C:\Users\<user>\.cloudflared\config.yml`:

```yaml
tunnel: lmstudio-win11
credentials-file: C:\Users\<user>\.cloudflared\<UUID>.json

ingress:
  - hostname: lmstudio.raumkommander.at
    service: http://localhost:1234
  - service: http_status:404
```

## Schritt 5: Als Windows-Service installieren

```powershell
# Als Admin:
cloudflared service install
```

Damit läuft cloudflared automatisch beim Boot. Status prüfen:

```powershell
Get-Service cloudflared
```

## Schritt 6: VPS-Config anpassen

Auf dem VPS:

```bash
# Setze die feste URL als Base
echo -n "https://lmstudio.raumkommander.at" > /root/.openclaw/workspace/data/lmstudio-base-url.txt

# Update openclaw.json provider baseUrl
# (siehe scripts/lmstudio-set-permanent-url.sh)
```

OpenClaw-Provider-baseUrl in `~/.openclaw/openclaw.json` unter
`models.providers.lmstudio.baseUrl` auf
`https://lmstudio.raumkommander.at/v1` setzen (manuell oder via Python wie beim Mac Studio).

Danach `openclaw gateway restart` und das Quick-Tunnel-Pushen entfällt komplett.

## Verifikation

```bash
curl -H "Authorization: Bearer sk-lm-k85hU9gi:jTkvtyPmw6OveTuvv9lB" \
     https://lmstudio.raumkommander.at/v1/models
```

Muss die Modell-Liste zurückgeben.

## Fallback: Quick-Tunnel-Script

Solange der benannte Tunnel nicht eingerichtet ist, läuft `win11-lmstudio-tunnel.ps1`
als Quick-Tunnel-Variante (URL wechselt, wird automatisch nachgepusht).
Sobald der benannte Tunnel steht, kann das Quick-Tunnel-Script deaktiviert werden.
