Files
deskmeter/docs/architecture/01-system-overview.dot
2026-01-26 15:11:03 -03:00

77 lines
2.4 KiB
Plaintext

digraph SystemOverview {
// Graph settings
rankdir=TB;
compound=true;
fontname="Helvetica";
node [fontname="Helvetica", fontsize=11];
edge [fontname="Helvetica", fontsize=10];
// Title
labelloc="t";
label="Deskmeter - System Architecture";
fontsize=16;
// Styling
node [shape=box, style="rounded,filled"];
// Local Machine
subgraph cluster_local {
label="Local Machine (Bare Metal)";
style=filled;
color="#E8F5E9";
fillcolor="#E8F5E9";
dmcore [label="dmcore\n(Workspace Tracker)", fillcolor="#C8E6C9"];
dmweb_local [label="dmweb\n(Dev Server)", fillcolor="#C8E6C9"];
dmsync [label="dmsync\n(Change Streams)", fillcolor="#DCEDC8"];
mongo_local [label="MongoDB\n(Replica Set)", fillcolor="#FFECB3", shape=cylinder];
}
// OS Integration
subgraph cluster_os {
label="OS Integration";
style=dashed;
color=gray;
wmctrl [label="wmctrl\n(X11 Workspaces)", fillcolor="#E3F2FD"];
gnome_ext [label="GNOME Extension\n(Panel Indicator)", fillcolor="#E3F2FD"];
}
// Remote (AWS)
subgraph cluster_remote {
label="AWS EC2 (mcrn.ar)";
style=filled;
color="#FFF3E0";
fillcolor="#FFF3E0";
subgraph cluster_docker {
label="Docker Compose";
style=dashed;
color="#F57C00";
dmweb_remote [label="dmweb\n(Flask + Gunicorn)", fillcolor="#FFE0B2"];
mongo_remote [label="MongoDB\n(Docker)", fillcolor="#FFECB3", shape=cylinder];
}
nginx [label="Nginx\n(Gateway)", fillcolor="#BBDEFB"];
}
// External
browser [label="Browser\n(Portfolio Viewer)", fillcolor="#F3E5F5"];
// Local connections
wmctrl -> dmcore [label="workspace\ndetection", color="#388E3C"];
dmcore -> mongo_local [label="write\nswitches", color="#FFA000"];
dmweb_local -> mongo_local [label="read", style=dashed, color="#666"];
gnome_ext -> dmweb_local [label="API poll", color="#1976D2", style=dashed];
// Sync connection
mongo_local -> dmsync [label="Change\nStreams", color="#7B1FA2"];
dmsync -> mongo_remote [label="push\nchanges", color="#7B1FA2", style=bold];
// Remote connections
dmweb_remote -> mongo_remote [label="read", style=dashed, color="#666"];
nginx -> dmweb_remote [label="proxy", color="#1976D2"];
browser -> nginx [label="HTTPS", color="#1976D2"];
}