Files
nova/docs/graphs/deployment.dot
2026-04-12 07:19:48 -03:00

83 lines
3.0 KiB
Plaintext

digraph deployment {
rankdir=TB
bgcolor="#0a0e17"
fontname="Helvetica"
node [fontname="Helvetica" fontsize=10 style=filled color="#1e2a4a" fontcolor="#e8eaf0"]
edge [fontname="Helvetica" fontsize=9 fontcolor="#8892a8" color="#4a5568"]
label="Deployment — Kind Cluster (dev) / EC2 (prod)"
labelloc=t
fontsize=14
fontcolor="#0066ff"
user [label="Browser\nlocalhost:8040" fillcolor="#243056" shape=box]
subgraph cluster_kind {
label="Kind Cluster: unt (namespace: unt)"
color="#0066ff"
fontcolor="#0066ff"
style=rounded
subgraph cluster_frontend_pod {
label="Pod: ui"
color="#1e2a4a"
fontcolor="#4a5568"
ui [label="nginx\n:80\n\nVue SPA\nProxy → api:8000" fillcolor="#121829" shape=box]
ui_svc [label="Service: ui\nNodePort 30040" fillcolor="#0d1a33" shape=diamond fontsize=9]
}
subgraph cluster_api_pod {
label="Pod: api"
color="#1e2a4a"
fontcolor="#4a5568"
api [label="uvicorn\n:8000\n\nFastAPI\nMCP clients (stdio)\nLangGraph agents" fillcolor="#121829" shape=box]
api_svc [label="Service: api\nClusterIP" fillcolor="#0d1a33" shape=diamond fontsize=9]
}
subgraph cluster_langfuse_pod {
label="Pod: langfuse"
color="#1e2a4a"
fontcolor="#4a5568"
langfuse [label="Langfuse\n:3000\n\nTrace viewer" fillcolor="#121829" shape=box]
langfuse_svc [label="Service: langfuse\nNodePort 30030" fillcolor="#0d1a33" shape=diamond fontsize=9]
}
subgraph cluster_pg_pod {
label="Pod: postgres"
color="#1e2a4a"
fontcolor="#4a5568"
pg [label="PostgreSQL\n:5432\n\nLangfuse data" fillcolor="#121829" shape=cylinder]
pg_svc [label="Service: postgres\nClusterIP" fillcolor="#0d1a33" shape=diamond fontsize=9]
}
}
subgraph cluster_external {
label="External APIs"
color="#00c853"
fontcolor="#00c853"
style=dashed
ext_weather [label="OpenMeteo" fillcolor="#0d2a0d" shape=octagon fontcolor="#00c853"]
ext_faa [label="FAA" fillcolor="#0d2a0d" shape=octagon fontcolor="#00c853"]
ext_bedrock [label="AWS Bedrock" fillcolor="#243056" shape=octagon]
ext_kong [label="Kong Konnect\n(optional)" fillcolor="#243056" shape=octagon style="filled,dashed"]
}
// Port mappings
user -> ui_svc [label="host:8040 → 30040" color="#0066ff"]
ui_svc -> ui
ui -> api_svc [label="proxy"]
api_svc -> api
api -> ext_weather [label="HTTP" color="#00c853"]
api -> ext_faa [label="HTTP" color="#00c853"]
api -> ext_bedrock [label="Converse API" style=dashed]
api -> langfuse_svc [label="traces" style=dotted]
langfuse_svc -> langfuse
langfuse -> pg_svc
pg_svc -> pg
user -> ext_kong [style=dashed label="(optional)" color="#4a5568"]
ext_kong -> ui_svc [style=dashed color="#4a5568"]
}