| 123456789101112131415161718192021222324252627282930313233 | digraph G {  node [style=filled, shape=box, fillcolor="#ffffcc", fontname="Sans"];  edge [fontname="Sans"];  browser [label="Browser", shape=Mdiamond];  rp      [label="Reverse Proxy", href="https://docs.searxng.org/utils/filtron.sh.html#public-reverse-proxy"];  filtron [label="Filtron",       href="https://docs.searxng.org/utils/filtron.sh.html"];  morty   [label="Morty",         href="https://docs.searxng.org/utils/morty.sh.html"];  static  [label="Static files",  href="url to configure static files"];  uwsgi   [label="uwsgi",         href="https://docs.searxng.org/utils/searx.sh.html"]  searx1  [label="Searx #1"];  searx2  [label="Searx #2"];  searx3  [label="Searx #3"];  searx4  [label="Searx #4"];  browser -> rp [label="HTTPS"]  subgraph cluster_searx {      label = "Searx instance" fontname="Sans";      bgcolor="#fafafa";      { rank=same; static rp };      rp -> morty      [label="optional: images and HTML pages proxy"];      rp -> static     [label="optional: reverse proxy serves directly static files"];      rp -> filtron    [label="HTTP"];      filtron -> uwsgi [label="HTTP"];      uwsgi -> searx1;      uwsgi -> searx2;      uwsgi -> searx3;      uwsgi -> searx4;  }}
 |