# noahROBOT unter Windows installieren

Status: Softwarepaket 1.2.0 am 2026-07-16 auf `DESKTOP-FK8F674` installiert,
neu gestartet und von einem zweiten Geraet abgenommen. Das finale Paket
enthaelt die gepinnte WebSocket-Laufzeit, automatische PIN-Rotation und die
reproduzierbare Vorverkabelungs-Abnahme. Die aktive lokale Revision und ihr
Rueckfallstand stehen im Mini-PC-Livebericht. Reale Motorsteuerung bleibt
geschlossen.

## Tatsaechlicher Ausfuehrungsstand 2026-07-16

- ZIP-SHA-256 und alle 124 internen Manifestdateien: `GO`
- Secret-/Key-/Gate-Scan und aktuelle Python-Abhaengigkeitspruefung: `GO`
- Gateway: 36 Tests `GO`; Windows-/PWA-/Safety-/Simulator-Gates `GO`
- Desktop-, iPad-, Smartphone-, Offline-, STOP- und E-Stop-Smokes: `GO`
- Live-Pairing/Rollen/WebSocket/Lease/Reconnect/Rate-Limit: 55/55 `GO`
- STATUS-only und motor-gated: nur kompiliert, kein Upload; `GO`
- dedizierter Mac-SSH-Key und Alias `noah-robot`: `GO`
- Windows-Inventar und Baseline: `GO`
- Dry-Runs, Installation, Update und Neustart: `GO`
- vier Kerndienste, HTTPS, mDNS, Health und Readiness: `GO`
- lokaler Wi-Fi-Direct-Legacy-Netzwerkdienst: vorbereitet; getrennte
  Aktivierungs-/Recovery-Abnahme erforderlich
- finale ZIP-SHA-256: verbindlich in `robot/downloads/SHA256SUMS`

Der Abschlussbericht steht in
`docs/NOAH_ROBOT_MINIPC_LIVE_REPORT_20260716.md`.

## Zielstruktur

```text
C:\Program Files\noah-robot\        Binaries, WinSW und Releases
C:\Program Files\noah-robot\releases\versionierte Releases
C:\Program Files\noah-robot\current\ Junction auf aktives Release
C:\Program Files\noah-robot\previous\Junction auf Rueckfallrelease
C:\ProgramData\noah-robot\config\  lokale Konfiguration, keine Repo-Secrets
C:\ProgramData\noah-robot\secrets\ DPAPI-geschuetztes WLAN-Kennwort
C:\ProgramData\noah-robot\data\    Pairing-Hashes und Fault-Latches
C:\ProgramData\noah-robot\logs\    rotierende Dienstlogs
C:\ProgramData\noah-robot\certificates\ lokale Caddy-CA
C:\ProgramData\noah-robot\diagnostics\ redigierte Diagnose
```

SYSTEM und lokale Administratoren erhalten Zugriff. Private CA-Schluessel,
Pairingdaten und lokale Konfiguration werden nicht in das Repository kopiert.

## Neuinstallation auf einem weiteren Mini-PC

Nach Hashpruefung, Inventar, Backup und Dry-Runs kann der lokale Starter
verwendet werden:

> Doppelklicke auf dem PELADN-Desktop auf „NOAH-ROBOT-INSTALLIEREN.cmd“,
> bestaetige die Windows-Sicherheitsabfrage mit „Ja“ und lasse das Fenster
> geoeffnet, bis „INSTALLATION ERFOLGREICH“ erscheint.

Die Startdatei ruft ausschliesslich das zuvor gepruefte Bootstrap mit
`-Apply -Yes` auf, schreibt ein Zeitstempellog und bleibt bei Erfolg oder
Fehler offen.
Der zugrunde liegende manuelle PowerShell-Weg bleibt fuer Diagnosefaelle:

```powershell
Set-Location C:\Pfad\zu\noahrobot-windows-1.2.0
.\scripts\windows\bootstrap-admin.ps1
.\scripts\windows\bootstrap-admin.ps1 -Apply
```

Der erste Lauf ist Dry-Run. Der Apply-Lauf zeigt alle Aenderungen, verlangt die
Zeichenfolge `NOAH-ROBOT-APPLY` und benoetigt eine lokale UAC-Bestaetigung.

## Was Apply ausfuehrt

- Konfigurations-/OpenSSH-Backup und optionalen Wiederherstellungspunkt
- Python 3.12 x64, Arduino CLI und AVR-Core 1.8.8, falls fehlend
- SHA-geprueftes Caddy 2.11.4 und WinSW 2.12.0
- private Firewallregeln nur fuer TCP 443 und UDP 5353 aus `LocalSubnet`
- eigenes rueckrollbares AC-Energieschema ohne automatischen Standby
- versioniertes Release, Python-Virtualenv, vier Kerndienste und einen
  zunächst manuellen Roboternetz-Dienst
- Healthcheck mit `mode=simulation` und `hardwareGate=closed`
- automatische Verifikation; der vorgefundene `sshd`-/Port-22-Status wird
  informationshalber gemeldet und vom Bootstrap nicht veraendert

Nicht ausgefuehrt werden: Klartext-Passwortspeicherung, SSH-Password-Disable,
automatische Roboternetz-Aktivierung ohne Recovery, Serialzugriff,
Firmware-Flash, Motorsteuerung, Partitionierung oder Windows-Ersatz.

## Verifikation

```powershell
.\scripts\windows\verify-bootstrap.ps1
.\scripts\windows\status.ps1
.\scripts\windows\diagnose.ps1
.\scripts\windows\verify-diagnostics-privacy.ps1
.\scripts\windows\prewiring-acceptance.ps1
```

Erwartet: vier laufende Kerndienste, vorbereiteter Netzwerkdienst, HTTP-200 auf
localhost, Simulation und geschlossenes Gate. Die getrennte Netzaktivierung
steht in `docs/LOCAL_NETWORK.md`.

## Rueckfall

```powershell
.\scripts\windows\rollback.ps1
.\scripts\windows\rollback.ps1 -Apply
```

Bei defekter Erstinstallation: Dienste stoppen, `uninstall.ps1` zunaechst im
Dry-Run pruefen. Konfiguration/Pairings bleiben ohne `-PurgeData` erhalten.
