SuperAPI AI 工具集

kortix-system

部署与运维

查看项目

更新于 10-15 23:47

技能介绍

Kortix 沙箱系统架构参考,用于说明该沙箱容器如何运行。容器基于 lscr.io/linuxserver/webtop:latest(Alpine Linux + XFCE + noVNC),使用 s6-overlay v3(s6-rc.d)管理进程,入口为 /opt/startup.sh,以 unshare --pid --fork /init 启动,服务以 abc(UID 1000)运行。

关键路径:/workspace 为 Docker 卷,是重启后唯一保留用户数据的目录;/opt/opencode 存放 agents、tools、skills、plugins 与 opencode.jsonc;/opt/kortix-master 为主代理、密钥存储与部署服务;/app/secrets 为加密密钥卷。仅 /workspace 与 /app/secrets 持久化,/opt、/usr、/etc、/tmp 在重建时重置,apk add 或全局 npm 安装的包会丢失。

项目即 git 仓库,自动识别:向上查找 .git,取根提交 SHA 作为稳定项目 ID,并缓存于 .git/opencode;无 git 时回退为 global。启动及定期扫描 $KORTIX_WORKSPACE 发现仓库。会话通过 projectID 归属项目;提供 GET /project、GET /project/current、PATCH /project/:projectID 接口。

服务由 s6-rc.d 长驻管理,脚本位于 /etc/s6-overlay/s6-rc.d/svc-*/run。Kortix Master 运行于 8000(宿主 14000),负责反向代理、密钥存储与部署;OpenCode Web 为 3111(宿主 14001);OpenCode Serve 为 4096(经 8000 代理);noVNC 桌面为 6080/6081(宿主 14002/14003);演示查看器 3210(14004);浏览器流 9223(14005);浏览器查看器 9224(14006);lss-sync 为文件监听索引进程。

Kortix Master 使用 localhost 免认证模型:容器内经 localhost:8000 调用无需令牌;外部需 Bearer $INTERNAL_SERVICE_KEY 或 ?token=。INTERNAL_SERVICE_KEY 用于外部访问沙箱,KORTIX_TOKEN 用于沙箱向外调用并作为密钥加密键。/kortix/health、/docs、/docs/openapi.json 始终开放。动态端口代理 /proxy/:port/* 会注入 Service Worker 并支持 WebSocket 升级。

环境变量涵盖配置、Agent Browser、云模式等;ENV_MODE=cloud 时 98-kortix-env 会重写 TAVILY_API_URL、SERPER_API_URL、FIRECRAWL_API_URL、REPLICATE_API_URL、CONTEXT7_API_URL 等至 Kortix API 路由。密钥采用 AES-256-GCM 加密存储于独立卷,经 /run/s6/container_environment 注入服务,可通过 localhost:8000/env 增删改查。

集成工具共 7 个(list、search、connect、actions、run、exec、request),经 Kortix Master 转发至 Kortix API 与 Pipedream,由代理自动注入 OAuth,自定义调用应使用 proxyFetch。部署分本地部署器与云端部署 API(*.style.dev),支持 git、code、files、tar 四种来源,仅 Node.js 且须监听 3000 端口;具体请求字段见资料所示 schema。缺失信息暂未提供。