用5美元VPS搭建自主Agent流程:Junctio网关替代Lovable的代码托管限制

大鹏爱学习 中级 25天前 672 浏览 12 点赞 约 2 分钟

在使用Lovable这类平台时,操作流畅无需复杂配置,但每月25到50美元的费用以及代码完全托管在第三方平台上,让自主开发变得不再灵活。既然已经投资Claude,手头还有一台运行Dokploy的5美元VPS,就能通过解决Agent部署问题来实现自主化。然而,市面上没有一个同时满足多运行时、单容器、自带OAuth服务器且界面友好的MCP网关方案,于是开发了Junctio网关,将流程整合为VPS、Dokploy、Junctio(自建网关)、以及Claude等客户端之间的链条。

构建流程与技术栈

为了满足5美元VPS的运行需求,1GB内存足以运行Junctio,但Dokploy本身仍需2GB内存。整体架构如下:

  • 基础环境:VPS + Dokploy(2GB内存)
  • 网关层:Junctio(Dokploy旁边的容器,支持OAuth)
  • 服务端:@dokploy/mcp服务器,作为stdio进程运行在Junctio内部
  • 交互端:Claude(桌面版/Code)、ChatGPT、Codex或Cursor
用5美元VPS搭建自主Agent流程:Junctio网关替代Lovable的代码托管限制

Agent通过OAuth连接到Junctio,Junctio利用Dokploy API Key调用@dokploy/mcp,最终通过Streamable HTTP将功能暴露给Agent。具体示意图如下:

Schema AI Agent → OAuth → Junctio → stdio → @dokploy/mcp → Dokploy API

实际应用场景

当Agent执行命令“帮我为X制作一个落地页,推送到GitHub并部署到Dokploy的x.example.com”时,流程自动化如下:

  1. Agent生成代码模板。
  2. Dokploy创建应用并关联仓库。
  3. 绑定域名并触发构建。

整个过程仅需几分钟,主要耗时在Docker构建阶段。

为了确保安全,Junctio记录所有请求日志,包括方法、工具名、状态和耗时,但不存储Body内容,避免敏感数据泄露。这意味着,如果Agent发送的参数或结果包含机密信息,这些信息不会被保留在日志中。

网关的必要性:为什么不能直接用npx?

直接使用npx @dokploy/mcp在实际场景中面临几个问题:

1. 兼容性限制
Claude网页版缺少stdio支持,虽然桌面版或Code可以启动本地stdio服务器,但浏览器端的AI Agent无法发送API Key头。Junctio通过自定义连接器实现完整OAuth服务器,支持RFC 8414元数据、动态客户端注册、PKCE和同意屏幕,只需输入管理员密码即可完成授权,无需额外处理Cloudflare Worker或单独构建鉴权服务。

2. 上下文污染
官方Dokploy MCP服务器暴露600多个工具,AI Agent容易误选application-*相关调用。在Junctio中,服务器被限制在命名空间下,仅保留约20个常用工具(如创建项目、设置源、部署、读日志等),并添加简短提示(如“绝对不要删除,创建数据库前要询问”),精简了AI看到的工具集,提升了准确率。

3. API Key管理
stdio模式下,每台客户端机器都需要存储mcp.json中的Dokploy API Key。Junctio则将Key集中存储并加密,每个客户端分配独立OAuth客户端或API Key,权限管理通过UI界面实现,随时可撤销。

部署参考

要尝试这个结构,可以使用以下Docker Compose配置:

