{"nodes":[{"id":"org","label":"Mercurius Labs","type":"org","meta":{}},{"id":"srv-ubuntu","label":"Ubuntu Production Node (this machine)","type":"server","meta":{"os":"Ubuntu 26.04 LTS","role":"New primary production host (migration target)"}},{"id":"srv-windows","label":"Windows Server (RETIRED 2026-08-17)","type":"server","meta":{"os":"Windows Server 2025 (NT 10.0.26100)","role":"Former production host — migration source, retired"}},{"id":"sabai-command-centre","label":"Sabai Command Centre","type":"app","meta":{"stack":"Python (FastAPI/uvicorn) + Node/Next.js + tsx","ubuntu_path":"apps/sabai-command-centre"}},{"id":"svc-sabai-server","label":"sabai-server","type":"service","meta":{"port":null,"kind":"python","status":"online","migrate":true}},{"id":"svc-sabai-pulse-api","label":"sabai-pulse-api","type":"service","meta":{"port":5050,"kind":"python/uvicorn","status":"online","migrate":true}},{"id":"port-5050","label":"port 5050","type":"port","meta":{}},{"id":"svc-sabai-sales-bot","label":"sabai-sales-bot","type":"service","meta":{"port":null,"kind":"python","status":"online","migrate":true}},{"id":"svc-sabai-reservations","label":"sabai-reservations","type":"service","meta":{"port":null,"kind":"node/tsx","status":"online","migrate":true}},{"id":"svc-sabai-accountant-form","label":"sabai-accountant-form","type":"service","meta":{"port":3025,"kind":"node","status":"online","migrate":true}},{"id":"port-3025","label":"port 3025","type":"port","meta":{}},{"id":"svc-sabai-unified","label":"sabai-unified","type":"service","meta":{"port":3010,"kind":"next.js standalone","status":"online","migrate":true}},{"id":"port-3010","label":"port 3010","type":"port","meta":{}},{"id":"svc-sabai-sidework-cron","label":"sabai-sidework-cron","type":"service","meta":{"port":null,"kind":"node cron","status":"stopped (2884 restarts)","migrate":false}},{"id":"svc-sabai-broadcast-cron","label":"sabai-broadcast-cron","type":"service","meta":{"port":null,"kind":"node cron","status":"stopped (3037 restarts)","migrate":false}},{"id":"svc-sabai-fridge-cron","label":"sabai-fridge-cron","type":"service","meta":{"port":null,"kind":"node cron","status":"stopped (8284 restarts)","migrate":false}},{"id":"ariadne-notes","label":"Ariadne Notes App","type":"app","meta":{"stack":"Node.js (MCP + cluster)","ubuntu_path":"apps/ariadne-notes"}},{"id":"svc-ariadne-mcp","label":"ariadne-mcp","type":"service","meta":{"port":3200,"kind":"node/mcp","status":"online","migrate":true}},{"id":"port-3200","label":"port 3200","type":"port","meta":{}},{"id":"svc-ariande-capture-bot","label":"ariande-capture-bot","type":"service","meta":{"port":null,"kind":"node","status":"online","migrate":true}},{"id":"mach","label":"Mach Dashboard","type":"app","meta":{"stack":"Next.js 16","ubuntu_path":"apps/mach"}},{"id":"svc-mach-dashboard","label":"mach-dashboard","type":"service","meta":{"port":7000,"kind":"next.js","status":"online","migrate":true}},{"id":"port-7000","label":"port 7000","type":"port","meta":{}},{"id":"mercurius-podcast","label":"Mercurius Podcast / AI Briefing","type":"app","meta":{"stack":"Python + Next.js 15","ubuntu_path":"apps/mercurius-podcast"}},{"id":"svc-mercurius-ai-briefing","label":"mercurius-ai-briefing","type":"service","meta":{"port":null,"kind":"python","status":"online","migrate":true}},{"id":"svc-mcast-api","label":"mcast-api","type":"service","meta":{"port":null,"kind":"python","status":"online","migrate":true}},{"id":"svc-mcast-web","label":"mcast-web","type":"service","meta":{"port":3120,"kind":"next.js","status":"online","migrate":true}},{"id":"port-3120","label":"port 3120","type":"port","meta":{}},{"id":"midas","label":"Midas","type":"app","meta":{"stack":"Node.js/TypeScript (tsx monorepo)","ubuntu_path":"apps/midas"}},{"id":"svc-midas-api","label":"midas-api","type":"service","meta":{"port":null,"kind":"node/tsx","status":"online","migrate":true}},{"id":"svc-midas-gateway","label":"midas-gateway","type":"service","meta":{"port":null,"kind":"node/tsx","status":"online","migrate":true}},{"id":"sabai-pulse-nyc","label":"Sabai Pulse NYC","type":"app","meta":{"stack":"Next.js + Python + cloudflared","ubuntu_path":"apps/sabai-pulse-nyc"}},{"id":"svc-pulse-nyc-portal","label":"pulse-nyc-portal","type":"service","meta":{"port":8310,"kind":"next.js standalone","status":"online","migrate":true}},{"id":"port-8310","label":"port 8310","type":"port","meta":{}},{"id":"svc-pulse-nyc-server","label":"pulse-nyc-server","type":"service","meta":{"port":8320,"kind":"python","status":"online","migrate":true}},{"id":"port-8320","label":"port 8320","type":"port","meta":{}},{"id":"svc-pulse-nyc-tunnel","label":"pulse-nyc-tunnel","type":"service","meta":{"port":null,"kind":"cloudflared","status":"online","migrate":true}},{"id":"svc-pulse-nyc-dash-tunnel","label":"pulse-nyc-dash-tunnel","type":"service","meta":{"port":null,"kind":"cloudflared","status":"online","migrate":true}},{"id":"svc-pm2-logrotate","label":"pm2-logrotate","type":"platform","meta":{}}],"links":[{"source":"org","target":"srv-ubuntu","rel":"operates"},{"source":"org","target":"srv-windows","rel":"operates"},{"source":"org","target":"sabai-command-centre","rel":"owns"},{"source":"srv-windows","target":"sabai-command-centre","rel":"hosts-now"},{"source":"srv-ubuntu","target":"sabai-command-centre","rel":"migration-target"},{"source":"sabai-command-centre","target":"svc-sabai-server","rel":"runs"},{"source":"sabai-command-centre","target":"svc-sabai-pulse-api","rel":"runs"},{"source":"svc-sabai-pulse-api","target":"port-5050","rel":"listens-on"},{"source":"sabai-command-centre","target":"svc-sabai-sales-bot","rel":"runs"},{"source":"sabai-command-centre","target":"svc-sabai-reservations","rel":"runs"},{"source":"sabai-command-centre","target":"svc-sabai-accountant-form","rel":"runs"},{"source":"svc-sabai-accountant-form","target":"port-3025","rel":"listens-on"},{"source":"sabai-command-centre","target":"svc-sabai-unified","rel":"runs"},{"source":"svc-sabai-unified","target":"port-3010","rel":"listens-on"},{"source":"sabai-command-centre","target":"svc-sabai-sidework-cron","rel":"runs"},{"source":"sabai-command-centre","target":"svc-sabai-broadcast-cron","rel":"runs"},{"source":"sabai-command-centre","target":"svc-sabai-fridge-cron","rel":"runs"},{"source":"org","target":"ariadne-notes","rel":"owns"},{"source":"srv-windows","target":"ariadne-notes","rel":"hosts-now"},{"source":"srv-ubuntu","target":"ariadne-notes","rel":"migration-target"},{"source":"ariadne-notes","target":"svc-ariadne-mcp","rel":"runs"},{"source":"svc-ariadne-mcp","target":"port-3200","rel":"listens-on"},{"source":"ariadne-notes","target":"svc-ariande-capture-bot","rel":"runs"},{"source":"org","target":"mach","rel":"owns"},{"source":"srv-windows","target":"mach","rel":"hosts-now"},{"source":"srv-ubuntu","target":"mach","rel":"migration-target"},{"source":"mach","target":"svc-mach-dashboard","rel":"runs"},{"source":"svc-mach-dashboard","target":"port-7000","rel":"listens-on"},{"source":"org","target":"mercurius-podcast","rel":"owns"},{"source":"srv-windows","target":"mercurius-podcast","rel":"hosts-now"},{"source":"srv-ubuntu","target":"mercurius-podcast","rel":"migration-target"},{"source":"mercurius-podcast","target":"svc-mercurius-ai-briefing","rel":"runs"},{"source":"mercurius-podcast","target":"svc-mcast-api","rel":"runs"},{"source":"mercurius-podcast","target":"svc-mcast-web","rel":"runs"},{"source":"svc-mcast-web","target":"port-3120","rel":"listens-on"},{"source":"org","target":"midas","rel":"owns"},{"source":"srv-windows","target":"midas","rel":"hosts-now"},{"source":"srv-ubuntu","target":"midas","rel":"migration-target"},{"source":"midas","target":"svc-midas-api","rel":"runs"},{"source":"midas","target":"svc-midas-gateway","rel":"runs"},{"source":"org","target":"sabai-pulse-nyc","rel":"owns"},{"source":"srv-windows","target":"sabai-pulse-nyc","rel":"hosts-now"},{"source":"srv-ubuntu","target":"sabai-pulse-nyc","rel":"migration-target"},{"source":"sabai-pulse-nyc","target":"svc-pulse-nyc-portal","rel":"runs"},{"source":"svc-pulse-nyc-portal","target":"port-8310","rel":"listens-on"},{"source":"sabai-pulse-nyc","target":"svc-pulse-nyc-server","rel":"runs"},{"source":"svc-pulse-nyc-server","target":"port-8320","rel":"listens-on"},{"source":"sabai-pulse-nyc","target":"svc-pulse-nyc-tunnel","rel":"runs"},{"source":"sabai-pulse-nyc","target":"svc-pulse-nyc-dash-tunnel","rel":"runs"},{"source":"org","target":"svc-pm2-logrotate","rel":"platform"}]}