Sealos Devbox 基础教程:使用 Cursor 从零开发 One API 替代品

随着技术的不断进步和人工智能的崛起,许多原本需要团队协作才能完成的任务现在都可以通过自动化和智能化的方式独立完成。因此,单个开发者的能力得到了显著提升——借助各种工具,一个人就能完成开发、测试、运维等全链路的工作,真正成为“全能工程师”。

我们之前分享了一些入门级的 Hello World 教程。今天,我将通过一个实际的业务案例来展示 Devbox 的强大之处,它不仅仅是一个开发玩具,而是一个真正的生产力工具。

在 Sealos 平台上,有许多应用,其中许多管控层面的应用都是使用 Cursor + Go + Next.js 开发的。我们的开发环境直接使用 Sealos Devbox,上线也是通过 Devbox 一键完成。这种开发模式使我们的团队具备了极高的作战能力——大部分重复性工作都通过自动化或 AI 完成,让开发者可以专注于核心业务逻辑

开发环境

以 Sealos 中的 AI Proxy 应用为例,这是一个典型的前后端分离架构的应用,主要由两部分组成:

  • 基于 Next.js 开发的前端应用和 BFF 层。BFF 层负责用户鉴权,并将经过验证的请求转发给后端服务。
  • 使用 Golang 开发的后端服务,负责核心业务逻辑,包括 token 存储、日志记录和请求转发等功能。

架构图

接下来,我将详细介绍如何高效地开发这样一个生产级别的系统

Golang 后端

创建开发环境

首先在 Sealos Cloud 中打开 Devbox 应用,创建一个新项目,选择 Go 作为运行环境,选择 1.23 版本。

创建项目

Devbox 为开发者提供了几个非常实用的功能:

  • 灵活的资源配置:可以根据项目需求自由调整 CPU 和内存,选择合适配置既保证性能又能控制成本。
  • 一键启用 HTTPS:系统自动分配安全域名,再也不用为配置 SSL 证书发愁。
  • 全自动域名管理:从开发到测试环境,域名配置全程由系统处理,开发者可以专注于代码本身。

创建完成后,几秒钟即可启动开发环境。

环境准备好后,我们直接用 Cursor 连接开发环境。在操作选项中选择使用 Cursor 连接:

连接开发环境

首次打开会提示安装 Devbox 插件,安装后即可自动连接开发环境。

安装插件

导入项目到 Cursor

首先 Fork Sealos 源码到自己的仓库,然后再将你自己的仓库克隆到 Devbox 开发环境:

克隆项目

克隆项目

测试环境开发

在 Cursor 的面板中切换到 “Database” 标签页,然后点击箭头指向的按钮,在浏览器中打开 Sealos 的数据库应用:

数据库应用

然后创建 PostgreSQL 和 Redis 实例。

创建实例

创建实例

回到 Cursor 面板的 “Database” 标签页,点击刷新即可看到刚创建的数据库实例,点击可复制连接信息:

复制连接信息

在终端中启动服务:

bash
export ADMIN_KEY=sealos-admin
export SQL_DSN=<复制的pgsql连接串>/postgres
export REDIS_CONN_STRING=<复制的redis连接串>
go run . –port 8080

提示 server stared 即为启动成功。

启动成功

在 Cursor 面板的 “Network” 标签页中,点击地址栏右侧的 🌐 按钮,然后在弹窗中选择 “Copy”,将地址复制到自己电脑上使用 curl 进行测试:

bash
curl https://mmznjndvzdrv.sealoshzh.site/api/status -H “Authorization: sealos-admin”

接口测试

接口返回没有问题。

优化数据库设计

在开发过程中,我们发现数据库中 Group 和 Token 之间的外键约束增加了系统维护的复杂度。为了简化这一关系,我们可以将外键约束改为程序层面的显式调用,这样可以让代码逻辑更加清晰和可控。

首先切换到 fix-aiproxy 分支:

切换分支

sealos/service/aiproxy/model/group.go 文件中,我们需要将 Group 结构体中一个外键约束改成在程序内显示调用更新和删除来降低维护心智。

这里我选择使用 Cursor 的 Chat 功能让 AI 自己写代码,最后生成的结果如下:

生成代码

生成代码

