[Feature Request] Replace E2B with local Docker sandbox for self-hosted deployments

未關閉
#4,965 2 則留言 0 個 reaction 已指派 0 人 在 GitHub 檢視

維護者通常 1 天內回覆

還沒有人認領這個 Issue。

評估

難度
5/5
預估耗時
一週以上
新手友好度
35/100
Issue 類型
功能
描述清晰度
基本清楚
活躍度
活躍
技術堆疊
docker, kubernetes, nodejs, python, typescript

研究方向

The issue names no implementation files or tests; begin with the Function block and self-hosting Kubernetes documentation linked in References, then locate the current E2B execution entry point. Done means self-hosted deployments can execute imported JavaScript and Python in a local isolated sandbox without E2B, with the relevant behavior covered by tests.

由索引模型根據 Issue 內容生成。

描述

feature

Problem

In self-hosted Kubernetes deployments, the Function block shows:

"JavaScript code with import statements requires E2B to be enabled.
Please remove the import statements, or contact your administrator to enable E2B"

E2B is an external third-party cloud service. Self-hosted users should not
be forced to depend on an external paid service for basic code execution.

Feature Request

Add a local sandbox execution option for self-hosted instances — for example:

  • Spin up an isolated Docker/Kubernetes Job to execute the Function block code
  • Use Node.js child_process with --experimental-vm-modules for JS imports
  • Use a restricted Python container for Python execution

This would allow self-hosted users to use JavaScript imports and Python
in Function blocks without needing an E2B account or external dependency.

Why This Matters

  • Self-hosted users want full data privacy — no code leaving the cluster
  • E2B is a paid external service — adds cost and external dependency
  • Simple use cases (import lodash, import axios) don't need a full microVM

Alternatives Considered

  • E2B self-hosting via Terraform — too complex, requires AWS/GCP infra
  • Using fetch() only — limits what Function blocks can do

References

主要語言
TypeScript
星號
29.8k
分支
3.9k
平均合併
1 小時 44 分鐘
30 天內合併 PR
841

環境準備

這個專案沒有提供開發容器、Dockerfile 或貢獻指南,環境需要你自己搭建:先看它的 README,通用步驟見我們的新手貢獻指南。

從這裡開始

  1. 先讀完整個 Issue,再讀專案的貢獻指南。
  2. 在 Issue 下留言說明你要接手 —— 這能避免兩個人做同樣的事。
  3. Fork 儲存庫,在一個分支上完成修改。
  4. 送出 Pull Request,並在描述裡引用這個 Issue 編號。

simstudioai/sim 的其他 Issue

查看 simstudioai/sim 的全部 Issue

相似的 Issue

更多 TypeScript Issue

把新 issue 寄到你的電子郵件信箱

精選適合新手參與的 GitHub issue 摘要。