services:
  junctio:
    image: ghcr.io/k2so-dev/junctio:latest
    pull_policy: always
    restart: unless-stopped
    environment:
      JUNCTIO_SECRET: ${JUNCTIO_SECRET:?set JUNCTIO_SECRET, e.g. openssl rand -hex 32}
      JUNCTIO_BASE_URL: ${JUNCTIO_BASE_URL:?set JUNCTIO_BASE_URL, e.g. https://mcp.example.com}
      JUNCTIO_TRUST_PROXY: "true"
      JUNCTIO_ADMIN_TOKEN: ${JUNCTIO_ADMIN_TOKEN:-}
      LOG_LEVEL: ${LOG_LEVEL:-info}
    volumes:
      - junctio-data:

在实际部署中,需要根据实际需求设置JUNCTIO_SECRET、JUNCTIO_BASE_URL和JUNCTIO_ADMIN_TOKEN等环境变量,以确保服务安全运行。如果环境变量未设置,系统会提示并给出示例值。

Claude工作流vpsDokployJunctio

全部回复 (3)

想当场把话说完?进全球 AI 聊天室,登录就能开口。

夜
夜猫子创业者 专家 25天前

省钱是省了,但要是真跑出502错误,升级VPS的钱够买多少个Supabase账号?其实Lovable那类平台用着确实顺手,描述一句网页Agent就自动生成发布,但月费25到50美元才拿到好档位,代码还全锁在对方平台,Agent只能干同一件事。既然已经为Claude付费,手头那台5美元VPS跑着Dokploy,缺的只是怎么部署Agent。市面上MetaMCP、IBM的ContextForge这些网关都不满足多运行时、单容器、自带OAuth服务器且UI好看,于是自己写了Junctio网关。整套链路是VPS加Dokploy,Junctio跑在旁边的容器里,官方@dokploy/mcp作为stdio进程在Junctio内部运行,AI通过OAuth连进来,Junctio拿Dokploy API Key去调工具,最后用Streamable HTTP暴露。给Agent发个指令让它做落地页推到GitHub再部署到子域名,几分钟自动搞定,大部分时间耗在Docker构建上。所有工具调用都记在请求日志里,方法、工具名、上游状态和耗时都有,但不存Body内容,免得参数结果里的敏感数据变成泄露点。为啥不直接用npx?第一是兼容性,claude.ai网页版没有stdio,Claude Desktop或Code能启本地服务器,但浏览器端AI或ChatGPT连接器做不到,也发不了API Key Header,Junctio自带完整OAuth授权服务器,支持RFC 8414元数据、动态客户端注册、PKCE和同意屏幕,加个连接URL输密码就完事,不用折腾Cloudflare Worker包装。第二是上下文污染,官方Dokploy MCP服务器直接暴露600多个工具,AI经常选错application-*调用,Junctio把服务器放命名空间下,只留大约20个最常用的,比如创建项目、创建应用、设置源、设置域名、部署、读日志,再加段简短指令比如绝对不要删除、建数据库前要询问,AI准确率高多了。第三是Key管理,stdio模式每台客户端机器的mcp.json都存一份Dokploy API Key,用网关后Key只存在服务器一处且加密存储,每个客户端分配独立OAuth客户端或API Key,撤权直接在UI里点掉就行。

0 回复
在
在深圳设计师 中级 25天前

太猛了,我之前折腾 Coolify 差点把服务器搞崩,但一旦跑通那快感绝了,Dokploy 的部署速度快吗?我之前用过Lovable这类平台,确实操作起来很顺畅,只需描述一下网页Agent就能自动生成并发布,但月费动辄25到50美元才能获得较好档位,且代码全部托管在对方平台,Agent也只能做同一件事。既然已经为Claude付费,手头还有一台运行了Dokploy的5美元VPS,只需解决如何部署Agent的问题就行。市场上有MetaMCP或IBM的ContextForge等MCP网关,但找不到一个同时满足多运行时、单容器、自带OAuth服务器且UI界面好看的方案,于是自己写了一个名为Junctio的网关。

0 回复
阿
阿Sam的日常 高级 25天前

真能砍到 20 个?这么多端点居然不乱跑,你这 prompt 优化得有点玄学了。用Lovable这类平台确实方便,但月费太高,而且代码全部托管在对方平台。既然已经为Claude付费,不如自己搭建一套方案。比如用Dokploy部署在5美元的VPS上,然后自己写了一个名为Junctio的网关,这样就能精简工具集,提高准确率。整体链路如下:基础环境是VPS + Dokploy,网关层是Junctio,服务端是官方的@dokploy/mcp服务器,交互端是Claude、ChatGPT或Codex。这样AI Agent通过OAuth连接到Junctio,Junctio利用Dokploy的API Key去调用@dokploy/mcp,最终通过Streamable HTTP将工具暴露出来。

0 回复

发表回复

支持 Markdown 格式
AI工具与大模型实操经验整理在Claude实战技巧汇总,有不少直接可参考的案例。