这种实现方式的优势在于:当删除 Group 时,相关的 Token 删除操作会在同一个事务中完成。由于是在事务内进行,我们不需要担心删除失败或系统宕机导致的数据不一致问题。

我们可以通过一系列测试来验证这个优化是否达到预期效果。首先编译并运行服务:

bash
go build . && ./aiproxy –port 8080

然后通过以下 API 调用来测试完整的 Group 和 Token 生命周期:

bash

创建一个group

curl https://gawavirgsomu.sealosbja.site/api/group/ -H “Authorization: sealos-admin” -d ‘{
“id”: “ns-admin”
}’

创建一个token

curl https://gawavirgsomu.sealosbja.site/api/token/ns-admin -H “Authorization: sealos-admin” -d ‘{
“name”: “token 1”
}’

查询token

curl https://gawavirgsomu.sealosbja.site/api/tokens/ -H “Authorization: sealos-admin”

删除group

curl https://gawavirgsomu.sealosbja.site/api/group/ns-admin -H “Authorization: sealos-admin” -X DELETE

再次查询token

curl https://gawavirgsomu.sealosbja.site/api/tokens/ -H “Authorization: sealos-admin”

测试结果

测试结果符合预期,确认优化方案可行。接下来我们就可以提交这些更改并创建 Pull Request 了。

上线到生产环境

首先在 Cursor 目录顶层的 endpoint.sh 中设置启动命令,在文件中添加以下启动配置:

bash
cd sealos/service/aiproxy
export ADMIN_KEY=sealos-admin

可以再创建一个单独的生产环境数据库,与开发环境隔离

export SQL_DSN=<复制的pgsql连接串>/postgres
export REDIS_CONN_STRING=<复制的redis连接串>

使用编译好的二进制文件

./aiproxy –port 8080

设置启动命令

然后来到 Devbox 发布页面发布版本:

发布页面

点击发布按钮后,等待发布流程完成。发布成功后,点击 “上线” 按钮进入部署页面,然后点击 “部署应用” 即可:

部署应用

部署应用

部署完成后,进入应用的详情页面,等待应用变成 running 状态,然后复制公网地址:

公网地址

这个公网地址就是生产环境的域名,我们可以使用生产环境的域名进行测试:

bash

这里使用的是生产环境的域名

curl https://jpesudzryuhp.sealosbja.site/api/tokens/ -H “Authorization: sealos-admin”

测试成功

完美!

Next.js 前端

前端项目搭建

前端环境的搭建与后端类似,具体步骤如下:

在 Devbox 中创建一个 Node.js 环境,版本选择 20,端口改成 3000。由于 pnpm 安装依赖比较消耗资源,建议选择 4c 16G 的配置。然后克隆你自己 Fork 的 Sealos 仓库:git clone https://github.com/xxx/sealos.git。AI Proxy 的前端代码位于 sealos/frontend/providers/aiproxy 目录。

切换到 sealos/frontend 目录,首先修改 sealos/frontend/package.json 文件,去除 node 版本限制,直接删除 "node": "20.4.0""pnpm": "8.9.0" 这两行即可,这一步很重要,不然代码构建依赖会不成功

修改 package.json

执行命令 pnpm i 安装依赖。

安装依赖

执行命令 pnpm -r --filter ./packages/client-sdk run build 构建 client-sdk 包。

构建 client-sdk

为了让 Cursor 的 i18n 插件正常工作,我们需要将项目根目录切换到 sealos/frontend/providers/aiproxy

切换目录

切换目录后,建议安装所有 @recommended 插件以获得最佳的开发体验:

安装推荐插件

之前只是构建出了 Sealos Desktop SDK,并没有安装 aiproxy 的依赖,aiproxy 的依赖需要在 aiproxy 工作目录下 sealos/frontend/providers/aiproxy 进行安装。直接执行命令 pnpm i 安装即可:

安装 aiproxy 依赖

对接后端环境

项目搭建完成后,我们需要配置环境变量来对接后端服务。在项目根目录创建一个 .env 文件,需要配置以下几个关键变量:

