Alle ausführbaren Werkzeuge und zugehörigen Dateien an einem Ort: Parameter wählen, Befehl kopieren, Terminal öffnen und jeden Quelltext direkt prüfen.
Skripte & Dateien
Die ausführbaren Werkzeuge liegen in scripts/ und laufen mit Windows
PowerShell 5.1; RemoteSigned reicht für die lokale Nutzung. Die Beispiele
gehen vom Repo-Wurzelverzeichnis aus. Jeder Eintrag nennt Zweck, Wirkung und einen kopierbaren
Beispielaufruf. Nachbardateien werden über $PSScriptRoot gefunden. Die Inhalte
aller .ps1-, .sh- und .yaml-Dateien sind beim jeweiligen
Eintrag standardmäßig geschlossen und lassen sich zum Lesen aufklappen.
Anbieter
Risiko
Dateityp
Thema
Bedienung
Alle Filter lassen sich miteinander kombinieren. Die Risikofilter berücksichtigen den gesamten Funktionsumfang eines Skripts.
Terminal-Startverzeichnis
Standard: Ordner dieser skripte.html
Terminal-Link einmalig einrichten
Browser dürfen lokale Programme nicht direkt starten.
Dieser Befehl registriert deshalb den eingeschränkten
cloudhost-terminal:-Link nur für deinen Windows-Benutzer; beim ersten Öffnen
kann der Browser noch nachfragen. Klicke auf Einrichtung kopieren, drücke
Win+R, füge den Befehl ein und bestätige mit Enter.
.\scripts\register-terminal-links.ps1
Server & Plattformen
scripts/cloud.ps1PowerShell
Zweck: Verwaltet einen einzelnen Hetzner-Podman-Host mit up, down, toggle, status und ssh.
Wirkung:up baut den Server aus dem neuesten Snapshot oder erstmals per Cloud-init auf und setzt die Podman-Verbindung. down erstellt einen Snapshot und löscht danach den kostenpflichtigen Server.
.\scripts\cloud.ps1 status
scripts/k3s.ps1PowerShell
Zweck: An/Aus-Workflow für den einzelnen Kubernetes-Server k3s-host.
Wirkung: Beim Hochfahren werden Kubeconfig und KUBECONFIG auf dem Laptop aktualisiert; beim Herunterfahren wird k3s sauber gestoppt, gesichert und der Server gelöscht.
.\scripts\k3s.ps1 status
scripts/sno.ps1PowerShell + WSL2
Zweck: Installiert und verwaltet ein vollständiges OKD/OpenShift als Single-Node-Cluster auf Hetzner.
Wirkung:install durchläuft Rescue, SCOS-kexec und bootstrap-in-place. down sichert den Node als Snapshot; destroy entfernt Server, Snapshot, reservierte IP und Firewall.
.\scripts\sno.ps1 status
scripts/jenkins.ps1PowerShell
Zweck: Betreibt den Jenkins-Server für CI-Deployments auf den OKD-Single-Node.
Wirkung:install baut das Image aus shared/enterprise-infrastructure/jenkins/; up/down verwenden Snapshots und pflegen die OKD-Firewallregel für Port 6443.
Passwort: Ohne -AdminPassword erzeugt das Skript selbst ein Passwort. Bei manueller Eingabe erscheint es im erzeugten und kopierten Befehl im Klartext.
.\scripts\jenkins.ps1 status
scripts/cluster.ps1PowerShell
Zweck: Status und Kostenkontrolle für den mehrteiligen OKD-Cluster.
Achtung:down ist ein Kill-Switch und löscht alle okd-*-Server, den Load Balancer und das private Netz in einem Durchlauf.
.\scripts\cluster.ps1 status
scripts/snapshot.ps1PowerShell
Zweck: Sichert und restauriert mehrere konfigurierte Hetzner-Server; mit -Only auch gezielt einen einzelnen.
Wirkung: Zeigt Laufzeitkosten und Snapshot-Inventar, stoppt Dienste vor dem Snapshot, kann reservierte IPs wieder anhängen und mit prune -Keep N alte Sicherungen entfernen.
.\scripts\snapshot.ps1 status
scripts/netcup-server.ps1PowerShell + Netcup REST
Zweck: Meldet den Laptop per OAuth-Gerätecode am Netcup-SCP an und verwaltet einen bereits gebuchten VPS oder Root-Server.
Wirkung: Bietet Liste, Status, Start, Stop, Umschalten und SSH. Das Token wird mit Windows-DPAPI geschützt. Ausschalten beendet den Vertrag und seine Kosten nicht.
Zweck: Verwaltet Netcup-Snapshots für normale Server, k3s und OKD-SNO.
Wirkung: Erstellt standardmäßig einen Offline-Snapshot und startet einen zuvor laufenden Server danach wieder. Wiederherstellung und Löschen verlangen eine ausdrückliche Freigabe.
.\scripts\netcup-snapshot.ps1 list -Profile Server
scripts/netcup-sno.ps1PowerShell + WSL2
Zweck: Bereitet die OKD-Single-Node-Installation für einen bestehenden Netcup-x86-Server vor und betreibt sie danach.
Wirkung: Erzeugt die geheime Ignition-ISO, legt eine hochgeladene ISO per API ein, überwacht die Installation, setzt die kubeconfig und steuert den Node.
.\scripts\netcup-sno.ps1 status
scripts/netcup-sno-wsl.shBash + WSL2
Zweck: Linux-Teil der Netcup-SNO-Installation.
Wirkung: Lädt Installer und Client, erzeugt Single-Node-Ignition, bettet sie in eine Fedora-CoreOS-ISO ein und überwacht die Installation.
scripts/rates.psd1PowerShell-Datendatei
Zweck: Enthält die Stundensätze der Hetzner-Skripte. Netcup verwendet stattdessen den in der lokalen Konfiguration dokumentierten monatlichen Vertragspreis.
Dienste, DNS & Deployment
scripts/dienste-stack.ps1PowerShell + SSH
Zweck: Steuert alle Compose-Stacks unter /opt/stacks auf dem konsolidierten Server.
Wirkung: Erkennt Stacks automatisch, startet Traefik und gemeinsame Datenbanken zuerst und fährt sie umgekehrt herunter. Unterstützt Status, Start, Stop, Neustart, Pull und Logs sowie -Only.
.\scripts\dienste-stack.ps1 status
scripts/cf-dns.ps1PowerShell + Cloudflare
Zweck: Erstellt, aktualisiert oder löscht Cloudflare-A-Records, wenn ein neu aufgebauter Server eine andere IPv4 erhält.
Wirkung: Nutzt $env:CF_API_TOKEN, akzeptiert eine IP direkt oder liest sie bei Hetzner per hcloud und bei Netcup per SCP-REST-API aus. -DryRun zeigt die geplante Änderung ohne Schreibzugriff.
Zweck: Überträgt eine statische Website oder einen Compose-Stack auf den geschützten Projekt-Host.
Wirkung: Nutzt bevorzugt rsync, sonst tar über SSH. -Stack startet anschließend Compose; -Delete entfernt mit rsync veraltete Zieldateien und -Logs folgt den Container-Logs.
.\scripts\deploy.ps1 blog -Source .\dist -DryRun
Windows-Automation
scripts/create-shortcuts.ps1PowerShell
Zweck: Legt Windows-Verknüpfungen für up, down und status einer oder aller Plattformen an.
Wirkung:-For wählt eine Hetzner- oder Netcup-Plattform, darunter netcup, netcup-k3s und netcup-sno. -ForAll verarbeitet alle.
Zweck: Installiert ein tägliches down als Windows-Aufgabe.
Wirkung: Ruft zur mit -Time gewählten Uhrzeit das passende Skript auf. Bei Hetzner dient das als Kostenschutz. Bei Netcup ist es nur eine Betriebspause, weil der Vertrag weiterläuft.
Zweck: Aktiviert die drei Terminal-Schaltflächen oberhalb dieser Liste.
Wirkung: Registriert cloudhost-terminal: nur für den aktuellen Benutzer und verweist auf den fest eingeschränkten Handler. Mit -Unregister lässt sich die Registrierung wieder entfernen.
.\scripts\register-terminal-links.ps1
scripts/open-terminal-link.ps1interner Handler
Zweck: Startet Windows Terminal, PowerShell oder Bash im Wurzelverzeichnis dieses Repositories.
Sicherheit: Der Handler akzeptiert drei fest codierte Terminalziele, eine Whitelist lesender Skriptaktionen und ein vorhandenes Dateisystem-Verzeichnis; URL-Inhalte werden nie direkt als Befehl ausgeführt. Bash verwendet Git Bash, ersatzweise WSL.
Parameter:-Url ist ein Pflichtparameter an Position 0 und enthält ausschließlich den registrierten cloudhost-terminal:-Link. Nicht manuell aufrufen; der Browser übergibt ihn an den Handler.
scripts\open-terminal-link.ps1
Suche, Hooks & gemeinsame Bausteine
scripts/build-suchindex.ps1PowerShell
Zweck: Erzeugt aus allen anleitungen/*.html den Volltextindex suchindex.js.
Wann ausführen: Nach Inhaltsänderungen an Anleitungen, damit die Suche oben nicht nur Kartentexte, sondern auch den eigentlichen Seiteninhalt findet.
Parameter: keine; Quellordner und Zieldatei werden relativ zum Skript ermittelt.
.\scripts\build-suchindex.ps1
scripts/install-hooks.ps1PowerShell + Git
Zweck: Aktiviert einmalig pro Klon den lokalen pre-commit-Hook.
Wirkung: Setzt core.hooksPath auf .githooks; vor dem Commit werden bei geänderten Anleitungen suchindex.js und bei geänderten Skript-/YAML-Dateien script-inhalte.js neu gebaut und mit aufgenommen.
Parameter: keine; das Repository wird aus dem Speicherort des Skripts bestimmt.
.\scripts\install-hooks.ps1
scripts/_common.ps1Bibliothek
Zweck: Gemeinsame Hetzner-, Firewall-, SSH-, Snapshot- und Kostenfunktionen der An/Aus-Skripte.
Nutzung: Wird von den Hauptskripten per Dot-Sourcing geladen und normalerweise nicht direkt gestartet.
Skriptparameter: keine; einzelne interne Funktionen besitzen eigene Funktionsparameter.
scripts\_common.ps1
scripts/_dauer.ps1Bibliothek
Zweck: Misst die Laufzeit und gibt am Ende eines Skripts Ausfuehrungszeit: X s aus.
Nutzung: Wird von den anderen PowerShell-Dateien eingebunden und nicht eigenständig aufgerufen.
Skriptparameter: keine.
scripts\_dauer.ps1
scripts/rates.psd1Konfiguration
Zweck: Zentrale Preistabelle für die ungefähre Stunden- und Monatskostenanzeige der Verwaltungsskripte.
Hinweis: Die Werte sind lokale Rechengrundlagen und sollten bei Preisänderungen des Anbieters aktualisiert werden.
scripts\rates.psd1
suchindex.jsgeneriert
Zweck: Enthält den von build-suchindex.ps1 erzeugten Volltext aller Anleitungen für die Suche in index.html.
Hinweis: Nicht manuell bearbeiten. Fehlt die Datei, sucht die Seite weiterhin, aber nur innerhalb der sichtbaren Karten.
suchindex.js
scripts/build-script-inhalte.ps1PowerShell
Zweck: Erzeugt script-inhalte.js mit den Quelltexten aller scripts/*.ps1, *.sh und *.yaml für die aufklappbare Anzeige.
Parameter: keine; Quellordner und Zieldatei werden relativ zum Skript ermittelt.
Zweck: Baut die Browserindizes, stellt nur die veröffentlichten Website-Dateien in einem temporären Verzeichnis bereit und deployt sie nach Cloudflare Pages.
Sicherheit: Ohne -Preview wird der Production-Branch aktualisiert; Tests rufen dieses Skript deshalb niemals selbst auf.
.\scripts\deploy-pages.ps1 -Preview test
script-inhalte.jsgeneriert
Zweck: Liefert die eingebetteten Quelltexte für die aufklappbaren Leser in diesem Bereich.
Hinweis: Nicht manuell bearbeiten; nach Änderungen an PowerShell-, Bash- oder YAML-Dateien neu erzeugen.
script-inhalte.js
Cloud-init & Installationshelfer
scripts/cloud-init.yamlCloud-init
Zweck: Standard-Erstinstallation eines Ubuntu-Servers als Podman-Host.
Wirkung: Wird von cloud.ps1 nur beim allerersten up verwendet, solange noch kein Snapshot existiert.
Zweck: Fertige Erstinstallationen für Docker, einen k3s-Node oder den geschützten Projekt-Host.
Nutzung: Die gewählte Datei wird mit -CloudInit übergeben; eigene Varianten folgen dem Namen cloud-init.<name>.yaml.
.\scripts\cloud.ps1 up -CloudInit cloud-init.docker.yaml
scripts/sno-wsl.sh / sno-kexec.shBash-Helfer
Zweck: Technische Teilschritte von sno.ps1 install.
Wirkung:sno-wsl.sh erzeugt in WSL2 Installationsdateien und wartet auf OKD; sno-kexec.sh startet im Hetzner-Rescue das SCOS-Live-System mit eingebetteter Ignition.
Parameter von sno-wsl.sh: Position 1 ist der Befehl tools, latest, stream, ignition, wait, finish, kubeadmin-password oder remediate. tools erwartet danach die OKD-Version, ignition Clustername und Node-IP, finish den Windows-Zielpfad der Kubeconfig; die anderen Befehle haben keine weiteren Positionsparameter.
Eingaben für sno-kexec.sh: Pflicht sind die Umgebungsvariablen KERNEL_URL, INITRD_URL und ROOTFS_URL; IGN ist optional und verwendet standardmäßig /root/sno.ign. Keine Positionsparameter.
scripts\sno-wsl.sh | scripts\sno-kexec.sh
scripts/jenkins-setup.shBash-Helfer
Zweck: Richtet bei jenkins.ps1 install den frischen Jenkins-Server ein.
Wirkung: Installiert Podman, konfiguriert Registries, baut das Jenkins-Image, startet den Container und richtet den Neustartdienst ein. Danach liegt der Zustand im Snapshot.
Eingaben:ADMIN_PASSWORD ist als Umgebungsvariable Pflicht; ADMIN_USER ist optional und hat die Vorgabe admin. Keine Positionsparameter.
scripts\jenkins-setup.sh
scripts/cloud-init.selfdestruct.yamlCloud-init
Zweck: Podman-Erstinstallation mit automatischer Selbstlöschung nach zwölf Stunden.
Achtung: Der Server löscht sich per Hetzner-API selbst. Nur mit einem separaten, eng berechtigten API-Token und Projekt verwenden.
.\scripts\cloud.ps1 up -CloudInit cloud-init.selfdestruct.yaml
README.md / README.htmlDokumentation
Zweck: Kurze Einstiegsübersicht zu Voraussetzungen, Installation und täglichem Gebrauch.
Enthält: Benötigte Winget-Pakete, Hetzner-Kontext, SSH-Schlüssel und die wichtigsten Aufrufe.
README.html
Gemeinsames Prinzip: Der Laptop ist nur Client (hcloud +
podman/docker/kubectl/oc). Nach außen ist nur
SSH (Port 22) offen, gesperrt auf deine eigene IP. Die Container-/Cluster-Schnittstelle
läuft durch einen SSH-Tunnel bzw. hinter einem Load Balancer. Hetzner rechnet stundenweise ab –
poweroff spart nichts, nur löschen.