digraph immo1 {
  rankdir=TB;
  graph [fontsize=10 fontname="Helvetica"];
  node [shape=box style="rounded,filled" fillcolor="#f8fafc" color="#64748b" fontname="Helvetica"];
  edge [color="#94a3b8"];
  users [label="Benutzer / Geräte\nMieter | Mitarbeiter | Scanner | Smartphone", fillcolor="#dbeafe"];
  "ct-107" [label="ct-107\nki-worker\nrole=ingress-processing\nip=192.168.1.130/24"];
  "ct-108" [label="ct-108\niam\nrole=iam\nip=192.168.1.108/24"];
  "ct-109" [label="ct-109\nweb-ingress\nrole=web-ingress\nip=192.168.1.109/24"];
  "ct-110" [label="ct-110\nvaultwarden\nrole=vaultwarden\nip=192.168.1.110/24"];
  "ct-120" [label="ct-120\nvpn-primary\nrole=vpn\nip=192.168.1.50/24"];
  "ct-130" [label="ct-130\nops-agent\nrole=ops-agent\nip=192.168.1.130/24"];
  "ct-140" [label="ct-140\npaperless-ng\nrole=document-storage\nip=192.168.1.130/24"];
  "ct-150" [label="ct-150\ngitea\nrole=devops-git\nip=192.168.1.150/24"];
  "ct-153" [label="ct-153\ndns-pihole\nrole=dns\nip=192.168.1.53/24"];
  "ct-160" [label="ct-160\nphotoprism\nrole=media-storage\nip=192.168.1.160/24"];
  "ct-161" [label="ct-161\ningress\nrole=ingress-router\nip=192.168.1.161/24"];
  "vm-900" [label="vm-900\nki-zentrale\nrole=ki-control-plane"];
  "users" -> "ct-109";
  "ct-109" -> "ct-108";
  "ct-109" -> "ct-107";
  "vm-900" -> "ct-107";
  "ct-107" -> "ct-161";
  "ct-161" -> "ct-140";
  "ct-161" -> "ct-160";
  "ct-161" -> "ct-130";
}