No description
- Shell 64.7%
- Dockerfile 35.3%
| Filename | Latest commit message | Latest commit date |
|---|---|---|
| .gitignore | ||
| CHANGELOG.md | ||
| CloudronManifest.json | ||
| CloudronVersions.json | ||
| Dockerfile | ||
| LICENSE | ||
| logo.png | ||
| nginx-main.conf | ||
| nginx.conf | ||
| POSTINSTALL.md | ||
| README.md | ||
| start.sh | ||
| supervisord.conf | ||
Dify for Cloudron
This is a Cloudron package for Dify, an open-source LLM app development platform.
Architecture
This package runs multiple Dify services within a single container using supervisord:
- API Server: Python/Flask (Port 5001)
- Web Frontend: Next.js (Port 3000)
- Worker: Celery worker for background tasks
- Beat: Celery scheduler
- Sandbox: Go-based code execution service (Port 8153)
- Plugin Daemon: Go-based plugin manager (Port 5002)
- Nginx: Reverse proxy to route traffic to the web frontend and API
Version
- Packaged upstream: Dify 1.16.0
- Sandbox runtime: langgenius/dify-sandbox 0.2.15
- Plugin daemon: 0.6.3
Data Persistence
- Application code is read-only in
/app/code. - All persistent data is stored in
/app/data. - Configuration files are generated in
/app/data/configand/app/data/api-env. - Uploaded files are in
/app/data/storage. - Plugin data is in
/app/data/plugin_storage. - Sandbox runtime data is in
/app/data/sandbox.
Development
Installation
This is a Community App which you can install through the Cloudron web interface.
Environment Variables
The start.sh script automatically generates the .env configuration for Dify based on Cloudron's environment variables (PostgreSQL, Redis, etc.).
Features
- Chat apps, workflows, agents, datasets, and knowledge-base features work.
- Plugin marketplace is enabled through the bundled plugin daemon.
- Code nodes now work through the packaged sandbox service.
- Playwright support is included for browser automation tasks.
- The experimental Dify Agent V2 stack introduced upstream in
1.16.0is not packaged here; this Cloudron build keeps that UI/runtime disabled.
Notes
- Dify Code nodes pass inputs to
main()by variable name. If a workflow input is namedtest, the Python function must accepttestas a parameter. - The sandbox process runs as
rootinside the container because upstream Dify sandbox requires privileged setup steps before applying its own isolation model. - Upstream
1.15.0+requires a plugin auto-upgrade backfill after DB migrations; this package runs it automatically during startup. - Upstream
1.16.0adds an experimental Agent V2 backend and local sandbox service; they are intentionally not enabled in this package yet.
Key files:
start.sh: Entrypoint script that sets up environment and permissions.supervisord.conf: Process manager configuration.nginx.conf: Nginx configuration for routing requests.Dockerfile: Multi-stage build definition.
License
This package is licensed under the MIT License. Dify itself is licensed under the modified version of the Apache 2.0 License.