managarten/docs/WINDOWS_GPU_SERVER_SETUP.md
Till JS 3631cc7707 docs: add Windows GPU server to project documentation
- Add mana-server-gpu (RTX 3090, 24GB VRAM) to CLAUDE.md server section
- Add SSH config for mana-gpu alias
- Fix WINDOWS_GPU_SERVER_SETUP.md: correct network values, admin SSH key
  setup with SID-based permissions (language-independent)

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-25 09:04:08 +01:00

5.7 KiB

Windows GPU-Server: Lokale Einrichtung

Diese Anleitung wird am Windows-PC selbst durchgeführt. Ziel: SSH + Grundkonfiguration, damit der Rechner remote steuerbar ist.

Danach kann alles Weitere (Ollama, AI-Services, Cloudflare Tunnel) per SSH erledigt werden.


Schritt 1: Computername setzen

PowerShell als Administrator öffnen (Rechtsklick → Als Administrator ausführen):

Rename-Computer -NewName "mana-server-gpu"

Noch nicht neu starten — erst alle Schritte durchgehen.


Schritt 2: SSH-Server aktivieren

Gleiche Admin-PowerShell:

# SSH-Server installieren
Add-WindowsCapability -Online -Name OpenSSH.Server~~~~0.0.1.0

# SSH-Server starten
Start-Service sshd

# Automatisch bei jedem Start
Set-Service -Name sshd -StartupType Automatic

# Standard-Shell auf PowerShell setzen (statt cmd)
New-ItemProperty -Path "HKLM:\SOFTWARE\OpenSSH" -Name DefaultShell -Value "C:\Windows\System32\WindowsPowerShell\v1.0\powershell.exe" -PropertyType String -Force

Schritt 3: Statische IP vergeben

  1. EinstellungenNetzwerk und InternetEthernet
  2. Bei der aktiven Verbindung auf Bearbeiten klicken (bei IP-Zuweisung)
  3. Auf Manuell umstellen, IPv4 aktivieren:
IP-Adresse:      192.168.178.11
Subnetzmaske:    255.255.255.0
Gateway:         192.168.178.1
Bevorzugter DNS: 192.168.178.1
Alternativer DNS: 1.1.1.1

Mac Mini ist auf 192.168.178.131, Gateway ist 192.168.178.1.


Schritt 4: Firewall-Ports öffnen

Gleiche Admin-PowerShell:

# SSH (sollte schon offen sein, sicherheitshalber)
New-NetFirewallRule -DisplayName "SSH" -Direction Inbound -LocalPort 22 -Protocol TCP -Action Allow

# Ollama
New-NetFirewallRule -DisplayName "Ollama" -Direction Inbound -LocalPort 11434 -Protocol TCP -Action Allow

# AI-Services
New-NetFirewallRule -DisplayName "Mana-STT" -Direction Inbound -LocalPort 3020 -Protocol TCP -Action Allow
New-NetFirewallRule -DisplayName "Mana-TTS" -Direction Inbound -LocalPort 3022 -Protocol TCP -Action Allow
New-NetFirewallRule -DisplayName "Mana-Image-Gen" -Direction Inbound -LocalPort 3023 -Protocol TCP -Action Allow
New-NetFirewallRule -DisplayName "Mana-LLM" -Direction Inbound -LocalPort 3025 -Protocol TCP -Action Allow

Schritt 5: NVIDIA-Treiber prüfen

nvidia-smi

Falls der Befehl nicht gefunden wird oder der Treiber alt ist (< 535.x):

  1. https://www.nvidia.com/Download/index.aspx → neusten Treiber für deine GPU laden
  2. Installieren, neu starten

Falls nvidia-smi funktioniert → Treiberversion und GPU-Name notieren.


Schritt 6: Python 3.11 installieren

winget install Python.Python.3.11

Falls winget nicht verfügbar: https://www.python.org/downloads/ → 3.11.x

Wichtig: Bei der Installation "Add Python to PATH" ankreuzen!

Prüfen:

python --version

Schritt 7: Git installieren

winget install Git.Git

Prüfen (neue PowerShell öffnen):

git --version

Schritt 8: Arbeitsverzeichnis anlegen

mkdir C:\mana
mkdir C:\mana\services
mkdir C:\mana\venvs
mkdir C:\mana\models

Schritt 9: Neustart

Restart-Computer

Schritt 10: SSH-Key einrichten (passwortloser Zugriff)

Auf dem Windows-PC in PowerShell als Administrator ausführen:

# Für Admin-User muss der Key in die systemweite Datei:
"ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIAmtp92RmE6lPhHRg24VSYIvq9ne4+qe61SiR4c+lPWu claude-code@manacore" | Out-File -Encoding utf8 -FilePath C:\ProgramData\ssh\administrators_authorized_keys

# Berechtigungen setzen (Windows erfordert das für SSH)
# Vererbung entfernen
icacls C:\ProgramData\ssh\administrators_authorized_keys /inheritance:r

# Berechtigungen setzen (NT AUTHORITY\SYSTEM funktioniert auf allen Sprachen)
icacls C:\ProgramData\ssh\administrators_authorized_keys /grant "NT AUTHORITY\SYSTEM:(R)"

# Admin-Gruppe: Name hängt von der Systemsprache ab, SID ist immer gleich
$adminGroup = (New-Object System.Security.Principal.SecurityIdentifier("S-1-5-32-544")).Translate([System.Security.Principal.NTAccount]).Value
icacls C:\ProgramData\ssh\administrators_authorized_keys /grant "${adminGroup}:(R)"

Warum nicht ~/.ssh/authorized_keys? Windows OpenSSH ignoriert diese Datei für Benutzer in der Administratoren-Gruppe. Stattdessen wird C:\ProgramData\ssh\administrators_authorized_keys gelesen.


Schritt 11: SSH testen

Vom Mac (dev-Rechner) aus testen:

ssh tills@192.168.178.11

Beim ersten Mal Fingerprint bestätigen mit yes.

Falls erfolgreich, sollte eine PowerShell-Sitzung starten.

Zusätzlich testen:

# GPU erreichbar?
ssh tills@192.168.178.11 "nvidia-smi"

# Python da?
ssh tills@192.168.178.11 "python --version"

Ergebnis

Nach diesen Schritten hat der Windows-PC:

  • Fester Computername (mana-server-gpu)
  • SSH-Server (Port 22, Autostart)
  • Statische IP im LAN
  • Firewall-Ports offen für alle AI-Services
  • NVIDIA-Treiber mit CUDA-Support
  • Python 3.11
  • Git
  • Arbeitsverzeichnis C:\mana\

Alles Weitere (Ollama, AI-Services, Cloudflare Tunnel) wird dann per SSH gemacht.


Fehlerbehebung

SSH verbindet nicht

# Auf dem Windows-PC prüfen:
Get-Service sshd           # Muss "Running" zeigen
Test-NetConnection -ComputerName localhost -Port 22   # Muss "TcpTestSucceeded: True" zeigen

nvidia-smi zeigt Fehler

  • Treiber neu installieren
  • PC neu starten
  • Prüfen ob die GPU im Geräte-Manager sichtbar ist

IP-Adresse stimmt nicht

ipconfig
# → Ethernet-Adapter prüfen, IPv4-Adresse muss die statische sein