Skip to content

Multi-Machine Deployment Architecture

Production agents need dedicated hardware. Here's the architecture pattern.

Why Two Machines?

Problem Single Machine Two Machines
Browser automation crashes Takes down your agent Isolated on worker โ€” agent stays up
Video rendering pegs CPU Blocks all other tasks Offloaded to worker with FFmpeg
Social publishing failures Can't post anywhere Worker node runs Postiz independently
Memory pressure LLM + browser + video = OOM LLM on primary, everything else on worker

Architecture

โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”
โ”‚                    PRIMARY COMPUTE NODE                          โ”‚
โ”‚  OS: Linux ยท GPU: NVIDIA                                         โ”‚
โ”‚                                                                  โ”‚
โ”‚  Services:                                                       โ”‚
โ”‚  โ”œโ”€โ”€ Hermes Gateway (production instance)                        โ”‚
โ”‚  โ”œโ”€โ”€ Production crons (multi-category scheduling)                โ”‚
โ”‚  โ”œโ”€โ”€ Session memory (peer context sharing)                       โ”‚
โ”‚  โ”œโ”€โ”€ Business tool connectors (MCP)                              โ”‚
โ”‚  โ”œโ”€โ”€ Knowledge graph (vector search)                             โ”‚
โ”‚  โ”œโ”€โ”€ Cross-session context store                                 โ”‚
โ”‚  โ”œโ”€โ”€ Ollama (local embeddings, lightweight inference)            โ”‚
โ”‚  โ””โ”€โ”€ LLM provider (primary inference via API)                    โ”‚
โ”‚                                                                  โ”‚
โ”‚  Model Routing:                                                  โ”‚
โ”‚  โ”œโ”€โ”€ Lightweight: daily ops, monitoring                          โ”‚
โ”‚  โ”œโ”€โ”€ Mid-tier: research, content, coding                        โ”‚
โ”‚  โ””โ”€โ”€ Heavy: strategy, complex analysis                          โ”‚
โ”‚                                                                  โ”‚
โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜
                            โ”‚
                    SSH (key-based auth)
                            โ”‚
โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”
โ”‚                  WORKER NODE (macOS, ARM64)                       โ”‚
โ”‚  OS: macOS (ARM64)                                                โ”‚
โ”‚                                                                  โ”‚
โ”‚  Services:                                                       โ”‚
โ”‚  โ”œโ”€โ”€ Postiz CLI (social publishing โ€” X, LinkedIn, TikTok, IG)    โ”‚
โ”‚  โ”œโ”€โ”€ Playwright (browser automation, stealth)                    โ”‚
โ”‚  โ”œโ”€โ”€ FFmpeg (video post-production)                              โ”‚
โ”‚  โ”œโ”€โ”€ patchright (Cloudflare bypass)                              โ”‚
โ”‚  โ””โ”€โ”€ Content pipelines (video, docs, media)                      โ”‚
โ”‚                                                                  โ”‚
โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜

Node Pages

Page Purpose
Primary Compute (DGX Spark) GPU workstation as inference + scheduling hub
Worker Node (Mac Mini M4) Dedicated worker for browser + content ops
Authentication Management OAuth tokens, API keys, rotation patterns
Browser Automation Architecture Playwright stealth + persistent contexts
Multi-Model Routing Cost-optimized model selection

Key Decisions

  1. Two machines beat one big one. Isolation between inference and browser/video workloads prevents cascade failures.
  2. Primary node never runs browsers. Browsers leak memory and crash; keep them off the inference box.
  3. Worker node handles all external publishing. Social APIs, browser automation, and media processing live on the worker.
  4. SSH key auth between nodes. Agent-to-agent automation needs key-based SSH, never passwords.

All Pages