功能

从“做出来了”到​“上线了”,中间的麻烦​事都交给 Tofu

一个 Tofu 账号全部​接好:app 托管、​数据库、​自己的域名、​登录​和验证​邮件、​访问​统计、​收款,​你的 coding agent 都能直接​操作。​每项能做​什么、​有什么​限制、​还有哪些​功能​没做,​都写​清楚了。

一个账号就够了

app 需要的服务,​都替你接好了 每一项都是你的 agent 能调用的工具

它们各有​一页:​怎么​运作、​你的 agent 怎么调用、​能做到​什么​程度。

  • 上线与托管

    上线了,​改坏了也能一键​回到旧版本

    每次上线​都先检查、​再构建,​确认​新版本能​正常打开​才发布,​每个版本​都有​记录。​想回到​之前​正常的​版本,​点一下​“恢复”​就行。

    • deploy
    • rollback
    • getRuntimeLogs
  • 数据库

    现成的数据库,​不用自己搭

    Tofu 给你​一个托管的 Postgres 数据库,​上线时​一起建好。​连接密钥​直接配​进你的 app,​写入后​不外露,​你不用经手。​数据库​也可以​转到你​自己​名下的 Supabase 账号,​跟 Tofu 说一声​就行。

    • databaseCreate
    • databaseStatus
  • 自己的域名

    用你​自己的域名,HTTPS 证书自动配好

    如果域名在 Cloudflare,​授权​一次,Tofu 就替你​配好 DNS 记录。​域名​在别家,Tofu 会把要填的​记录​一字不差地​列给你,​你填好后​它再帮你​检查。

    • domainConnect
    • domainAuthorize
    • domainVerify
  • 登录与邮件

    Google 登录,​不用碰 Google Cloud

    给你的 app 加上 Google 登录​和邮箱​登录。​等你​自己的域名​验证好,​注册时​发的验证​邮件​就从这个域名​发出。​不用建 Google Cloud 项目,​不用配 OAuth 客户端,​也不用管​密钥。

    • appAuthConfigure
    • appAuthEmailConnect
  • 访问统计

    访问量看得见,​不追踪访客

    每个 app 的浏览量、​热门​页面、​访客主要​从哪些​网站来,​都在 Tofu 自己的服务器上​统计。​不用 Cookie,​不存 IP 地址,​也不用另开​统计​账号。

    • siteAnalytics
    • setSiteAutoInject
  • 本地客户端与 agent

    跟你的 agent 说一句,​就能上线

    Tofu 有个装​在你​电脑上的​客户端,​任何支持 MCP 的 coding agent 都能用。​在浏览器里​授权​一次就行,​项目​和上线​记录​跟控制台里​的是​同一份。

    • login
    • ingest
    • status
  • 收款

    收款,​钱直接到​你账上。

    买家在 Stripe 官方结账​页付款,​钱直接进​你自己的 Stripe 账号。Tofu 帮你建好​收款​链接,​一次性​付款​和定期​订阅​都行,​还会让你的 app 知道是谁​付的钱。​不用你​复制粘贴​任何密钥,Tofu 也不抽成。

    • appPaymentsConnect
    • appPaymentsSetup
    • appPaymentsLinkCreate

免费套餐​可以上线 1 个 app,​包括页面​背后的​代码,​还附带 1 个托管​数据库。​只要 app 在线,​这个数据库​就一直保留。​哪些套餐​可以绑定​自己的域名,​具体看​定价页。​买域名​另算。查看定价

把你的 Stripe 账号连到 app 上,​需要付费​套餐,app 也要在服务器上​运行。​第一笔​套餐费​支付​成功后,​就能正式​收款。收款是​怎么​运作的

3 个入口

把你手上的 app 带过来 怎么交给 Tofu 都行

