YAML ist ein Format für Konfigurationsdateien, etwa für Docker Compose, Kubernetes, GitHub Actions, Ansible oder Home Assistant. Die Struktur ergibt sich allein aus der Einrückung.
Stand: Oktober 2026 · werkzeugkisterl.at/spickzettel/yaml-grundlagen
Für ein PDF im Druckfenster „Als PDF speichern“ wählen.
Grundbausteine
Schreibweise
Bedeutung
name: Wert
Eintrag mit Name und Wert – nach dem Doppelpunkt kommt ein Leerzeichen
server:
Darunter eingerückte Einträge (z. B. „ port: 80“) gehören zu „server“
- eins
Listeneintrag: jeder Eintrag steht in einer eigenen Zeile und beginnt mit „- “
[eins, zwei]
Liste in einer Zeile
{ a: 1, b: 2 }
Einträge in einer Zeile
# Kommentar
Wird ignoriert; braucht davor ein Leerzeichen, wenn er nach einem Wert steht
---
Beginn eines weiteren Dokuments in derselben Datei
Werte und ihre Typen
Beispiel
Wird gelesen als
port: 8080
Zahl
preis: 1.5
Kommazahl (mit Punkt)
aktiv: true / false
Wahr oder falsch
leer: ~ oder leer:
Kein Wert (null)
name: Anna Berger
Text, auch ohne Anführungszeichen
plz: "01010"
Text – Anführungszeichen erzwingen Text
text: 'it''s'
Einfache Anführungszeichen: kein \n, ' wird verdoppelt
text: "Zeile\nZeile"
Doppelte Anführungszeichen: \n, \t und \" funktionieren
Mehrzeiliger Text
Schreibweise
Ergebnis
skript: |
Zeilenumbrüche bleiben erhalten – ideal für Befehle und Skripte
text: >
Zeilen werden zu einem Absatz zusammengefügt, Leerzeilen trennen Absätze
|- oder >-
Ohne Zeilenumbruch am Ende
|+ oder >+
Alle Leerzeilen am Ende bleiben erhalten
Wiederverwenden mit Anker und Verweis
Schreibweise
Bedeutung
basis: &standard
Anker: merkt sich den Wert unter dem Namen „standard“
kopie: *standard
Verweis: setzt denselben Wert noch einmal ein
<<: *standard
Übernimmt alle Einträge des Ankers; eigene Einträge haben Vorrang
Typische Fallen
Geschrieben
Problem
Besser
land: NO
Ältere Programme lesen yes, no, on, off als wahr/falsch
land: "NO"
python: 3.10
Wird zur Zahl 3.1
python: "3.10"
rechte: 0755
Ältere Programme lesen eine Oktalzahl (493)
rechte: "0755"
ports: 22:22
Ältere Programme rechnen in Minuten (1342)
ports: "22:22"
image:nginx
Ohne Leerzeichen kein Eintrag, sondern Text
image: nginx
titel: Achtung: heiß
„: “ mitten im Wert ist nicht erlaubt
titel: "Achtung: heiß"
Tabulator vorne
Zum Einrücken sind nur Leerzeichen erlaubt
Leerzeichen
name doppelt
Meist gilt stillschweigend der letzte Wert
Jeden Namen einmal
YAML und JSON
Merkmal
YAML
JSON
Kommentare
Ja, mit #
Nein
Struktur
Durch Einrückung
Durch Klammern
Anführungszeichen
Meist nicht nötig
Bei Text und Namen immer
Mehrzeiliger Text
Mit | und >
Nur mit \n
Zusammenhang
Jedes JSON ist auch gültiges YAML
–
Gut zu wissen
Rücke immer gleich weit ein, am besten mit 2 Leerzeichen pro Ebene. Viele Editoren zeigen Leerzeichen und Tabulatoren auf Wunsch an.
Versionsnummern, Postleitzahlen, Uhrzeiten, Ports und Ländercodes setzt du am sichersten in Anführungszeichen.
Passwörter und Tokens gehören nicht direkt in die Datei, sondern in Umgebungsvariablen wie ${DB_PASSWORT} oder eine .env-Datei, die nicht ins Git-Repository kommt.
Docker Compose, Kubernetes und GitHub Actions lesen YAML 1.2. Ansible und Home Assistant nutzen Python-Bibliotheken, die teils noch YAML 1.1 lesen – dort sind die Fallen oben besonders wichtig.
Sorgfältig zusammengestellt, aber ohne Gewähr. Mehr dazu in den Nutzungshinweisen. Fehlt etwas oder ist dir ein Fehler aufgefallen? Wir freuen uns über dein Feedback.