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 {
    MacBook_Pro_0432 = server 'Work Macbook' {
  }
    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' {
  }
    bootable_iso = server 'bootable-iso' {
  }
    d_link = switch 'Office Switch' {
    description 'Dlink'
  }
    dionysius = device 'Dionysius' {
    description 'Windows 10 gaming PC'
  }
    ereshkigal = server 'ereshkigal' {
    esphome = service 'ESPHome' {
      link http://ereshkigal:6052
    }
    jellyfin = service 'Jellyfin' {
    }
    lidarr = service 'Lidarr' {
    }
    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' {
    }
  }
    g3flex = device 'G3 Flex' {
    description 'G3 Flex Camera'
  }
    home_assistant_green = device 'Home Assistant' {
    description 'Home Assistant Green'
    home_assistant = service 'Home Assistant' {
      link http://192.168.0.55:8123
    }
  }
    internet = internet 'Internet' {
  }
    main_switch = switch 'Main Switch' {
    description 'UniFi Switch Pro 24 PoE'
  }
    mokou = server 'mokou' {
    languagetool = service 'Languagetool' {
    }
    ollama = service 'Ollama' {
    }
  }
    octopi = server 'octopi' {
  }
    officelaserjet = device 'officelaserjet' {
    description 'HP P2015dn LaserJet Printer'
  }
    razer = server 'razer' {
    languagetool = service 'Languagetool' {
    }
  }
    remelia = device 'remelia' {
    description 'Apple TV'
  }
    shinobu = server 'shinobu' {
    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 'Bedford Network' {
  description '192.168.1.0/24'
}

  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_tailscale = network 'Tailscale Network' {
  description '100.0.0.0/8'
}

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


  MacBook_Pro_0432 -> ap_back
  ap_back -> main_switch
  ap_back -> ap_hallway
  ap_hallway -> main_switch
  d_link -> main_switch
  d_link -> officelaserjet
  d_link -> mokou
  dionysius -> main_switch
  ereshkigal -> main_switch
  ereshkigal -> voile
  g3flex -> main_switch
  home_assistant_green -> yukari
  internet -> yukari
  main_switch -> yukari
  ap_back -> octopi
  razer -> yukari
  main_switch -> remelia
  main_switch -> voile

  MacBook_Pro_0432 -> net_tailscale 'tailscale0'
  MacBook_Pro_0432 -> 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'
  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'
  g3flex -> net_gensokyo 'eth0'
  home_assistant_green -> net_gensokyo 'end0'
  home_assistant_green -> net_falseblue_iot 'end0.3'
  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'
  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_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
  }
}