bash
NEXT_PUBLIC_MOCK_USER=””
AI_PROXY_BACKEND_KEY=””
APP_TOKEN_JWT_KEY=”test123″
AI_PROXY_BACKEND=””
AI_PROXY_BACKEND_INTERNAL=””
ADMIN_NAMESPACES=””

  • NEXT_PUBLIC_MOCK_USER:由于 AI Proxy 是 Sealos Desktop 的一部分,用户认证通过 JWT Token 实现,AI Proxy 只做解析 Token,JWT Token 的签发由 Sealos Desktop 完成。在开发阶段,我们需要 mock 一个 JWT Token。NEXT_PUBLIC_MOCK_USER 的值就是 mock 出来的 JWT Token。可以使用在线工具 https://www.lddgo.net/encrypt/jwt-generate 生成。

mock 数据如下:

json
{
“workspaceId” : “test”
}

  • APP_TOKEN_JWT_KEY:JWT Token 的密钥 (随便写)
  • AI_PROXY_BACKEND_KEY:后端 API 的访问密钥 (也就是后端项目的 ADMIN_KEY)
  • AI_PROXY_BACKEND:后端服务的公网地址
  • AI_PROXY_BACKEND_INTERNAL:后端服务的内网地址 (开发测试阶段可以不填)
  • ADMIN_NAMESPACES:管理员用户名,开发时填 test 就行,和 token 中的 “workspaceId”:“test” 保持一致

环境变量配置完成后,运行 pnpm dev 即可启动开发服务器。项目的发布和部署流程与前面介绍的后端开发流程完全一致。

启动开发服务器

总结

Sealos AI Proxy 前端项目采用了经典的 Next.js App Router 架构,其中 app/[lng] 目录用于页面路由,app/api 目录则用于后端 API 路由。

在这个项目中,Next.js 的后端实际上是一个中间层,它主要负责用户认证相关的业务逻辑,并将经过认证的请求转发给真正的 Golang 后端服务。这种分层设计可以让 Golang 后端专注于核心业务逻辑,不需要关心认证等基础设施,从而提高了代码的灵活性和可移植性。

👉 野卡 | 一分钟注册,轻松订阅海外线上服务

(0)
上一篇 2025年3月15日
下一篇 2025年3月15日

