{
  "layout": "system",
  "title": "Public Routing and Traefik Flow",
  "nodes": [
    {
      "id": "browser",
      "label": "Public Browser\nDNS + HTTPS",
      "w": 220,
      "h": 84,
      "style": "accent",
      "column": 0,
      "row": 0
    },
    {
      "id": "traefik",
      "label": "Traefik\nIngress + TLS + Host Routing",
      "w": 260,
      "h": 90,
      "style": "accent",
      "column": 1,
      "row": 0
    },
    {
      "id": "docker_routes",
      "label": "Docker Label Routes",
      "w": 220,
      "h": 78,
      "column": 1,
      "row": 1
    },
    {
      "id": "file_routes",
      "label": "Dynamic File Route\nvscode.ovidiutm.com",
      "w": 220,
      "h": 84,
      "style": "secondary",
      "column": 0,
      "row": 1
    },
    {
      "id": "brainstorming",
      "label": "Brainstorming Caddy\nPath Routing",
      "w": 220,
      "h": 84,
      "column": 2,
      "row": 0
    },
    {
      "id": "web_containers",
      "label": "Root + app web containers\novidiutm.com + Spendiq hosts",
      "w": 230,
      "h": 84,
      "column": 2,
      "row": 1
    },
    {
      "id": "code_server",
      "label": "Host Code Server\n172.17.0.1:8080",
      "w": 220,
      "h": 84,
      "style": "secondary",
      "column": 2,
      "row": 2
    },
    {
      "id": "internal_routes",
      "label": "Internal path handling\nstatus-board API, source routes, briefing",
      "w": 230,
      "h": 90,
      "style": "success",
      "column": 2,
      "row": 3
    }
  ],
  "edges": [
    {
      "from": "browser",
      "to": "traefik"
    },
    {
      "from": "traefik",
      "to": "docker_routes",
      "label": "docker",
      "label_offset_x": 46,
      "label_offset_y": -6
    },
    {
      "from": "traefik",
      "to": "file_routes",
      "label": "file",
      "route": "elbow",
      "label_offset_x": -14,
      "label_offset_y": 8
    },
    {
      "from": "docker_routes",
      "to": "brainstorming",
      "label": "brainstorming",
      "route": "elbow",
      "label_offset_x": 8,
      "label_offset_y": -8
    },
    {
      "from": "docker_routes",
      "to": "web_containers"
    },
    {
      "from": "file_routes",
      "to": "code_server"
    },
    {
      "from": "brainstorming",
      "to": "internal_routes"
    }
  ]
}
