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://searx.github.io/searx/utils/filtron.sh.html#public-reverse-proxy"]; filtron [label="Filtron", href="https://searx.github.io/searx/utils/filtron.sh.html"]; morty [label="Morty", href="https://searx.github.io/searx/utils/morty.sh.html"]; static [label="Static files", href="url to configure static files"]; uwsgi [label="uwsgi", href="https://searx.github.io/searx/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; } }