相关推荐

  • Perplexity AI:多功能信息探索平台

    Perplexity 是一个以人工智能为动力的信息发现和探索平台,被誉为信息探索的“瑞士军刀”。这个平台不仅能回答问题,还能激发用户的好奇心,帮助用户总结内容、探索新话题,甚至发挥…

    2025年7月31日
  • Midjourney订阅指南:如何轻松开启AI创作之旅?

    Midjourney是一款备受欢迎的AI绘画工具,因其卓越的图像生成能力和创作潜力而受到众多艺术家和设计师的青睐。如果你也想体验Midjourney的魅力,Midjourney订阅…

    文章 2025年8月12日
  • Midjourney订阅价格对比:国内版与国际版的详细分析

    Midjourney作为AI绘画领域的佼佼者,其在出图精准度和多样性方面都表现出色。本文将详细对比Midjourney国内版与国际版的订阅价格,帮助您做出明智的选择。 一、首次体验…

    文章 2025年2月26日
  • 美区 Apple ID 充值指南

    注:本文内容经过验证,确保有效,特此转载以防信息丢失。 一、购买美区苹果礼品卡 在国内购买美国 Apple 礼品卡的主要途径有以下几种: 淘宝购买:可以在淘宝上购买美区礼品卡,直接…

    文章 2025年4月28日
  • Cursor AI:颠覆程序开发,零基础也能快速打造应用

    Cursor:程序开发的 ChatGPT 有时,一款人工智能工具会突然走红,成为社交媒体的热门话题。本周的焦点就是 Cursor,这是一款基于 Claude 3.5 Sonnet …

    2025年6月29日
  • OpenAI ChatGPT 最佳虚拟信用卡推荐

    在使用 OpenAI ChatGPT 的过程中,许多用户可能会因为没有国外银行卡而面临支付困难,常常遇到诸如“Your card has been declined”、“We ar…

    文章 2025年3月19日
  • 如何申请Claude 3.5 Sonnet的AWS支持权限

    说明 目前,美国东部(弗吉尼亚北部)us-east-1和美国东部(俄亥俄州)us-east-2提供的AWS资源和服务是最全的。 1. 登录亚马逊云科技控制台 首先,登录到亚马逊云控…

    2025年6月3日
  • PayPal能否开设虚拟信用卡?

    PayPal与虚拟信用卡的关系 PayPal 本身并不直接提供虚拟信用卡服务。然而,用户可以通过其他平台申请虚拟信用卡,并将其与 PayPal 账户绑定,以便在网上购物时进行支付。…

    文章 2025年3月2日
  • OpenAI背后的公司揭秘

    你是否好奇,OpenAI这个改变世界的科技巨头,背后究竟是哪家公司?它并不是一家传统企业,而是一个由一群顶尖科学家和企业家共同创立的非营利组织。OpenAI成立于2015年,旨在推…

    文章 2025年6月1日
  • Claude 突然无法使用的原因及解决方法

    大家是否遇到过这样的情况:半小时前还在正常使用的 Claude APP,突然在 Slack 中消失了? 最近我正在忙于撰写文章,没有 Claude 的协助,工作效率大幅下降。于是,…

    2025年2月13日
  • ChatGPT 订阅信用卡使用指南:亲测有效,避免封号

    引言 在3月27日,ChatGPT再次出现封号潮,无论是使用礼品卡还是虚拟卡,均有被封的风险,主要原因在于卡段的不稳定性。本文将详细介绍如何安全开通 ChatGPT 4.0 的订阅…

    2025年6月13日
  • 2025年最新指南:如何通过支付宝开通 ChatGPT Plus?

    随着 ChatGPT 的迅速普及,越来越多的用户希望升级至 ChatGPT Plus 会员,以获得更优质的服务体验。升级到 ChatGPT Plus 后,您将享受更快的响应速度、更…

    文章 2025年3月4日
  • 亚马逊北美站付款账户绑定信用卡验证问题

    问题描述 我已经完全按照亚马逊付款账户的要求输入了信息,并多次与发卡行确认信用卡的相关信息。输入的信用卡信息与银行系统中的记录完全一致,但验证依然失败。这个问题已经持续了一个月,我…

    文章 2025年7月16日
  • 如何实现免费使用 OpenAI API 和 ChatGPT Plus 会员

    相信很多人可能已经阅读过我分享的《如何获取一张美国虚拟信用卡》这篇文章,更多人通过这篇文章成功使用了 OpenAI API 或 ChatGPT Plus。甚至我相信也有许多人已经实…

    2025年8月9日
  • Notion AI 会员价格与功能详解

    现在,Notion AI 提供问答功能,加入任何付费会员计划的费用为每位会员每月 8 美元(按年计费)。如果选择按月计费,每位会员的费用为 10 美元。所有会员均可享受无限制使用的…

    文章 2025年6月25日
  • 美区Apple ID充值攻略:支付宝购买美区App Store礼品卡(2025年更新)

    💰创作的小伙伴们!💰 引力圈 UniFans 是唯一可以提现人民币的国际平台!给你的海外粉丝一个机会支持你! ⭐ 不需要翻墙 ⭐ 提供比PayPal更优的费率 ⭐ 支持USDT稳定…

    2025年2月25日
  • 亚马逊卖家费用详解(包括隐藏费用)

    在这篇文章中,我们将全面解析亚马逊卖家的所有费用,从A到Z为您提供清晰的费用结构,帮助您更好地规划自己的亚马逊业务,确保盈利。 亚马逊卖家费用分类 亚马逊卖家的费用主要分为三大类:…

    文章 2025年4月20日
  • Bento虚拟卡平台

    Bento为企业提供一体化的财务管理解决方案,专注于通过虚拟卡和企业卡简化支出管理。该平台通过自动化报销、设置支出限制和实时交易跟踪,帮助企业降低不必要的开支,提高财务透明度和效率…

    文章 2025年2月11日
  • 虚拟信用卡消费与还款指南

    虚拟信用卡的消费方式 工行虚拟信用卡的使用 要使用工行虚拟信用卡,首先需要将工行实体信用卡绑定到 Apple Pay 或华为 Pay。完成绑定后,开启相应的支付应用,将手机靠近银联…

    文章 2025年3月14日
  • 2025年 ChatGPT Plus 升级指南

    虽然 ChatGPT 4.0 已经推出一段时间,但由于某些原因,国内仍有许多人未能体验到这一版本。本文将为您提供一键升级 ChatGPT Plus 的详细步骤。在开始之前,请确保您…

    文章 2025年8月11日