不用顧 docker compose
API、worker、web、plugin 各是一個 App,各自重啟。
Dify 自架教學 · Agent Lab 部署
不用顧十個服務的 docker compose:說一句,Agent Lab 把 Dify 拆成 App 架好,接上 PostgreSQL(pgvector)和 Redis。
> 照 agentlab.cresclab.com/deploy/dify 幫我架 Dify
databases_createPostgreSQL 18 · L · pgvector
caches_createRedis · S
sites_createdify-api、dify-worker、dify-web、dify-plugin
sites_secrets_generateSECRET_KEY · 平台產生
sites_deploy_status四個 App 建置完成
Dify 跑起來了:dify-web--acme.hosting.agentlab.run。第一次開啟會請你設定管理員帳號。
為什麼自架
自架的訊息額度、知識庫與人數,看你自己的資源。
API、worker、web、plugin 各是一個 App,各自重啟。
向量存在同一個 PostgreSQL,不用另架 Weaviate。
模型金鑰存在你的資料庫;SECRET_KEY 由平台產生。
新版先在預覽網址跑,出問題一個動作回上一版。
怎麼選
表格可以左右滑動。
| 你最在意的事 | Agent Lab 部署 | Dify Cloud | 自己租 VPS |
|---|---|---|---|
| 額度 | 看你的資源 | 依方案限額 | 看你的主機 |
| 誰維運 | 平台 | Dify | 你自己 |
| 向量庫 | PostgreSQL pgvector | Dify 代管 | Weaviate,自己顧 |
| 資料在哪 | 你的 Agent Lab 組織 | Dify 的雲 | 你的主機 |
| 架設方式 | 對 AI 工具說一句 | 註冊 | docker compose 十個服務 |
怎麼架
從 Pro 方案開始。
在 AI 工具加一行 MCP 設定,登入一次。
Agent 建四個 App、PostgreSQL(pgvector)和 Redis 並接好。
S3 相容 bucket 的金鑰填在主控台專案密鑰。
開 dify-web 網址,設管理員、加模型金鑰。
架構
api 提供 API,worker 做索引,web 是介面,plugin 跑外掛;要程式碼節點再加 sandbox。
# 一個 Dify 由幾個 App 組成,每個一份 Dockerfile
# One Dify is several apps, one Dockerfile each
# dify-api
FROM langgenius/dify-api:latest
ENV MODE=api \
DB_TYPE=postgresql \
VECTOR_STORE=pgvector \
STORAGE_TYPE=s3
EXPOSE 5001
# dify-worker: same image, ENV MODE=worker
# dify-web: FROM langgenius/dify-web:latest (EXPOSE 3000)
# dify-plugin: FROM langgenius/dify-plugin-daemon:latest-localDB_HOST / DB_PORT / DB_DATABASE / DB_USERNAME / DB_PASSWORD databases_connect_app 寫入;需 pgvectorREDIS_HOST / REDIS_PORT / REDIS_PASSWORD caches_binding_connect 寫入SECRET_KEY sites_secrets_generate 產生,四個 App 共用S3_BUCKET_NAME / S3_ACCESS_KEY / S3_SECRET_KEY 上傳檔案儲存,在主控台密鑰填讀 https://app.agentlab.cresclab.com/agent/deploy.md,照 agentlab.cresclab.com/deploy/dify 把 Dify 部署到 Agent Lab:建 dify-api、dify-worker、dify-web、dify-plugin 四個 App;建一個 PostgreSQL(裝 pgvector)和一個 Redis 接上;SECRET_KEY 用平台產生;檔案存到我提供的 S3 bucket,金鑰告訴我去主控台哪裡填。完成後給我 Dify 的網址。常見問題