A code executor for Dify that is compatible with the official sandbox API calls and dependency installation.
- Supports Python 3.12
- Supports Node.js 20
While the official sandbox has many permission settings and is a better sandboxing solution, in personal use cases where Dify's code nodes are entirely self-edited, there's no risk of code injection. This project aims to provide broader permissions and support for more dependencies (like numpy>2.0, matplotlib, scikit-learn) to reduce confusing error messages. This code was developed by referencing the official sandbox's API call examples.
In the official docker-compose.yaml, locate the sandbox image section and replace it with:
sandbox:
# image: langgenius/dify-sandbox:0.2.10
image: svcvit/dify-sandbox-py:0.1.2
If you prefer to build the image yourself, you can clone this repository and run:
docker build -t dify-sandbox-py:local .
Then modify the sandbox image in docker-compose.yaml
to use dify-sandbox-py:local
Python support Node.js support Docker container logs
- Network access restrictions have been removed; network access is enabled by default
- Using UV as the dependency manager for faster package installation, allowing millisecond-level dependency installation on restart
- Third-party dependencies can be installed following the official method: simply add required dependencies to
/docker/volumes/sandbox/dependencies/python-requirements.txt
and restart the sandbox - The image only contains FastAPI-related dependencies. Any additional dependencies you need must be manually added to python-requirements.txt