Skip to main content
Three of these draw boxes and arrows. Two are Python libraries. Knowing which is which is most of the decision.
The homelab runs a self-hosted layer for building LLM workflows and agents on top of its private model serving. Six tools cover the range from “connect an LLM to 400 other apps” to “write a multi-agent crew in Python.” They overlap on purpose at the edges; the trick is not deploying all six and using none of them.

The six, at a glance

Services vs libraries

The single most useful distinction:
  • n8n, Dify, and LangFlow are services. They run as containers, expose a web UI, and you build inside them. They are deployed and have an HTTPS front door.
  • LangChain and CrewAI are libraries. You do not “deploy” them — you pip install them into application code. In this homelab they live together in one Python execution box that runs the agent code people write against them.
  • LangGraph is a library too — but it straddles the line. You write graphs in Python against it, yet the homelab also runs its open-source server (langgraph dev, in-memory) with a self-hosted chat UI, so it gets an HTTPS front door like the visual builders. Crucially, no LangSmith cloud account is required — the server is fully self-hosted and traces to the homelab pipeline.
A common misread is treating LangChain/CrewAI as servers to stand up, or treating the visual builders as interchangeable. They are not. LangGraph is the deliberate exception: a library the homelab has chosen to also run as a service.

How they fit together

Solid edges are model calls; coral dashed edges are telemetry. Every tool is configured to its own model provider per its standard install — the local OpenAI-compatible endpoint, an external API, or both — never forced onto a shared backend that belongs to another stack. Each tool’s call is instrumented, and the traces fan out to the LLM observability pipeline.

Picking one — the blunt version

  • One tool only, and it has to be one → Dify. It covers RAG, prompts, evals, and agents without a separate automation tool.
  • Already automating with workflows → keep n8n and add Dify as the AI layer beside it.
  • Want to sketch a chain visually and walk away with Python → LangFlow.
  • Building a durable, stateful agent as a graph and want it self-hosted behind a UI with no cloud → LangGraph (its open-source server plus a self-hosted chat UI; no LangSmith account, in-memory state — a playground, not durable storage).
  • Writing application code → LangChain for primitives, CrewAI for role-based agent teams. Both are imports, not installs-as-a-service.
LangFlow overlaps Dify’s visual builder; it earns its place only for lightweight, Python-export prototyping. If that workflow isn’t yours, you can run the other four and never miss it.

Where to go next

Local LLM

The private GPU model serving these tools call.

LLM observability

How every LLM call gets traced, costed, and evaluated.

LXC vs Docker

Why the compose-based tools run as Docker-in-LXC.

ansible-proxmox-apps

The configuration tier that deploys these app payloads.