digraph Deployment { // Graph settings rankdir=TB; compound=true; fontname="Helvetica"; node [fontname="Helvetica", fontsize=11]; edge [fontname="Helvetica", fontsize=10]; // Title labelloc="t"; label="Deskmeter - Deployment Architecture"; fontsize=16; // Styling node [shape=box, style="rounded,filled"]; // Development subgraph cluster_dev { label="Development (Local)"; style=filled; color="#E3F2FD"; fillcolor="#E3F2FD"; source [label="Source Code\n(/home/mariano/wdir/dm)", fillcolor="#BBDEFB"]; docker_build [label="docker build", fillcolor="#BBDEFB", shape=parallelogram]; } // Registry subgraph cluster_registry { label="Private Registry"; style=filled; color="#F3E5F5"; fillcolor="#F3E5F5"; registry [label="registry.mcrn.ar:5000\n(Docker Registry)", fillcolor="#E1BEE7", shape=cylinder]; } // AWS EC2 subgraph cluster_aws { label="AWS EC2 (mcrn.ar)"; style=filled; color="#FFF3E0"; fillcolor="#FFF3E0"; // Gateway Network subgraph cluster_gateway { label="gateway network"; style=dashed; color="#F57C00"; nginx [label="Nginx\n(SSL termination)", fillcolor="#FFE0B2"]; dmweb_container [label="dmweb:latest\n(port 10000)", fillcolor="#FFE0B2"]; } // Internal Network subgraph cluster_internal { label="internal network"; style=dashed; color="#388E3C"; mongo_container [label="mongo:7\n(port 27017)", fillcolor="#C8E6C9", shape=cylinder]; mongo_volume [label="mongo-data\n(volume)", fillcolor="#DCEDC8", shape=folder]; } } // DNS dns [label="deskmeter.mcrn.ar\n(DNS)", fillcolor="#FFCDD2", shape=diamond]; // Internet internet [label="Internet\n(Portfolio Visitors)", fillcolor="#F5F5F5"]; // Flow source -> docker_build [label="Dockerfile"]; docker_build -> registry [label="docker push", color="#7B1FA2"]; registry -> dmweb_container [label="docker pull", color="#7B1FA2"]; dmweb_container -> mongo_container [label="MONGODB_HOST=mongo", color="#388E3C"]; mongo_container -> mongo_volume [label="persist", style=dashed]; internet -> dns [color="#1976D2"]; dns -> nginx [label="HTTPS", color="#1976D2"]; nginx -> dmweb_container [label="proxy_pass", color="#F57C00"]; }