LikeC4 Topology Source#

Network topology in LikeC4 DSL format. Open with the LikeC4 VS Code extension or likec4 build.

Download topology.c4 | Interactive view

specification {
  element server {
    style {
      shape rectangle
      color green
    }
  }
  element router {
    style {
      shape component
      color amber
    }
  }
  element switch {
    style {
      shape component
      color gray
    }
  }
  element device {
    style {
      shape rectangle
      color secondary
    }
  }
  element internet {
    style {
      shape browser
      color blue
    }
  }
  element network {
    style {
      shape cylinder
      color muted
    }
  }
  element service {
    style {
      shape component
      color primary
    }
  }
}

model {
    OB_US_GJ6GRJK74T = server 'Work Macbook (M4)' {
  }
    ap_back = switch 'Back AP' {
    description 'UniFi UAP-AC-Pro'
  }
    ap_hallway = switch 'Hallway AP' {
    description 'UniFi UAP-AC-Pro'
  }
    bedford_drdillo_mbair = server 'DrDillo Macbook Air' {
  }
    bedford_flex = switch 'Bedford Flex Mini' {
    description 'UniFi USW Flex Mini'
  }
    bedford_kitchen_mini = device 'Kitchen Mac mini' {
    description 'Mac mini — kitchen'
  }
    bedford_office_mini = device 'Office Mac mini' {
    description 'Mac mini — Pop\'s office'
  }
    bedford_u6_house = switch 'U6 House' {
    description 'UniFi U6 access point'
  }
    bedford_u6_office = switch 'U6 Office' {
    description 'UniFi U6 Mesh access point'
  }
    bootable_iso = server 'bootable-iso' {
  }
    comcast = internet 'Internet' {
  }
    d_link = switch 'Office Switch' {
    description 'Dlink'
  }
    dionysius = device 'Dionysius' {
    description 'Windows 10 gaming PC'
  }
    ereshkigal = server 'ereshkigal' {
    alloy = service 'Alloy' {
    }
    grafana = service 'Grafana' {
      link https://grafana.inaba.network/
    }
    homeassistant = service 'Home Assistant (VM)' {
      description 'HAOS VM on ereshkigal (bridged to vmbr0)'
    }
    jellyfin = service 'Jellyfin' {
    }
    kavita = service 'Kavita' {
    }
    lidarr = service 'Lidarr' {
    }
    navidrome = service 'Navidrome' {
    }
    nginx = service 'NGINX' {
    }
    nix_serve = service 'Nix Serve' {
    }
    ollama = service 'Ollama' {
    }
    prowlarr = service 'Prowlarr' {
    }
    radarr = service 'Radarr' {
    }
    sonarr = service 'Sonarr' {
    }
    step_ca = service 'step-ca' {
    }
  }
    express7 = router 'Wolfhead Music' {
    description 'UniFi Express 7 — gateway + Wi-Fi'
  }
    g3flex = device 'G3 Flex' {
    description 'G3 Flex Camera'
  }
    haxo = server 'haxo' {
  }
    internet = internet 'Internet' {
  }
    main_switch = switch 'Main Switch' {
    description 'UniFi Switch Pro 24 PoE'
  }
    mokou = server 'mokou' {
    alloy = service 'Alloy' {
    }
    languagetool = service 'Languagetool' {
    }
    ollama = service 'Ollama' {
    }
  }
    myon = server 'myon' {
  }
    octopi = server 'octopi' {
    alloy = service 'Alloy' {
    }
    barcode_scanner = service 'Kitchen Barcode Scanner' {
      description 'MQTT -> 192.168.0.55:1883'
    }
    document_scanner = service 'Mail Scanner' {
      description 'ScanSnap -> http://ereshkigal:8011'
    }
  }
    officelaserjet = device 'officelaserjet' {
    description 'HP P2015dn LaserJet Printer'
  }
    razer = server 'razer' {
    alloy = service 'Alloy' {
    }
    languagetool = service 'Languagetool' {
    }
  }
    remelia = device 'remelia' {
    description 'Apple TV'
  }
    shinobu = server 'shinobu' {
    alloy = service 'Alloy' {
    }
    languagetool = service 'Languagetool' {
    }
  }
    voile = device 'Voile' {
    description 'Synology DS1621+ NAS'
    borgwarehouse = service 'Borg Warehouse' {
      link https://voile:7777
    }
    gitea = service 'Gitea' {
      link http://voile:8418
    }
    samba = service 'Samba' {
      description 'smb://voile'
    }
  }
    yukari = router 'Yukari' {
    description 'UniFi DreamMachine Pro'
  }
  net_bedford = network 'Wolfhead Music' {
  description '192.168.1.0/24'
}

  net_bedford_guest = network 'Wolfhead Music Guest' {

}

  net_cloudflare = network 'Cloudflare Tunnel Network' {

}

  net_falseblue_guest = network 'Isolated Guest Network' {
  description '192.168.3.0/24'
}

  net_falseblue_iot = network 'Isolated IoT Network' {
  description '192.168.2.0/24'
}

  net_gensokyo = network 'Gensokyo Home Network' {
  description '192.168.0.0/24'
}

  net_meshspace = network 'Lafayette <-> Bedford Mesh' {
  description '192.168.0.0/23'
}

  net_tailscale = network 'Tailscale Network' {
  description '100.0.0.0/8'
}

  net_voile = network '10g backbone' {
  description '10.0.0.0/24'
}


  OB_US_GJ6GRJK74T -> ap_back
  ap_back -> main_switch
  ap_back -> ap_hallway
  ap_hallway -> main_switch
  bedford_drdillo_mbair -> bedford_u6_house
  bedford_flex -> bedford_u6_house
  bedford_flex -> bedford_u6_office
  bedford_kitchen_mini -> bedford_u6_house
  bedford_office_mini -> bedford_u6_office
  comcast -> express7
  d_link -> main_switch
  d_link -> officelaserjet
  d_link -> mokou
  dionysius -> main_switch
  ereshkigal -> main_switch
  ereshkigal -> voile
  bedford_flex -> express7
  g3flex -> main_switch
  ap_back -> haxo
  internet -> yukari
  main_switch -> yukari
  ap_back -> octopi
  razer -> yukari
  main_switch -> remelia
  main_switch -> voile

  OB_US_GJ6GRJK74T -> net_tailscale 'tailscale0'
  OB_US_GJ6GRJK74T -> net_gensokyo 'wifi'
  ap_back -> net_gensokyo 'port-1'
  ap_back -> net_gensokyo 'wifi'
  ap_hallway -> net_gensokyo 'port-1'
  ap_hallway -> net_gensokyo 'wifi'
  bedford_drdillo_mbair -> net_tailscale 'tailscale0'
  bedford_drdillo_mbair -> net_bedford 'wifi'
  bedford_flex -> net_bedford 'port-1'
  bedford_flex -> net_bedford 'port-2'
  bedford_flex -> net_bedford 'port-3'
  bedford_flex -> net_bedford 'port-4'
  bedford_flex -> net_bedford 'port-5'
  bedford_kitchen_mini -> net_bedford 'wifi'
  bedford_office_mini -> net_bedford 'wifi'
  bedford_u6_house -> net_bedford 'port-1'
  bedford_u6_house -> net_bedford 'wifi'
  bedford_u6_office -> net_bedford 'port-1'
  bedford_u6_office -> net_bedford 'wifi'
  d_link -> net_gensokyo 'port-1'
  d_link -> net_gensokyo 'port-2'
  d_link -> net_gensokyo 'port-3'
  d_link -> net_gensokyo 'port-4'
  dionysius -> net_gensokyo 'eth0'
  ereshkigal -> net_gensokyo 'idrac'
  ereshkigal -> net_tailscale 'tailscale0'
  ereshkigal -> net_gensokyo 'vmbr0'
  ereshkigal -> net_voile 'vmbr1'
  express7 -> net_bedford 'lan-1'
  express7 -> net_bedford 'lan-2'
  express7 -> net_meshspace 'mesh0'
  express7 -> net_bedford 'wifi'
  g3flex -> net_gensokyo 'eth0'
  haxo -> net_tailscale 'tailscale0'
  haxo -> net_gensokyo 'wifi'
  main_switch -> net_gensokyo 'port-1'
  main_switch -> net_gensokyo 'port-13'
  main_switch -> net_gensokyo 'port-15'
  main_switch -> net_gensokyo 'port-16'
  main_switch -> net_gensokyo 'port-2'
  main_switch -> net_gensokyo 'port-21'
  main_switch -> net_gensokyo 'port-22'
  main_switch -> net_gensokyo 'port-3'
  main_switch -> net_gensokyo 'port-4'
  main_switch -> net_gensokyo 'port-5'
  main_switch -> net_gensokyo 'port-7'
  mokou -> net_gensokyo 'eth0'
  mokou -> net_tailscale 'tailscale0'
  myon -> net_tailscale 'tailscale0'
  octopi -> net_tailscale 'tailscale0'
  octopi -> net_gensokyo 'wifi'
  officelaserjet -> net_gensokyo 'eth0'
  razer -> net_gensokyo 'eth0'
  razer -> net_tailscale 'tailscale0'
  remelia -> net_gensokyo 'eth0'
  shinobu -> net_tailscale 'tailscale0'
  voile -> net_cloudflare 'cloudflared0'
  voile -> net_gensokyo 'ovs_bond0'
  voile -> net_voile 'ovs_bond1'
  voile -> net_tailscale 'tailscale0'
  yukari -> net_meshspace 'mesh0'
  yukari -> net_gensokyo 'port-1'
  yukari -> net_gensokyo 'port-7'
}

views {
  view index {
    title 'Network Topology'
    include *
  }

  view networks {
    title 'Networks'
    include element.kind = network,
            element.kind = server,
            element.kind = router,
            element.kind = switch,
            element.kind = device,
            element.kind = internet
  }
}