diff --git a/README.md b/README.md index 1617cf7..ce85ae9 100644 --- a/README.md +++ b/README.md @@ -5,6 +5,46 @@ Der Ausgang läuft über den **NetBird-Reverse-Proxy** (`imac-prometheus.x05.idx mit **Bearer-Token** — dadurch funktioniert der Installer auch auf Maschinen, die **kein NetBird-Peer** sind (Büro-LAN, Kundenlaptop, CGNAT, VM ohne Client). +## Installation — der sichere Weg + +```sh +# Empfohlen: erst herunterladen, dann ausführen +curl -fsSL /install.sh -o /tmp/netbird-install.sh +sudo sh /tmp/netbird-install.sh --name --token +``` + +**Warum nicht direkt `curl … | sh`?** Bei einer Pipe ist **stdin das Skript +selbst**. Jeder Unterbefehl, der stdin liest, kann es wegräumen — und der +Installer ruft Paketmanager auf (`apt-get`), die genau das tun. Auf Ubuntu +startet dabei `needrestart`: + +``` +Scanning processes... +Scanning linux images... +``` + +Danach setzt die Shell mitten im **Quelltext** fort statt im Skript — sichtbar +an Ausgaben wie `; then`, `fi` oder Kommentarzeilen. Der Lauf bricht ab, die +Node ist halb konfiguriert. **Auf Nodes mit bereits installiertem Telegraf +passiert das nicht**, weil dann kein Paketmanager läuft — dort funktioniert +`curl … | sh` scheinbar problemlos. + +Ab **1.4.0** schützt sich der Installer selbst: erkennt er eine echte Pipe, +lädt er sich frisch von der Quelle, startet sich mit `stdin