Cloudron makes it easy to run web apps like WordPress, Nextcloud, GitLab on your server. Find out more or install now.


Skip to content
  • Categories
  • Recent
  • Tags
  • Popular
  • Bookmarks
  • Search
Skins
  • Light
  • Brite
  • Cerulean
  • Cosmo
  • Flatly
  • Journal
  • Litera
  • Lumen
  • Lux
  • Materia
  • Minty
  • Morph
  • Pulse
  • Sandstone
  • Simplex
  • Sketchy
  • Spacelab
  • United
  • Yeti
  • Zephyr
  • Dark
  • Cyborg
  • Darkly
  • Quartz
  • Slate
  • Solar
  • Superhero
  • Vapor

  • Default (No Skin)
  • No Skin
Collapse
Brand Logo

Cloudron Forum

Offical apps | Community apps | Demo | Docs | Install
  1. Cloudron Forum
  2. App Wishlist
  3. Dify.ai, a self-hosted prompt-management tool

Dify.ai, a self-hosted prompt-management tool

Scheduled Pinned Locked Moved App Wishlist
43 Posts 12 Posters 15.5k Views 14 Watching
  • Oldest to Newest
  • Newest to Oldest
  • Most Votes
Reply
  • Reply as topic
Log in to reply
This topic has been deleted. Only users with topic management privileges can see it.
  • timconsidineT Offline
    timconsidineT Offline
    timconsidine
    App Dev
    wrote on last edited by
    #41

    Updated my Dify community app to upstream 1.14.2 with sandbox enabled

    https://communityapps.appx.uk/cloudron-dify/CloudronVersions.json

    I'm not a Dify expert. Started it mostly for RAG, but I use my own simpler more-focussed custom RAG apps. Looking for use cases for Dify.

    Indie app dev, huge fan of Cloudron PaaS, scratching my itches : communityapps.appx.uk

    1 Reply Last reply
    2
    • L Offline
      L Offline
      LoudLemur
      wrote on last edited by
      #42

      @timconsidine

      Bug report for the Cloudron Dify community package: plugins fail: "failed to find uv path"

      Package: io.timconsidine.dify (community), version 2.0.15, image forgejo.tcjc.uk/cca/cloudron-dify:2.0.15
      Cloudron: 9.x

      Symptom

      Installing any model-provider plugin from the Marketplace (e.g. Text Embedding Inference / langgenius/huggingface_tei) fails with:

      failed to launch plugin: failed to find uv path: failed to find uv path: exit status 1
      failed to init environment
      

      Because in Dify 2.0 every model provider is a Python plugin, this blocks all providers — embeddings, LLMs, and rerank — so the app can't be wired to any model.

      Root cause (verified in the running container)

      The image does not contain the uv binary, but the plugin daemon shells out to uv to build each plugin's Python venv.

      • which uv, find / -name uv -type f, /app/code/api/.venv/bin/uv, and python -c "import uv" all come up empty.
      • start.sh expects uv: it creates /app/data/cache/uv and /app/data/uv/python and exports UV_CACHE_DIR / UV_PYTHON_INSTALL_DIR, but the binary itself was never installed, and no UV_PATH is set.
      • The plugin daemon's PATH (inherited from start.sh → supervisord) is /app/code/api/.venv/bin:/usr/local/...:/usr/bin:... — all read-only, none containing uv.

      It is not fixable at runtime by the operator: the rootfs is read-only, and start.sh regenerates /app/data/api-env on every boot, so there is no persistent hook to add uv or UV_PATH.

      Suggested fix (image-side)

      Install uv into the image and make it discoverable to the plugin daemon. Any one of:

      1. In the Dockerfile, install uv into the API venv: pip install uv (puts uv in /app/code/api/.venv/bin, already on the daemon's PATH), or copy the static binary: COPY --from=ghcr.io/astral-sh/uv:latest /uv /usr/local/bin/uv.
      2. Optionally also export an explicit UV_PATH=/usr/local/bin/uv (or the venv path) in start.sh so the daemon doesn't rely on PATH lookup.

      After that, confirm a Marketplace plugin (e.g. langgenius/huggingface_tei) installs and a Rerank model can be added.

      Note

      Pin/ship a known uv version for reproducibility. This is the same class as langgenius/dify#19522, but here uv is genuinely absent from the image rather than mis-detected.

      timconsidineT 1 Reply Last reply
      0
      • L LoudLemur

        @timconsidine

        Bug report for the Cloudron Dify community package: plugins fail: "failed to find uv path"

        Package: io.timconsidine.dify (community), version 2.0.15, image forgejo.tcjc.uk/cca/cloudron-dify:2.0.15
        Cloudron: 9.x

        Symptom

        Installing any model-provider plugin from the Marketplace (e.g. Text Embedding Inference / langgenius/huggingface_tei) fails with:

        failed to launch plugin: failed to find uv path: failed to find uv path: exit status 1
        failed to init environment
        

        Because in Dify 2.0 every model provider is a Python plugin, this blocks all providers — embeddings, LLMs, and rerank — so the app can't be wired to any model.

        Root cause (verified in the running container)

        The image does not contain the uv binary, but the plugin daemon shells out to uv to build each plugin's Python venv.

        • which uv, find / -name uv -type f, /app/code/api/.venv/bin/uv, and python -c "import uv" all come up empty.
        • start.sh expects uv: it creates /app/data/cache/uv and /app/data/uv/python and exports UV_CACHE_DIR / UV_PYTHON_INSTALL_DIR, but the binary itself was never installed, and no UV_PATH is set.
        • The plugin daemon's PATH (inherited from start.sh → supervisord) is /app/code/api/.venv/bin:/usr/local/...:/usr/bin:... — all read-only, none containing uv.

        It is not fixable at runtime by the operator: the rootfs is read-only, and start.sh regenerates /app/data/api-env on every boot, so there is no persistent hook to add uv or UV_PATH.

        Suggested fix (image-side)

        Install uv into the image and make it discoverable to the plugin daemon. Any one of:

        1. In the Dockerfile, install uv into the API venv: pip install uv (puts uv in /app/code/api/.venv/bin, already on the daemon's PATH), or copy the static binary: COPY --from=ghcr.io/astral-sh/uv:latest /uv /usr/local/bin/uv.
        2. Optionally also export an explicit UV_PATH=/usr/local/bin/uv (or the venv path) in start.sh so the daemon doesn't rely on PATH lookup.

        After that, confirm a Marketplace plugin (e.g. langgenius/huggingface_tei) installs and a Rerank model can be added.

        Note

        Pin/ship a known uv version for reproducibility. This is the same class as langgenius/dify#19522, but here uv is genuinely absent from the image rather than mis-detected.

        timconsidineT Offline
        timconsidineT Offline
        timconsidine
        App Dev
        wrote on last edited by
        #43

        @LoudLemur away currently but will look into it in my return

        Indie app dev, huge fan of Cloudron PaaS, scratching my itches : communityapps.appx.uk

        1 Reply Last reply
        1

        Hello! It looks like you're interested in this conversation, but you don't have an account yet.

        Getting fed up of having to scroll through the same posts each visit? When you register for an account, you'll always come back to exactly where you were before, and choose to be notified of new replies (either via email, or push notification). You'll also be able to save bookmarks and upvote posts to show your appreciation to other community members.

        With your input, this post could be even better 💗

        Register Login
        Reply
        • Reply as topic
        Log in to reply
        • Oldest to Newest
        • Newest to Oldest
        • Most Votes


        • Login

        • Don't have an account? Register

        • Login or register to search.
        • First post
          Last post
        0
        • Categories
        • Recent
        • Tags
        • Popular
        • Bookmarks
        • Search