不管 app 从哪个入口​进来,​到了 Tofu 都一样:​构建前过​同一道​检查,​用同一种方式​上线。

  1. 你的 coding agent

    推荐​这种方式。​把接入​提示词​粘给任何 coding agent,​它会装好 Tofu 的客户端,​你在​浏览器里​确认一下​验证码​就行。​之后​只有你​开口,​它​才会在对话里​上传、​检查、​部署。​更新​只替换​代码,​还是同一个 app,​设置、​地址​和版本​历史​都保留。

    agent 与命令行

    ❯ setup prompt pasted · code approved

  2. GitHub 分支

    用只读​授权导入​一个分支,​代码停在​导入时的​那次​提交。​任何套餐​都能开​自动​更新,​之后​每次推送,​最新提交​照样​先检查,​通过了​再部署。

    main · push → deploy

  3. 命令行

    独立客户​端在终端​或云端沙​箱里同样​能上传、​检查、​部署。​只要有 Node.js 22 或更高​版本,​在浏览器里​确认​一次就行,​全程​不用粘贴​密钥。

    $ node tofu-agent.mjs login

Tofu 能托管什么

有人访问​才运行的 web app 用你选好的​技术栈就行

构建好的​网站、web 框架做的 app、Python / Go / JavaScript 后端​服务,​或者你​自己的容器,​运行方式​都一样:​有人访问​就运行,​没人访问​就停下。Tofu 会自动​识别 app 类型、​推荐部署​设置,​你来​确认。

网站与 Web 框架
  • Next.js
  • Vite
  • Astro
  • SvelteKit
  • Nuxt
  • React Router
  • Gatsby
  • Static HTML

按框架​自己的方式​构建,​已经构建好的​静态网站​就原样发布。

Python
  • FastAPI
  • Flask
  • Django
  • Python

按 app 自带的​依赖清单​构建,​作为 HTTP 进程​启动,​响应发到 app 地址的​请求。

Go
  • Go

按 app 自带的 go.mod 构建,​作为 HTTP 进程​启动,app 需要监听​环境变量 PORT 指定的​端口。

JavaScript 服务器
  • Express
  • Hono
  • NestJS
  • Node.js server

按文件​名自动​找到入口​文件,​作为 HTTP 进程​启动,​服务器​要能响应​根路径 / 的请求。

容器
  • Dockerfile (container)

按 app 自带的​容器文件​(比如 Dockerfile)构建​镜像,​再作为​服务​运行。

Tofu 不托管​需要​一直运行的​程序:​后台 worker、​处理队列​任务的​程序、​一直开着的​调度器,​哪个套餐​都跑不了。托管​与部署

安全检查

先读一遍,​再构建 读了什么,​实话实说

每次构建​之前,Tofu 都会按一套固定的​规则,​检查​这次要上传的​文件。​查的是:​写在​代码里的​真实​密钥、​没开行级​安全(RLS)的​数据库表、​允许​任何人写​入的权限​设置,​还有​已知的​恶意软件​特征。​可能危害​别人的​问题​(恶意​软件​特征、​钓鱼、​密钥​泄露)​会拦下​这次构建,​已上线的​版本照常​运行。​只影响​你自己 app 的设置​(比如​对外​开放的​表)​会标成​警告,​但从不拦下​构建。

每份检查​结果​都会列出​读了哪些​文件,​也会写​明规则​不查哪些​东西。​只说查​过的,​从不夸大。

安全检查​具体怎么查

目前不支持

  • 替你买域名。 搜索​域名、​查看​报价、​交给域名​注册商​处理,​这几步​都已经做好了,​只是购买​入口​还没开放。

  • 预览部署。 没有 pull request 预览。​每个​项目的 GitHub 自动更新​只跟踪​一个分支、​一个 app 根目录,​也不跟踪 tag。

  • 深度安全​检查的逐​项报告、​数据库​密码​轮换、​访问统计​导出、​消息通知​和团队​协作。

  • SQL 控制台。 这是特意​不做的:Tofu 不默认​信任​上传的​代码,​而 SQL 控制台​要用的​管理​凭据,​一个就能管到​所有托管​项目。

  • 任何需要​一直运行的​程序。 后台 worker、​处理队列​任务的​程序、​一直开着的​调度器,​或者非 HTTP 服务。app 自己在 vercel.json 里配置的​定时任务​也不会生效。

粘贴​一段提示词。10 分钟上线

用你​已经在用的 agent,10 分钟,​把 app、​数据库、​域名和​登录​都弄好。

免费开始