mirror of
https://github.com/Dokploy/templates.git
synced 2026-07-15 14:52:05 -05:00
[PR #1018] [MERGED] feat: add Dify template #16326
Reference in New Issue
Block a user
Delete Branch "%!s()"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
📋 Pull Request Information
Original PR: https://github.com/Dokploy/templates/pull/1018
Author: @Siumauricio
Created: 7/14/2026
Status: ✅ Merged
Merged: 7/14/2026
Merged by: @Siumauricio
Base:
canary← Head:feat/dify📝 Commits (1)
1c2dea3feat: add Dify template📊 Changes
5 files changed (+468 additions, -0 deletions)
View changed files
➕
blueprints/dify/docker-compose.yml(+256 -0)➕
blueprints/dify/instructions.md(+15 -0)➕
blueprints/dify/logo.svg(+12 -0)➕
blueprints/dify/meta.json(+17 -0)➕
blueprints/dify/template.toml(+168 -0)📄 Description
What
Adds a Dify 1.15.0 template (open-source LLM app development platform).
Closes #88
Architecture decisions
The upstream
docker/docker-compose.yamlis huge (20+ services across profiles). This template ships the minimal functional stack, adapted for Dokploy:nginxnginx:1.27-alpine/console/api,/api,/v1,/openapi,/files,/mcp,/triggers,/e/-> plugin daemon,/-> web). Traefik terminates TLS and forwards everything to this single entrypoint.api/worker/worker_beatlanggenius/dify-api:1.15.0weblanggenius/dify-web:1.15.0dbpgvector/pgvector:pg16difyDB, the plugin daemon DB (dify_plugin, auto-created by the daemon) and as the vector store (VECTOR_STORE=pgvector, first-class supported by Dify). This removes the whole Weaviate container from the stack.redisredis:6-alpinesandboxlanggenius/dify-sandbox:0.2.15ssrf_proxyubuntu/squid:latestsquid.conf.templaterendered statically (no entrypoint hackery needed).plugin_daemonlanggenius/dify-plugin-daemon:0.6.3-localOther notes:
init_permissions(busybox) chowns the shared storage volume to uid 1001 once, mirroring the upstreaminit_permissionscontainer (the dify-api image runs as non-root and setup fails withPermission deniedotherwise).api_websocketservice +/socket.io) is disabled viaENABLE_COLLABORATION_MODE=falseto keep the stack smaller.SECRET_KEY, DB/Redis passwords, sandbox key, plugin daemon keys) are generated by template helpers.Evidence (deployed on a Dokploy instance)
done, all 10 containers running.GET /-> 200 (Dify web, redirects to the/installsetup page).GET /console/api/setup->{"step":"not_started","setup_at":null}; after creating the admin through the API ->{"step":"finished",...}.POST /console/api/setup(admin creation) ->{"result":"success"},POST /console/api/login-> session cookies issued.POST /console/api/apps-> chat app created successfully (DB roundtrip OK).POST /console/api/workspaces/current/plugin/install/marketplacewithlanggenius/openai:1.0.0-> tasksuccess, plugin listed in/plugin/listandopenaishows up in/model-providers(proves api -> plugin_daemon -> marketplace pipeline and the auto-createddify_plugindatabase all work).Note: Dify 1.15 issues
__Host-/Securesession cookies, so the console needs HTTPS on the domain — documented in the template'sinstructions.md.🤖 Generated with Claude Code
🔄 This issue represents a GitHub Pull Request. It cannot be merged through Gitea due to API limitations.