Files
AIclinicalresearch/docs/05-部署文档/03-Dify-ECS部署完全指南.md
HaHafeng 1b53ab9d52 feat(aia): Complete AIA V2.0 with universal streaming capabilities
Major Changes:
- Add StreamingService with OpenAI Compatible format
- Upgrade Chat component V2 with Ant Design X integration
- Implement AIA module with 12 intelligent agents
- Update API routes to unified /api/v1 prefix
- Update system documentation

Backend (~1300 lines):
- common/streaming: OpenAI Compatible adapter
- modules/aia: 12 agents, conversation service, streaming integration
- Update route versions (RVW, PKB to v1)

Frontend (~3500 lines):
- modules/aia: AgentHub + ChatWorkspace (100% prototype restoration)
- shared/Chat: AIStreamChat, ThinkingBlock, useAIStream Hook
- Update API endpoints to v1

Documentation:
- AIA module status guide
- Universal capabilities catalog
- System overview updates
- All module documentation sync

Tested: Stream response verified, authentication working
Status: AIA V2.0 core completed (85%)
2026-01-14 19:15:01 +08:00

29 KiB
Raw Blame History

Dify ECS <20>函蔡摰<E894A1><E691B0><EFBFBD><EFBFBD><EFBFBD>

<EFBFBD><EFBFBD><EFBFBD><EFBFBD>𧋦: v1.1 (靽桀<E99DBD><E6A180>游𦶢<E6B8B8>滨蔭<E6BBA8>躰秤)
<EFBFBD>𥕦遣<EFBFBD>園𡢿: 2025-12-13
**<2A><><EFBFBD>𦒘耨霈?: 2025-12-13
<EFBFBD><EFBFBD><EFBFBD><EFBFBD>: AIclinicalresearch 撟喳蝱 - Dify RAG <20>滚𦛚<E6BB9A>函蔡
**<2A><EFBFBD>霂餉<E99C82>?
: 餈鞟輕撌亦<E6928C><EFBFBD><E692A3><EFBFBD><EFBFBD>蝡臬<E89DA1><E887AC>穃極蝔见<E89D94>

v1.1 <20>湔鰵<E6B994><EFBFBD>:

  • <EFBFBD>?靽桀<E99DBD>嚗鑹edis <20>滨蔭隞?localhost <20>嫣蛹 redis<EFBFBD><EFBFBD><EFBFBD>霂荔<EFBFBD>
  • <EFBFBD>?<3F><EFBFBD>嚗锭wap <20><><EFBFBD>滨蔭甇仿炊嚗<E7828A><E59A97><EFBFBD>?OOM嚗?- <20>?靽格迤嚗𡁜撩靚<E692A9><EFBFBD><EFBFBD><E585B8>?docker-compose.yaml嚗<6C><E59A97><EFBFBD>?Nginx 蝵穃<E89DB5>嚗?- <20>?摰<><E691B0>嚗𡁏<E59A97><F0A1818F>𨀣<EFBFBD><F0A880A3><EFBFBD><E4BAA6><EFBFBD><EFBFBD><EFBFBD><EFBFBD> Redis 餈墧𦻖憭梯揖<E6A2AF>?CORS <20>躰秤<E8BAB0><E7A7A4><EFBFBD>單䲮獢?

<EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>

  1. 銝箔<EFBFBD><EFBFBD><EFBFBD>㗇𥋘 ECS + Docker Compose
  2. [<5B>函蔡<E587BD><EFBFBD><E59786>霄(#<23>函蔡<E587BD><EFBFBD><E59786>?
  3. <EFBFBD>滨蔭<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
  4. [ECS <20>滚𦛚<E6BB9A><EFBFBD>蝵孫(#ecs-<2D>滚𦛚<E6BB9A><EFBFBD>蝵?
  5. 摰㕑<EFBFBD>甇仿炊
  6. <EFBFBD>滨蔭霂湔<EFBFBD>
  7. [<5B>臬𢆡銝𡡞<E98A9D><EFBFBD>(#<23>臬𢆡銝𡡞<E98A9D>霂?
  8. [<5B>烐綉銝𡒊輕<F0A1928A>也(#<23>烐綉銝𡒊輕<F0A1928A>?
  9. <EFBFBD><EFBFBD><EFBFBD><EFBFBD>埝䰻
  10. [瘜冽<E7989C>鈭钅★銝𡒊<E98A9D>敹䀉(#瘜冽<E7989C>鈭钅★銝𡒊<E98A9D>敹?

銝箔<EFBFBD><EFBFBD><EFBFBD>㗇𥋘 ECS + Docker Compose

<EFBFBD>?<3F><EFBFBD><E8A9A8><EFBFBD>

1. *<EFBFBD>唳旿<EFBFBD><EFBFBD><EFBFBD>銝𡡞<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>銵䔶<EFBFBD>瑪嚗?

<EFBFBD>?Dify 鈭烐<E988AD><E78390>?(SaaS)嚗𡁏㺭<F0A1818F><EFBFBD>隡惩<E99AA1>蝚砌<E89D9A><E7A08C><EFBFBD><E5AF9E><0A>?ECS <20>芸遣嚗𡁏㺭<F0A1818F>?100% <20>刻䌊撌梁<E6928C><E6A281><EFBFBD>鈭𤏸揭<F0A48FB8><EFBFBD>

**敶勗<E695B6>**嚗?- 銝厩睻<E58EA9>駁堺撖寧<E69296><E5AFA7>娍㺭<E5A88D>桀枂<E6A180><EFBFBD><EFBCB8><EFBFBD><EFBFBD>潛恣<E6BD9B>?- <20>典虾隞亙笆摰<E691B0>霂湛<E99C82>"<22>唳旿撠勗銁<E58B97>睲賑<E79DB2><E8B391><EFBFBD><EFBFBD><EFBFBD><E58A90>滚𦛚<E6BB9A><EFBFBD>嚗峕𧊋<E5B395>亙虾<E4BA99>函蔡<E587BD>典龫<E585B8><EFBFBD>蝵?

  • 蝚血<EFBFBD> PRD 銝剔<E98A9D><E58994><EFBFBD><EFBFBD><E996AC>嚗?<3F>唳旿 100% <20>砍𧑐"

2. *<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>函蔡<EFBFBD><EFBFBD>嚗?

<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>嚗㇊RD嚗?
  <20><EFBFBD> SaaS <20><><EFBFBD>憭𡁶<E686AD><F0A181B6><EFBFBD>
  <20><EFBFBD><><E89D98><EFBFBD><EFBFBD>蝵莎<E89DB5><E88E8E>駁堺<E9A781><E5A0BA><EFBFBD>嚗?  <20><EFBFBD> <20>閙㦤<E99699><E3A6A4><EFBFBD>Windows/Mac嚗?```

**<2A>喲睸**嚗?- Dify 鈭烐<E988AD><E78390><EFBFBD>瘜閧<E7989C><E996A7><EFBFBD>鈭支<E988AD><EFBFBD><EFBFBD><EFBFBD>蝵烐<E89DB5>瘜閗<E7989C><E99697><EFBFBD><E4BA99><EFBFBD>嚗?- ECS + Docker Compose <20>臭誑<E887AD>湔𦻖<E6B994><EFBFBD><E69E8F>𣂼<EFBFBD><EFBFBD><E98B86><EFBFBD><E59A97>蝏坔龫<E59D94><EFBFBD><EFBFBD><E89D98><EFBFBD><EFBFBD>蝵?- <20>函緵<E587BD><EFBFBD><E587BD><EFBFBD><E59786><EFBFBD>嚗峕糓<E5B395>其蛹<E585B6>芣䔉<E88AA3><E49489><EFBFBD>銝𡁏芋撘誯唍頝?
#### 3. **<2A><><EFBFBD><EFBFBD>蝘餅<E89D98><E9A485>穿<EFBFBD><E7A9BF><EFBFBD>"隞亙<E99A9E><E4BA99><EFBFBD><E6BB9A>墧䔉"<22><><EFBFBD><EFBFBD>**

RAG 蝟餌<E89D9F><EFBFBD><EFBFBD><E5AE8F><EFBFBD><EFBFBD><EFBFBD>漲嚗? 1. <20><>﹝鋡怠<E98BA1><E680A0>?(Chunking) 2. <20><><EFBFBD>鋡怠<E98BA1><E680A0><EFBFBD> (Embedding) 3. 摮睃<E691AE><E79D83><EFBFBD><E785BE>唳旿摨?(Weaviate/Qdrant) 4. Dify 鈭烐<E988AD><E78390><EFBFBD><E288A0><EFBFBD><E785BE>唳旿敺<E697BF>𠗕<EFBFBD><EFBFBD>撖澆枂


**<2A><EFBFBD>**嚗? 銝芣<E98A9D><E88AA3><EFBFBD><E693A7><EFBFBD><EFBFBD><EFBFBD>芸遣嚗<E981A3><EFBFBD>賡𢒰銝湔<E98A9D><E6B994>厩䰻霂<E4B0BB><E99C82><EFBFBD><EFBFBD><EFBFBD><E996AC><EFBFBD><EFBFBD>隡𨬭<E99AA1><F0A8ACAD><EFBFBD><EFBFBD>啗圾<E59597><EFBFBD><E58390><EFBFBD><EFBFBD><EFBFBD><E595A3>?
#### 4. **蝵𤑳<E89DB5><F0A491B3><EFBFBD>銝擧<E98A9D><E693A7>?*

| 頝臬<E9A09D>撖寞<E69296> | Dify 鈭烐<E988AD><E78390>?| ECS <20>芸遣 |
|---------|-----------|---------|
| 蝵𤑳<E89DB5>頝臬<E9A09D> | SAE <20>?<3F><EFBFBD> <20>?Dify <20>?<3F><EFBFBD> <20>?SAE | SAE <20>?<3F><EFBFBD>鈭穃<E988AD>蝵?VPC) <20>?ECS |
| 撱嗆𧒄 | 100-300ms | 1-5ms |
| 瘚<><E7989A><EFBFBD>鞉𧋦 | 瘨<><E798A8><EFBFBD>蝵穃蒂摰?| <20><><EFBFBD><EFBFBD>滩晶 |
| 憭扳<E686AD>隞嗅<E99A9E><E59785>?| <20><EFBFBD>銝滨迅摰?| 瘥怎<E798A5>蝥批<E89DA5>摨?|

**敶勗<E695B6><E58B97>箸艶**嚗?- PKB 璅<E79285><E288AA><EFBFBD><EFBFBD>𤩺<EFBFBD><EFBFBD><E78DA2>隡?- ASL 璅<E79285><E288AA><EFBFBD>楛摨阡<E691A8>霂?(Deep Read)
- 憭折<E686AD><E68A98><EFBFBD><EFBFBD><EFB99D><EFBFBD><EFBFBD><EFBFBD><EFBFBD><E686AD>

---

## <20>函蔡<E587BD><EFBFBD><E59786>?

<EFBFBD>𢞖<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>?<3F>? <20><EFBFBD>鈭?VPC (<28><EFBFBD><E494B6><EFBFBD>) <20>?<3F>? <20>?<3F>? <20>𢞖<EFBFBD><F0A29E96><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>? <20>𢞖<EFBFBD><F0A29E96><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>? <20>?<3F>? <20>? SAE (<28>𡒊垢) <20>?<3F>𣂼<EFBFBD>蝵爗<E89DB5> <20>? ECS (Dify <20>滚𦛚) <20>? <20>?<3F>? <20>? <20>? <20>? <20>? <20>?<3F>? <20>? Node.js <20>? <20>? <20>𢞖<EFBFBD><F0A29E96><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>? <20>? <20>?<3F>? <20>? Backend <20>? <20>? <20>? Docker Compose: <20>? <20>? <20>?<3F>? <20>? <20>? <20>? <20>? - Dify API <20>? <20>? <20>?<3F>? <20>? <20>? <20>? <20>? - Weaviate (<28><EFBFBD>DB) <20>? <20>? <20>?<3F>? <20>? <20>? <20>? <20>? - Nginx (<28><EFBFBD><EFBFBD><E99A9E>) <20>? <20>? <20>?<3F>? <20>? <20>? <20>? <20><EFBFBD><E5A999><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>? <20>? <20>?<3F>? <20><EFBFBD><E5A999><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>? <20><EFBFBD><E5A999><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>? <20>?<3F>? <20>? <20>?<3F>? <20><EFBFBD><E5A999><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>? RDS PostgreSQL 15 <20>?<3F>? (<28>曹澈<E69BB9>唳旿摨? <20>?<3F><EFBFBD><E5A999><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>?```

**<2A>喲睸<E596B2>?*嚗?- SAE <20>?ECS 敹<><EFBFBD><EFBFBD><EFBFBD>銝?VPC嚗<43><E59A97>蝵煾<E89DB5>帋縑嚗?- Dify <20>?PostgreSQL <20>唳旿摨枏虾隞亙<E99A9E><E4BA99>𡒊垢<F0A1928A>梁鍂<E6A281><EFBFBD>銝?RDS 摰硺<E691B0><EFBFBD><E59A97><EFBFBD>?Schema嚗?- <20><EFBFBD><E785BE>唳旿摨?Weaviate 餈鞱<E9A488><E99EB1>?ECS <20>?Docker 銝?

<EFBFBD>滨蔭<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>

<EFBFBD>?敹<><E695B9><EFBFBD><E99F8F>

<EFBFBD><EFBFBD>蝐餃<EFBFBD> <EFBFBD>滨蔭撱箄悅 <EFBFBD>摯韐寧鍂 <EFBFBD><EFBFBD>?
*ECS <20>滚𦛚<E6BB9A>? 2<EFBFBD>?G / 蝟餌<E89D9F><E9A48C>?0GB / <20>唳旿<E594B3>?00GB ~200<30>?<3F>? 餈鞱<EFBFBD> Dify + Weaviate
RDS PostgreSQL 撌脫<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> 0<EFBFBD><EFBFBD><EFBFBD>憓鮋<EFBFBD>嚗? Dify <20><><EFBFBD><EFBFBD><E6A180>?
OSS 摮睃<E691AE> 撌脫<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD>霈∟晶 <EFBFBD><EFBFBD>﹝摮睃<EFBFBD>
VPC 蝵𤑳<E89DB5> 撌脫<EFBFBD>嚗𠄎AE<EFBFBD><EFBFBD><EFBFBD>汲PC嚗? 0<EFBFBD>? <EFBFBD><EFBFBD><EFBFBD><EFBFBD>帋縑

<EFBFBD>?頧臭辣<E887AD><E8BEA3><EFBFBD>

# <20>砍𧑐撘<F0A79190><E69298>烐㦤<E78390><EFBFBD><EFBFBD><E996AC><EFBFBD><E98B86><EFBFBD><EFBFBD><E585B6><EFBFBD><E588B8><EFBFBD><EFBFBD>𧶏<EFBFBD>
- Docker Desktop
- <20><EFBFBD>鈭?CLI嚗<49><EFBFBD><EFBFBD>

# ECS <20>滚𦛚<E6BB9A><EFBFBD><EFBFBD><E996AC><EFBFBD><E98B86>餈𦦵<E9A488><F0A6A6B5><EFBFBD>嚗?- Docker Engine
- Docker Compose

<EFBFBD>?韐血噡銝擧<E98A9D><E693A7>?

  • <EFBFBD><EFBFBD>鈭𤏸揭<EFBFBD><EFBFBD>撌脫<EFBFBD>嚗?- ECS <20><EFBFBD><E9A483><EFBFBD>嚗𠄎SH撖<48>𤨎撖對<E69296>
  • Docker <20>𨅯<EFBFBD>隞枏<E99A9E><EFBFBD><EFBFBD><EFBFBD>摰孵膥<E5ADB5>𨅯<EFBFBD><F0A885AF>滚𦛚 ACR嚗?

ECS <20>滚𦛚<E6BB9A><EFBFBD>蝵?

甇仿炊 1嚗朞揚銋?ECS 摰硺<E691B0>

  1. <EFBFBD><EFBFBD><EFBFBD><EFBFBD>鈭烐綉<EFBFBD>嗅蝱 <20>?鈭烐<EFBFBD><EFBFBD>膥 ECS <20>?<EFBFBD>𥕦遣摰硺<EFBFBD>

  2. <EFBFBD><EFBFBD><EFBFBD>滨蔭嚗? ``` <0A><EFBFBD><E595A3><EFBFBD><EFBFBD>典躹: 銝?SAE <20><EFBFBD><EFBFBD><E59A97>嚗𡁜<E59A97>銝?-<2D><EFBFBD>嚗? 摰硺<E691B0><EFBFBD>聢: ecs.t6-c1m2.large (2<>?G) <0A>𨅯<EFBFBD>: Ubuntu 22.04 LTS 64雿? 摮睃<E691AE>:

    • 蝟餌<EFBFBD><EFBFBD>? ESSD鈭𤑳<E988AD> 40GB
    • <EFBFBD>唳旿<EFBFBD>? ESSD鈭𤑳<E988AD> 100GB (<28><><EFBFBD>?/data)
    
    
  3. 蝵𤑳<EFBFBD><EFBFBD>滨蔭嚗? ``` 銝𤘪<E98A9D>蝵𤑳<E89DB5> VPC: <20>㗇𥋘 SAE <20><><EFBFBD><EFBFBD> VPC 摰匧<E691B0>蝏? <20>𥕦遣<F0A595A6><EFBFBD><E595A3><EFBFBD>嚗屸<E59A97>蝵桀<E89DB5><E6A180><EFBFBD><EFBFBD><E996AB><EFBFBD><E59A97>儭?摰匧<E691B0>瑪嚗㚁<E59A97> <0A>?<3F><>捂 22/TCP <20><EFBFBD>嚗𡁏<E59A97><F0A1818F><EFBFBD><EFBFBD><EFBFBD>砍恕<E7A08D><EFBFBD>IP # SSH蝞∠<E89D9E> <0A>?<3F><>捂 80/TCP <20><EFBFBD>嚗?72.17.0.0/16 # Nginx嚗ĀPC<50><43><EFBFBD>霈輸䔮嚗? <20>?<3F><EFBFBD> 5000/TCP <20><EFBFBD>嚗?.0.0.0/0 # Dify API蝳<49><EFBFBD><EFBFBD>霈輸䔮 <0A>?<3F><EFBFBD> 6379/TCP <20><EFBFBD>嚗?.0.0.0/0 # Redis蝳<73><EFBFBD><EFBFBD>霈輸䔮 <0A>?<3F><EFBFBD> 8080/TCP <20><EFBFBD>嚗?.0.0.0/0 # Weaviate蝳<65><EFBFBD><EFBFBD>霈輸䔮 <0A>?<3F><EFBFBD> <20><><EFBFBD>? <20><EFBFBD>嚗?.0.0.0/0 # 暺䁅恕<E48185><EFBFBD> <0A><EFBFBD>IP: <20><><EFBFBD><EFBFBD><EFBFBD>IPv4<76><EFBFBD><EFBFBD>鍂鈭燑SH<53><EFBFBD><E9A483><EFBFBD><E5B1B8><EFBFBD>頧踝<E9A0A7>

    <EFBFBD>𩤃<EFBFBD> 摰匧<E691B0>霅血<E99C85>嚗? - Dify API (5000)<29><>edis (6379)<29><>eaviate (8080) 蝏嘥笆銝滩<E98A9D>撖孵<E69296>蝵穃<E89DB5><E7A983>? - <20><EFBFBD>霈禽PC<50><43><EFBFBD>霈輸䔮嚗?72.17.0.0/16嚗? - 蝡臬藁蝏穃<E89D8F><E7A983>?127.0.0.1嚗<EFBFBD><EFBFBD>docker-compose.yaml<6D>滨蔭嚗? ```

  4. 蝟餌<EFBFBD><EFBFBD>滨蔭嚗? ``` <0A><EFBFBD><E9A483><EFBFBD>: 雿輻鍂撖<E98D82>𤨎撖對<E69296><E5B08D><EFBFBD>嚗㗇<E59A97><EFBFBD><E69296> 摰硺<E691B0><E7A1BA>滨妍: dify-ecs-prod

    
    

甇仿炊 2嚗朞<E59A97><E69C9E><EFBFBD> ECS

# Windows <20><EFBFBD>雿輻鍂 PowerShell <20>?Git Bash
ssh -i "your-key.pem" root@<ECS<43><EFBFBD>IP>

# 擐𡝗活<F0A19D97><EFBFBD><E9A483>𠬍<EFBFBD><F0A0AC8D>湔鰵蝟餌<E89D9F>
apt update && apt upgrade -y

甇仿炊 3嚗𡁏<E59A97>頧賣㺭<E8B3A3><EFBFBD>

# <20><EFBFBD><EFBFBD><E89DA4>
lsblk

# <20><EFBFBD><E6BE86>𡝗㺭<F0A19D97><EFBFBD><EFBFBD><E59A97>霈曆蛹 /dev/vdb嚗?mkfs.ext4 /dev/vdb

# <20>𥕦遣<F0A595A6><E981A3><EFBFBD>?mkdir -p /data

# <20><>
mount /dev/vdb /data

# 霈曄蔭撘<E894AD><E69298>箄䌊<E7AE84><EFBFBD>頧?echo '/dev/vdb /data ext4 defaults 0 0' >> /etc/fstab

# 撉諹<E69289>
df -h

甇仿炊 4嚗𡁻<E59A97>蝵?Swap <20><>躹嚗<E8BAB9><E59A97><EFBFBD><EFBFBD><E6AEB7><EFBFBD> OOM嚗?

*銝箔<EFBFBD><EFBFBD><EFBFBD>憿駁<EFBFBD>蝵?Swap嚗?

  • <EFBFBD><EFBFBD> ECS <20>?2<>?G <20><><EFBFBD>
  • Dify <20>典振獢塚<E78DA2>API+Worker+Web+Redis+Weaviate+Nginx嚗厩征頧賢停<E8B3A2><E5819C>閬?3GB+
  • <EFBFBD>劐犖銝𠹺<EFBFBD>憭扳<EFBFBD>隞嗆<EFBFBD>餈𥡝<EFBFBD><EFBFBD><EFBFBD><EFBFBD>𧒄嚗峕<EFBFBD><EFBFBD><EFBFBD><EFBFBD>?OOM嚗<4D><E59A97>摮䀹滯<E480B9><EFBFBD>撏拇<E6928F>
  • Swap <20><EFBFBD>摮条<E691AE>"<22>𤑳<EFBFBD><F0A491B3>?嚗<><E59A97><EFBFBD>格𧒄<E6A0BC><EFBFBD>靽肽<E99DBD><E882BD>滚𦛚銝滚援皞?
# <20>𥕦遣 4GB Swap <20><>
fallocate -l 4G /swapfile

# 霈曄蔭<E69B84><E894AD><EFBFBD><EFBFBD><E59A97>憿餅糓 600嚗<30><EFBFBD><EFBFBD>摰匧<E691B0>嚗?chmod 600 /swapfile

# <20><EFBFBD><E6BE86>碶蛹 Swap
mkswap /swapfile

# <20>舐鍂 Swap
swapon /swapfile

# 霈曄蔭撘<E894AD><E69298>箄䌊<E7AE84><EFBFBD>頧?echo '/swapfile none swap sw 0 0' >> /etc/fstab

# 撉諹<E69289> Swap 撌脣鍳<E884A3>?free -h
# 摨磰砲<E7A3B0><EFBFBD> Swap 銝<>銵峕遬蝷?4GB

# 隡睃<E99AA1> Swap 雿輻鍂蝑𣇉裦嚗<E8A3A6><EFBFBD><EFBFBD>
# swappiness=10 銵函內撠賡<E692A0>雿輻鍂<E8BCBB><EFBFBD><E68B8D><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>𧒄<EFBFBD>?Swap
echo 'vm.swappiness=10' >> /etc/sysctl.conf
sysctl -p

甇仿炊 5嚗𡁜<E59A97>鋆?Docker

# 1. <20>貉蝸<E8B289><EFBFBD><E68A92>穿<EFBFBD><EFBFBD><E68692><EFBFBD><EFBFBD>
apt remove docker docker-engine docker.io containerd runc

# 2. 摰㕑<E691B0>靘肽<E99D98>
apt install -y ca-certificates curl gnupg lsb-release

# 3. 瘛餃<E7989B> Docker 摰䀹䲮 GPG key
mkdir -p /etc/apt/keyrings
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | gpg --dearmor -o /etc/apt/keyrings/docker.gpg

# 4. 霈曄蔭 Docker 隞枏<E99A9E>
echo \
  "deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.gpg] https://download.docker.com/linux/ubuntu \
  $(lsb_release -cs) stable" | tee /etc/apt/sources.list.d/docker.list > /dev/null

# 5. 摰㕑<E691B0> Docker Engine
apt update
apt install -y docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin

# 6. <20>臬𢆡 Docker
systemctl start docker
systemctl enable docker

# 7. 撉諹<E69289>摰㕑<E691B0>
docker --version
docker compose version

甇仿炊 6嚗𡁻<E59A97>蝵?Docker <20>𨅯<EFBFBD><F0A885AF>𣳇<EFBFBD><F0A3B387><EFBFBD><EFBFBD><EFBFBD><EFBFBD><E58A90><EFBFBD>嚗?

# <20><EFBFBD>鈭煾<E988AD><E785BE><EFBFBD><E8AAA9>笔膥嚗<E886A5>蒈敶閖燵<E99696><EFBFBD><E494B6><EFBFBD><E689B9>啗繮<E59597><EFBFBD>撅𧼮𧑐<F0A7BCAE><F0A79190>嚗?mkdir -p /etc/docker
cat > /etc/docker/daemon.json <<EOF
{
  "registry-mirrors": ["https://<your-id>.mirror.aliyuncs.com"]
}
EOF

systemctl daemon-reload
systemctl restart docker

摰㕑<EFBFBD>甇仿炊

甇仿炊 1嚗𡁜<E59A97>憭?Dify <20>函蔡<E587BD><EFBFBD>

# <20>?ECS 銝𠰴<E98A9D>撱箇𤌍敶?mkdir -p /data/dify
cd /data/dify

# <20><EFBFBD> Dify 摰䀹䲮隞枏<E99A9E><EFBFBD><EFBFBD>函迅摰𡁶<E691B0><F0A181B6>穿<EFBFBD>
git clone https://github.com/langgenius/dify.git
cd dify

# <20><><EFBFBD>啁迅摰𡁶<E691B0><F0A181B6>穿<EFBFBD>撱箄悅雿輻鍂<E8BCBB><E98D82><EFBFBD><EFBFBD> release <20><>𧋦嚗?git checkout tags/0.11.2  # <20>踵揢銝箸<E98A9D><E7AEB8>啁迅摰𡁶<E691B0><F0A181B6>?
# 餈𥕦<E9A488> docker <20><EFBFBD>
cd docker

# <20>𩤃<EFBFBD> <20><EFBFBD>嚗帋蝙<E5B88B><EFBFBD><E585B8><EFBFBD> docker-compose.yaml
# 銝滩<E98A9D><E6BBA9>芸楛<E88AB8><EFBFBD><E8A781>硋之撟<E4B98B><E6929F><EFBFBD>𧶏<EFBFBD>摰䀹䲮<E480B9>滨蔭<E6BBA8><E894AD>鉄鈭<E98984><E988AD><EFBFBD><EFBFBD><E6B8A1>滚𦛚嚗<F0A69B9A>鉄 Nginx 蝵穃<E89DB5>嚗?```

### 甇仿炊 2嚗𡁻<E59A97>蝵桃㴓憓<E3B493><E68693><EFBFBD>?
```bash
# 憭滚<E686AD><E6BB9A>滨蔭璅⊥踎
cp .env.example .env

# 蝻𤥁<E89DBB><F0A4A581>滨蔭<E6BBA8><E894AD>
nano .env

**<2A>喲睸<E596B2>滨蔭憿?*嚗<><E59A97>憿颱耨<E9A2B1><EFBFBD>嚗?

# ========= <20><EFBFBD><E8A9A8>滨蔭 =========
# 摰㕑<E691B0><E79285>嚗窃elf-hosted嚗<64>䌊撱綽<E692B1>
INSTALL_MODE=self-hosted

# 撖<>𤨎嚗<F0A4A88E><E59A97>憿颱耨<E9A2B1><EFBFBD>雿輻鍂撘箏<E69298><E7AE8F><EFBFBD><EFBFBD>
SECRET_KEY=<<3C><><EFBFBD><EFBFBD>銝芷<E98A9D><E88AB7><EFBFBD>蝚虫葡嚗諹秐撠?2雿?
# <20><><EFBFBD><EFBFBD><EFBFBD>嚗駅penssl rand -base64 32

# ========= <20>唳旿摨㯄<E691A8>蝵?=========
# 雿輻鍂<E8BCBB><EFBFBD>鈭?RDS PostgreSQL
DB_TYPE=postgres
DB_HOST=<RDS<44><53><EFBFBD><EFBFBD><EFBFBD><EFBFBD><E59A97>嚗鬏m-xxxx.pg.rds.aliyuncs.com>
DB_PORT=5432
DB_NAME=dify_prod
DB_USERNAME=dify_user
DB_PASSWORD=<your-password>

# 瘜冽<E7989C>嚗𡁻<E59A97><EFBFBD>銁 RDS 銝剖<E98A9D>撱箏<E692B1><E7AE8F><EFBFBD><E7A589>唳旿摨枏<E691A8><E69E8F><EFBFBD>
# <20><EFBFBD>嚗鋴REATE DATABASE dify_prod;
#       CREATE USER dify_user WITH PASSWORD 'your-password';
#       GRANT ALL PRIVILEGES ON DATABASE dify_prod TO dify_user;

# ========= Redis <20>滨蔭 =========
# Dify 敹<>◆雿輻鍂 Redis嚗<73><E59A97><EFBFBD>賜鍂 Postgres-Only嚗?# <20>𩤃<EFBFBD> <20><EFBFBD>嚗𡁜銁 Docker Compose 蝵𤑳<E89DB5>銝哨<E98A9D>雿輻鍂<E8BCBB>滚𦛚<E6BB9A><EFBFBD><EFBFBD><E494B6>?localhost嚗?REDIS_HOST=redis
REDIS_PORT=6379
REDIS_PASSWORD=<strong-password>

# ========= <20><EFBFBD><E785BE>唳旿摨㯄<E691A8>蝵?=========
# 雿輻鍂 Weaviate嚗㇄ocker Compose <20>芸𢆡<E88AB8>臬𢆡嚗?VECTOR_STORE=weaviate
WEAVIATE_ENDPOINT=http://weaviate:8080
WEAVIATE_API_KEY=<<3C><><EFBFBD><EFBFBD>銝芷<E98A9D><E88AB7><EFBFBD>蝚虫葡>

# ========= 摮睃<E691AE><E79D83>滨蔭 =========
# 雿輻鍂<E8BCBB><EFBFBD>鈭?OSS嚗<53><EFBFBD><EFBFBD>
STORAGE_TYPE=aliyun-oss
ALIYUN_OSS_BUCKET_NAME=<your-bucket-name>
ALIYUN_OSS_REGION=oss-cn-hangzhou
ALIYUN_OSS_ACCESS_KEY_ID=<your-access-key-id>
ALIYUN_OSS_ACCESS_KEY_SECRET=<your-access-key-secret>

# <20>碶蝙<E7A2B6>冽𧋦<E586BD><EFBFBD><E595A3><EFBFBD>銝齿綫<E9BDBF><EFBFBD>
# STORAGE_TYPE=local

# ========= LLM <20>滨蔭 =========
# 暺䁅恕 LLM <20>𣂷<EFBFBD><F0A382B7><EFBFBD><EFBFBD><EFBFBD>典虾隞亙銁 Web UI 銝剜溶<E5899C><EFBFBD>銝迎<E98A9D>
DEFAULT_LLM_PROVIDER=openai-api-compatible

# DeepSeek API嚗<49>內靘页<E99D98>
DEEPSEEK_API_KEY=<your-deepseek-api-key>
DEEPSEEK_API_BASE=https://api.deepseek.com/v1

# ========= API <20>滨蔭 =========
# API <20>滚𦛚<E6BB9A><EFBFBD><EFBFBD><E59A97>蝵穃𧑐<E7A983><F0A79190>嚗?API_URL=http://<ECS<43><53><EFBFBD>IP>:5000

# Web <20>滚𦛚<E6BB9A><EFBFBD><EFBFBD><E59A97><EFBFBD>𣈯<EFBFBD><EFBFBD><EFBFBD>?Dify Web UI嚗?WEB_API_URL=http://<ECS<43><EFBFBD>IP>
WEB_URL=http://<ECS<43><EFBFBD>IP>

# ========= <20><EFBFBD><E4BA99>滨蔭 =========
LOG_LEVEL=INFO
LOG_FILE=/data/logs/dify.log

# ========= <20><EFBFBD><E597A1>滨蔭 =========
# <20>嗅躹
TZ=Asia/Shanghai

# <20>臬炏撘<E7828F><E69298>?Debug
DEBUG=false

甇仿炊 3嚗𡁏<E59A97><F0A1818F>?Docker Compose <20><>辣嚗<E8BEA3>遣霈桐蝙<E6A190><EFBFBD><E585B8><EFBFBD>蝵殷<E89DB5>

# <20>𩤃<EFBFBD> 撘箇<E69298>撱箄悅嚗帋<E59A97><EFBFBD><E996AC><EFBFBD>?docker-compose.yaml嚗?# <20>湔𦻖雿輻鍂摰䀹䲮<E480B9><E4B2AE>辣嚗<E8BEA3><E59A97><EFBFBD><EFBFBD>鉄鈭<E98984><E988AD><EFBFBD><EFBFBD><E6B8A1><EFBFBD><EFBFBD>鉄 Nginx 蝵穃<E89DB5>嚗?
# <20><EFBFBD>摰䀹䲮<E480B9>滨蔭
cat docker-compose.yaml

**摰䀹䲮<E480B9><EFBFBD><E59786><EFBFBD><EFBFBD><E98984><EFBFBD><EFBFBD>?*嚗?

services:
  # 1. nginx - <20>亙藁蝵穃<E89DB5><EFBFBD><E59A97><EFBFBD><EFBFBD><EFBFBD><E59A97>
  #    雿𦦵鍂嚗朞楝<E69C9E>梯窈瘙<E7AA88><E79899> API <20>?Web嚗諹圾<E8ABB9>?CORS <20><EFBFBD>
  #    /v1/* <20>?API <20>滚𦛚
  #    /* <20>?Web <20>滚𦛚
  
  # 2. api - Dify API <20>滚𦛚
  # 3. worker - <20>𤾸蝱隞餃𦛚憭<F0A69B9A><E686AD>
  # 4. web - Web <20>滨垢<E6BBA8>屸𢒰
  # 5. redis - 蝻枏<E89DBB><E69E8F>䔶遙<E494B6><EFBFBD><E28ABF><EFBFBD><EFBFBD><E695B9>嚗?  # 6. weaviate - <20><EFBFBD><E785BE>唳旿摨?  # 7. sandbox - 隞<><E99A9E><EFBFBD><E996AB><EFBFBD><EFBFBD><E58981><EFBFBD><EFBFBD><EFBFBD>遣霈桐<E99C88><E6A190><EFBFBD>
  #    雿𦦵鍂嚗𡁜<E59A97><F0A1819C>𨅯銁 Dify 銝凋蝙<E5878B>?隞<><E99A9E><EFBFBD><E996AB><EFBFBD>?<3F><EFBFBD>
  
  # 憒<><E68692>雿惩<E99BBF><E683A9><EFBFBD> nginx嚗䔶<E59A97><E494B6><EFBFBD><EFBFBD>嚗?  # - <20>滨垢霈輸䔮 API <20>?CORS 頝典<E9A09D><E585B8>躰秤
  # - API 頝舐眏 404 <20>躰秤
  
  # 憒<><E68692>雿惩<E99BBF><E683A9><EFBFBD> sandbox嚗䔶<E59A97><E494B6><EFBFBD><EFBFBD>嚗?  # - "隞<><E99A9E><EFBFBD><E996AB><EFBFBD>?<3F><EFBFBD><E8A098>仿<EFBFBD>

**隞<><E99A9E>靽格㺿<E6A0BC><E3BABF><EFBFBD><EFBFBD>?*嚗<><E59A97><EFBFBD>𨀣<EFBFBD><F0A880A3><EFBFBD><E5AF9E><EFBFBD><EFBFBD><E79899>嚗?

# <20>𩤃<EFBFBD> 摰匧<E691B0><E58CA7>滨蔭嚗𡁶垢<F0A181B6><E59EA2><EFBFBD>摰𡁜<E691B0><F0A1819C>砍𧑐嚗<F0A79190>俈甇<E79487>蝵𤏸挪<F0A48FB8><EFBFBD>
services:
  redis:
    ports:
      - "127.0.0.1:6379:6379"  # <20>𩤃<EFBFBD> <20><EFBFBD><E88AB0>祆𧋦<E7A586><EFBFBD><EFBFBD><EFBFBD><EFBFBD>霈輸䔮
  
  weaviate:
    ports:
      - "127.0.0.1:8080:8080"  # <20>𩤃<EFBFBD> <20><EFBFBD><E88AB0>祆𧋦<E7A586><EFBFBD><EFBFBD><EFBFBD><EFBFBD>霈輸䔮
  
  # 蝷箔<E89DB7>嚗𡁜<E59A97><F0A1819C>𣈯<EFBFBD><EFBFBD><E996AC>蝵𤏸挪<F0A48FB8>?Web UI嚗<49><E59A97><EFBFBD>Nginx嚗?  nginx:
    ports:
      - "80:80"      # HTTP嚗<50><E59A97>霈禽PC<50><43><EFBFBD>霈輸䔮嚗?      - "443:443"    # HTTPS嚗<53><E59A97><EFBFBD><E996AC>蝵株<E89DB5>銋佗<E98A8B>

*<EFBFBD>𩤃<EFBFBD> 摰匧<E691B0>瑪嚗?

# <20>?蝏嘥笆蝳<E7AC86>迫嚗<E8BFAB><E59A97>鋡急𤫇<E680A5><EFBFBD>
services:
  redis:
    ports:
      - "6379:6379"  # <20><EFBFBD><E585B6><EFBFBD>虾霈輸䔮嚗朙edis<69><EFBFBD><E683A9><EFBFBD><EFBFBD>鋡急<E98BA1>蝛?  
  weaviate:
    ports:
      - "8080:8080"  # <20><EFBFBD><E785BE>唳旿<E594B3><EFBFBD>鋡怎<E98BA1><E6808E>?  
  api:
    ports:
      - "5000:5000"  # 暺穃恥<E7A983><EFBFBD><EFBFBD><E9A488>蝡舀<E89DA1><E88880>葲LM憸嘥漲

# <20>?甇<><EFBFBD>𡁏<EFBFBD>嚗𡁶<E59A97>摰𡁜<E691B0>127.0.0.1
services:
  redis:
    ports:
      - "127.0.0.1:6379:6379"  # <20><EFBFBD><E88ABE>祆㦤霈輸䔮

**<2A>?<3F>躰秤<E8BAB0>𡁏<EFBFBD>**嚗?```yaml

銝滩<EFBFBD><EFBFBD><EFBFBD><EFBFBD>滚𦛚嚗<EFBFBD><EFBFBD>嗆糓 nginx

services: api: ... worker: ...

<EFBFBD>?蝻箏<E89DBB> nginx嚗<78><E59A97>撖潸稲<E6BDB8>滨垢<E6BBA8><EFBFBD>霈輸䔮 API嚗?```

**<2A>?甇<><EFBFBD>𡁏<EFBFBD>**嚗?```bash

靽脲<EFBFBD>摰䀹䲮 docker-compose.yaml 銝滚<E98A9D>

<EFBFBD>芯耨<EFBFBD>?.env <20><EFBFBD><E887AC><EFBFBD>

<EFBFBD><EFBFBD>蝖桀<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>芣溶<EFBFBD>删垢<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>惩拿<EFBFBD>滨蔭


### 甇仿炊 4嚗𡁜<E59A97>撱箏<E692B1><E7AE8F><EFBFBD><EFBFBD><EFBFBD>

```bash
mkdir -p /data/dify/storage
mkdir -p /data/dify/logs
mkdir -p /data/dify/redis
mkdir -p /data/dify/weaviate

# 霈曄蔭<E69B84><E894AD><EFBFBD>
chmod -R 755 /data/dify

甇仿炊 5嚗𡁜<E59A97>憪见<E686AA><E8A781>唳旿摨?

# <20>?RDS 銝剖<E98A9D>撱?Dify <20>唳旿摨橒<E691A8>雿輻鍂 psql <20>?DBeaver嚗?# 餈墧𦻖<E5A2A7>?RDS
psql -h <RDS<44><53><EFBFBD><EFBFBD><EFBFBD>> -U postgres -d postgres

# <20><EFBFBD>
CREATE DATABASE dify_prod;
CREATE USER dify_user WITH PASSWORD 'your-password';
GRANT ALL PRIVILEGES ON DATABASE dify_prod TO dify_user;
\q

<EFBFBD>臬𢆡銝𡡞<EFBFBD>霂?

甇仿炊 1嚗𡁜鍳<F0A1819C>?Dify <20>滚𦛚

cd /data/dify/docker

# <20><EFBFBD><E58CA7>𨅯<EFBFBD><EFBFBD><E59A97>甈∟<E79488>銵䕘<E98AB5>
docker compose pull

# <20>臬𢆡<E887AC>滚𦛚嚗<F0A69B9A><E59A97><EFBFBD><EFBFBD>銵䕘<E98AB5>
docker compose up -d

# <20><EFBFBD><E4BAA6><EFBFBD>
docker compose logs -f api

# 蝑匧<E89D91><E58CA7>滚𦛚<E6BB9A>臬𢆡嚗<F0A286A1>漲30蝘𡜐<E89D98>

甇仿炊 2嚗𡁻<E59A97><EFBFBD><E99C82><EFBFBD>∠𠶖<E288A0>?

# 1. 璉<><E79289>亙捆<E4BA99>函𠶖<E587BD>?docker compose ps

# 摨磰砲<E7A3B0><EFBFBD>隞乩<E99A9E>摰孵膥<E5ADB5>賣糓 Up <20><EFBFBD><E59786><EFBFBD>
# - dify-api
# - dify-worker
# - dify-web (憒<><E68692><EFBFBD>舐鍂)
# - redis
# - weaviate

# 2. 璉<><E79289>?API <20>亙熒<E4BA99><EFBFBD>?curl http://localhost:5000/health

# <20><><EFBFBD>餈𥪜<E9A488>: {"status": "healthy"}

# 3. 璉<><E79289>?Weaviate <20><EFBFBD>?curl http://localhost:8080/v1/meta

# <20><><EFBFBD>餈𥪜<E9A488>: JSON <20><EFBFBD><E6BE86><EFBFBD><EFBFBD><EFBFBD>唳旿

甇仿炊 3嚗𡁏<E59A97>霂訫<E99C82>蝵𤏸<E89DB5><F0A48FB8>𡁏<EFBFBD>?

# <20>?SAE <20>𡒊垢<F0A1928A>滚𦛚銝剜<E98A9D>霂𤏪<E99C82><F0A48FAA>硋銁<E7A18B>砍𧑐<E7A08D><EFBFBD> VPN 餈墧𦻖<E5A2A7>?VPC嚗?curl http://<ECS<43><53><EFBFBD>IP>:5000/health

# 憒<><E68692>餈𥪜<E9A488> {"status": "healthy"}嚗諹秩<E8ABB9>𤾸<EFBFBD>蝵𤏸<E89DB5><F0A48FB8>𡁏迤撣?```

### 甇仿炊 4嚗𡁜<E59A97>憪见<E686AA> Dify嚗<79><E59A97>甈⊿<E79488>蝵莎<E89DB5>

1. **霈輸䔮 Dify Web UI**嚗<><E59A97><EFBFBD>𨅯鍳<F0A885AF><EFBFBD>嚗?   ```
   http://<ECS<43><EFBFBD>IP>
  1. **<2A>𥕦遣蝞∠<E89D9E><E288A0>䁅揭<E48185>?*嚗? - <20>桃拳嚗惨dmin@your-domain.com

    • <EFBFBD><EFBFBD>嚗?strong-password>
  2. **<2A>滨蔭 LLM <20>𣂷<EFBFBD><F0A382B7>?*嚗? - 餈𥕦<E9A488> "霈曄蔭" <20>?"璅<E79285><E288AA>𣂷<EFBFBD><F0A382B7>?

    • 瘛餃<EFBFBD> DeepSeek/Qwen 蝑?API Key

甇仿炊 5嚗𡁻<E59A97>蝵桀<E89DB5>蝡舐㴓憓<E3B493><E68693><EFBFBD>?

<EFBFBD>?SAE <20>𡒊垢<F0A1928A>滚𦛚<E6BB9A><F0A69B9A>㴓憓<E3B493><E68693><EFBFBD>譍葉瘛餃<E7989B>嚗?

# Dify API <20>滨蔭
DIFY_API_BASE=http://<ECS<43><53><EFBFBD>IP>:5000
DIFY_API_KEY=<隞?Dify Web UI 銝剛繮<E5899B>?

# <20><EFBFBD> API Key <20><>䲮瘜𤏪<E7989C>
# Dify Web UI <20>?霈曄蔭 <20>?API Keys <20>?<3F>𥕦遣<F0A595A6><EFBFBD><E595A3>?```

---

## <20>滨蔭霂湔<E99C82>

### <20>圲 摮睃<E691AE><E79D83>滨蔭霂西圾

#### <20>厰★ 1嚗𡁻燵<F0A181BB><EFBFBD> OSS嚗<53><EFBFBD><EFBFBD>

**隡睃飵**嚗?- <20>𣳇<EFBFBD><F0A3B387><EFBFBD>
- 擃睃虾<E79D83><EFBFBD>99.9%嚗?- 銝?SAE <20><><EFBFBD><EFBFBD>帋縑嚗屸<E59A97>笔漲敹?
**<2A>滨蔭**嚗?```bash
STORAGE_TYPE=aliyun-oss
ALIYUN_OSS_BUCKET_NAME=your-bucket-name
ALIYUN_OSS_REGION=oss-cn-hangzhou
ALIYUN_OSS_ACCESS_KEY_ID=<your-id>
ALIYUN_OSS_ACCESS_KEY_SECRET=<your-secret>

**瘜冽<E7989C>**嚗?- OSS Bucket 敹<><EFBFBD>?ECS <20><EFBFBD><EFBFBD><E98A9D><EFBFBD>

  • 撱箄悅雿輻鍂<EFBFBD><EFBFBD><EFBFBD> Endpoint嚗<74><E59A97>嚗駅ss-cn-hangzhou-internal.aliyuncs.com嚗?- 霈曄蔭<E69B84><E894AD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>賢𪂹<E8B3A2><EFBFBD><E8A098><EFBFBD><EFBFBD><E68692>30憭拙<E686AD>頧砍<E9A0A7>摮睃<E691AE>嚗?

<EFBFBD>厰★ 2嚗𡁏𧋦<F0A1818F><EFBFBD><E595A3><EFBFBD>銝齿綫<E9BDBF><EFBFBD>

**蝻箇<E89DBB>**嚗?- 蝤<><E89DA4>蝛粹𡢿<E7B2B9><EFBFBD>

  • <EFBFBD><EFBFBD>璅芸<EFBFBD><EFBFBD><EFBFBD>
  • <EFBFBD>唳旿憭<EFBFBD>遢暻餌<EFBFBD>

**隞<><E99A9E><EFBFBD>鍂鈭?*嚗𡁏<E59A97>霂閧㴓憓<E3B493><E68693>撠讛<E692A0>璅⊿<E79285>蝵?

<EFBFBD><20>唳旿摨㯄<E691A8>蝵株祕閫?

Dify <20>唳旿摨㮖<E691A8><E3AE96>𡒊垢<F0A1928A>唳旿摨枏<E691A8>蝳?

RDS PostgreSQL 摰硺<E691B0>
<0A><EFBFBD> <20>唳旿摨?1: clinical_research (<28>𡒊垢銝餅㺭<E9A485><EFBFBD>)
<0A>?  <20><EFBFBD> Schema: platform_schema
<0A>?  <20><EFBFBD> Schema: asl_schema
<0A>?  <20><EFBFBD> Schema: dc_schema
<0A>?  <20><EFBFBD> ...
<0A><EFBFBD> <20>唳旿摨?2: dify_prod (Dify <20>唳旿摨?
    <20><EFBFBD> Schema: public
    <20><EFBFBD> ...

隡睃飵嚗?- <20>唳旿<E594B3>𠉛氖嚗<E6B096><E59A97><EFBFBD><EFBFBD>

  • <EFBFBD><EFBFBD><EFBFBD>遢蝑𣇉裦
  • <EFBFBD><EFBFBD><EFBFBD><EFBFBD>蝡硺<EFBFBD>

**餈墧𦻖瘙𣳇<E79899>蝵?*嚗?```bash

Dify <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><E9A2B2><EFBFBD><E59A97>銝箏<E98A9D>甇乩遙<E4B9A9><EFBFBD>嚗?DB_MAX_CONNECTIONS=20


### <20>圲 Redis <20>滨蔭霂湔<E99C82>

**銝箔<E98A9D>銋?Dify 敹<><EFBFBD>?Redis嚗?*
- Dify <20><><EFBFBD><EFBFBD><E28ABF>𦯀<EFBFBD>韏?Redis嚗㇃elery嚗?- <20><EFBFBD>蝻枏<E89DBB><EFBFBD><E59A97>嚗鋫PI <20><EFBFBD>嚗?- 銝滩<E98A9D><E6BBA9>?PostgreSQL <20>蹂誨嚗<E8AAA8><E59A97><EFBFBD><EFBFBD><E587BD>𡒊垢 Postgres-Only <20><EFBFBD>銝滚<E98A9D>嚗?
**<2A>喲睸<E596B2>滨蔭嚗<E894AD><E59A97><EFBFBD><EFBFBD><E6BBA9>亙仃韐伐<E99F90>**嚗?```bash
# <20>𩤃<EFBFBD> <20>游𦶢<E6B8B8>躰秤霅血<E99C85>嚗?# <20>?.env 銝哨<E98A9D>REDIS_HOST 敹<>◆霈曄蔭銝箸<E98A9D><E7AEB8><EFBFBD> "redis"
# 銝齿糓 "localhost"嚗?
# <20>?<3F>躰秤<E8BAB0><EFBFBD><EFBFBD><E59A97>撖潸稲 API <20><EFBFBD><E4ADBE>臬𢆡嚗?REDIS_HOST=localhost

# <20>?甇<><EFBFBD><EFBFBD>嚗㇄ocker Compose 蝵𤑳<E89DB5>銝凋蝙<E5878B><EFBFBD><E586BD><EFBFBD>嚗?REDIS_HOST=redis

# <20><EFBFBD>嚗?# - <20>?Docker Compose 銝哨<E98A9D>摰孵膥銋钅𡢿<E99285><EFBFBD><E69C9E>滚𦛚<E6BB9A><EFBFBD>帋縑
# - localhost <20><><EFBFBD><EFBFBD>臬捆<E887AC>刻䌊撌梧<E6928C>銝齿糓 Redis 摰孵膥
# - redis 隡朞◤ Docker 蝵𤑳<E89DB5><EFBFBD><E996AB>銝?Redis 摰孵膥<E5ADB5><E886A5><EFBFBD>蝵?IP

摰匧<EFBFBD><EFBFBD>惩𤐄嚗?```bash

1. 霈曄蔭撘箏<E69298><E7AE8F>?REDIS_PASSWORD=<<3C><EFBFBD>16雿漤<E99BBF><E6BCA4><EFBFBD>蝚虫葡>

2. 隞<><E99A9E><EFBFBD><EFBFBD>蝵𡢅<E89DB5>docker-compose 銝剖歇<E58996>滨蔭嚗?# Redis 摰孵膥銝齿𠂔<E9BDBF>脩垢<E884A9><E59EA2><EFBFBD>銝餅㦤嚗䔶<E59A97><E494B6>?Docker 蝵𤑳<E89DB5><F0A491B3><EFBFBD>虾霈輸䔮

3. 蝳<><EFBFBD>梢埯<E6A2A2>賭誘嚗<E8AA98><EFBFBD><EFBFBD>

<EFBFBD>?docker-compose.yaml 銝凋耨<E5878B>?Redis <20>臬𢆡<E887AC>賭誘

command: > redis-server --requirepass ${REDIS_PASSWORD} --rename-command CONFIG "" --rename-command FLUSHALL "" --rename-command FLUSHDB ""


---

## <20>烐綉銝𡒊輕<F0A1928A>?
### <20><> <20><EFBFBD>蝞∠<E89D9E>

#### 1. <20><EFBFBD>摰墧𧒄<E5A2A7><EFBFBD>

```bash
cd /data/dify/docker

# <20><EFBFBD><E4BAA6><EFBFBD><EFBFBD><EFBFBD><E39787>⊥𠯫敹?docker compose logs -f

# <20><EFBFBD><E4BAA6><EFBFBD><E5ADB5>滚𦛚<E6BB9A><EFBFBD>
docker compose logs -f api
docker compose logs -f worker

2. <20><EFBFBD><E4BA99><EFBFBD>辣雿滨蔭

/data/dify/logs/
<0A><EFBFBD> api.log          # API <20>滚𦛚<E6BB9A><EFBFBD>
<0A><EFBFBD> worker.log       # Worker <20><EFBFBD>
<0A><EFBFBD> error.log        # <20>躰秤<E8BAB0><EFBFBD>

3. <20><EFBFBD>頧株蓮<E6A0AA>滨蔭

# 摰㕑<E691B0> logrotate嚗㇎buntu 暺䁅恕撌脣<E6928C><EFBFBD><E98B86>
apt install logrotate

# <20>𥕦遣<F0A595A6>滨蔭<E6BBA8><E894AD>
cat > /etc/logrotate.d/dify <<EOF
/data/dify/logs/*.log {
    daily
    rotate 30
    compress
    delaycompress
    notifempty
    create 0644 root root
    sharedscripts
    postrotate
        docker compose -f /data/dify/docker/docker-compose.yaml restart api worker
    endscript
}
EOF

<EFBFBD><EFBFBD> <20><EFBFBD><E689AF>烐綉

1. 韏<><E99F8F>雿輻鍂<E8BCBB><E98D82><EFBFBD>

# <20><EFBFBD>摰孵膥韏<E886A5><E99F8F><EFBFBD>删鍂
docker stats

# <20><EFBFBD><EFBFBD><E89DA4>雿輻鍂
df -h /data

# <20><EFBFBD><E4BAA6><EFBFBD><EFBFBD>雿輻鍂
free -h

2. <20>唳旿摨栞<E691A8><E6A09E><EFBFBD><E4BAA6>?

# 餈墧𦻖<E5A2A7>?RDS <20><EFBFBD> Dify <20><><EFBFBD><EFBFBD>交㺭
psql -h <RDS<44><53><EFBFBD><EFBFBD><EFBFBD>> -U postgres -d dify_prod -c "
  SELECT count(*) 
  FROM pg_stat_activity 
  WHERE datname = 'dify_prod';
"

3. Redis <20>烐綉

# 餈墧𦻖<E5A2A7>?Redis 摰孵膥
docker exec -it dify-redis redis-cli -a <REDIS_PASSWORD>

# <20><EFBFBD>靽⊥<E99DBD>
INFO
INFO memory
INFO stats

<EFBFBD><EFBFBD> 摰𡁏<E691B0>蝏湔擪隞餃𦛚

瘥誩𪂹隞餃𦛚

# 1. 皜<><E79A9C> Docker <20><EFBFBD>
truncate -s 0 $(docker inspect --format='{{.LogPath}}' dify-api)
truncate -s 0 $(docker inspect --format='{{.LogPath}}' dify-worker)

# 2. 皜<><E79A9C><EFBFBD>删鍂<E588A0>?Docker 韏<><E99F8F>
docker system prune -a --volumes -f

瘥𤩺<EFBFBD>隞餃𦛚

# 1. <20>唳旿摨?VACUUM嚗<4D>銁雿𤾸陸<F0A4BEB8><E999B8><EFBFBD>銵䕘<E98AB5>
psql -h <RDS<44><53><EFBFBD><EFBFBD><EFBFBD>> -U dify_user -d dify_prod -c "VACUUM ANALYZE;"

# 2. 璉<><E79289><EFBFBD><E4BAA6><EFBFBD><E69DA1>?e2fsck -f /dev/vdb

# 3. 憭<><EFBFBD>滨蔭<E6BBA8><E894AD>
tar -czf /backup/dify-config-$(date +%Y%m%d).tar.gz /data/dify/docker/.env

<EFBFBD><EFBFBD><EFBFBD><EFBFBD>埝䰻

<EFBFBD>𤣳 撣貉<E692A3><E8B289><EFBFBD>

<EFBFBD><EFBFBD> 1嚗鋫PI 摰孵膥<E5ADB5><EFBFBD><E4ADBE>臬𢆡 - Redis 餈墧𦻖憭梯揖嚗<E68F96><E59A97>憸煾<E686B8>霂荔<E99C82>

<EFBFBD><EFBFBD>𠶖嚗?```bash docker compose ps

<EFBFBD>曄內 dify-api <20><EFBFBD><E59786>蛹 Exit 1 <20><EFBFBD><E7A2B6><EFBFBD><E5899D>?

docker compose logs api

<EFBFBD>曄內<EFBFBD>躰秤嚗?# redis.exceptions.ConnectionError: Error connecting to localhost:6379

<EFBFBD>?# Cannot connect to Redis at localhost:6379


**<2A>寞𧋦<E5AF9E><EFBFBD>**嚗?```bash
# <20>?.env <20><>辣銝剝<E98A9D>蝵桅<E89DB5>霂?REDIS_HOST=localhost  # 餈蹱糓<E8B9B1><EFBFBD>嚗?```

**閫<><E996AB><EFBFBD><EFBFBD>**嚗?```bash
# 1. 蝻𤥁<E89DBB> .env <20><>辣
nano /data/dify/docker/.env

# 2. 靽格㺿 REDIS_HOST
REDIS_HOST=redis  # <20>?<3F>嫣蛹<E5ABA3>滚𦛚<E6BB9A>?
# 3. <20>滚鍳<E6BB9A>滚𦛚
docker compose down
docker compose up -d

# 4. 撉諹<E69289>
docker compose logs api | grep -i redis
# 摨磰砲<E7A3B0><EFBFBD>嚗锭uccessfully connected to Redis

<EFBFBD><EFBFBD> 2嚗𡁜<E59A97>蝡航挪<E888AA>?API <20>?CORS <20>躰秤

<EFBFBD><EFBFBD>𠶖嚗?``` 瘚讛<E7989A><E8AE9B>冽綉<E586BD>嗅蝱<E59785>仿<EFBFBD>嚗?Access to XMLHttpRequest at 'http://xxx/v1/xxx' from origin 'http://yyy' has been blocked by CORS policy


**<2A>寞𧋦<E5AF9E><EFBFBD>**嚗?- 蝻箏<E89DBB> Nginx 蝵穃<E89DB5><E7A983>滚𦛚
- <20>𤥁<EFBFBD>?Nginx <20>滨蔭<E6BBA8>躰秤

**閫<><E996AB><EFBFBD><EFBFBD>**嚗?```bash
# 1. 蝖株恕 Nginx 摰孵膥<E5ADB5>臬炏餈鞱<E9A488>
docker compose ps | grep nginx

# 2. 憒<><E68692>瘝⊥<E7989D> Nginx嚗諹秩<E8ABB9>𦒘<EFBFBD><F0A69298>𣳇膄鈭<E88684><E988AD><EFBFBD><EFBFBD>蝵?# 閫<><E996AB><EFBFBD><EFBFBD>嚗𡁻<E59A97><F0A181BB><EFBFBD><E595A3><EFBFBD><EFBFBD><EFBFBD><EFBFBD>摨橒<E691A8>雿輻鍂摰峕㟲<E5B395>?docker-compose.yaml

cd /data/dify
rm -rf dify
git clone https://github.com/langgenius/dify.git
cd dify/docker
cp .env.example .env
# <20>齿鰵<E9BDBF>滨蔭 .env嚗<76><E59A97><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
docker compose up -d

<EFBFBD><EFBFBD> 3嚗𡁜捆<F0A1819C><EFBFBD>瘜訫鍳<E8A8AB>?- <20>唳旿摨栞<E691A8><E6A09E>亙仃韐?

<EFBFBD><EFBFBD>𠶖嚗?```bash docker compose logs api

<EFBFBD>曄內<EFBFBD>躰秤嚗?# could not connect to server: Connection refused


**<2A>埝䰻甇仿炊**嚗?```bash
# 1. 璉<><E79289>?RDS <20><EFBFBD><E8B3A2>?# <20><EFBFBD>鈭烐綉<E78390>嗅蝱 <20>?RDS <20>?<3F>唳旿摰匧<E691B0><E58CA7>?<3F>?<3F><EFBFBD><E8B3A2>閗挽蝵?# 蝖株恕瘛餃<E7989B>鈭?ECS <20><><EFBFBD>蝵?IP

# 2. 璉<><E79289>?.env <20>滨蔭
DB_HOST=<RDS<44><53><EFBFBD><EFBFBD><EFBFBD>>  # 銝齿糓<E9BDBF><EFBFBD><E7A589><EFBFBD>嚗?DB_PORT=5432
DB_NAME=dify_prod
DB_USERNAME=dify_user
DB_PASSWORD=<甇<><EFBFBD><EFBC86><EFBFBD><EFBFBD>?

# 3. 瘚贝<E7989A>餈墧𦻖嚗<F0A6BB96>銁 ECS 銝𠺪<E98A9D>
telnet <RDS<44><53><EFBFBD><EFBFBD><EFBFBD>> 5432
# 憒<><E68692>餈墧𦻖憭梯揖嚗峕<E59A97><E5B395><EFBFBD><E4BA99><EFBFBD><E587BD>𣬚蒾<F0A3AC9A><EFBFBD>

<EFBFBD><EFBFBD> 4嚗𡁏<E59A97><F0A1818F><EFBFBD>銵䔶<E98AB5>畾菜𧒄<E88F9C><EFBFBD>撏拇<E6928F>嚗㇉OM <20><><EFBFBD>枂嚗?

<EFBFBD><EFBFBD>𠶖嚗?```bash dmesg | grep -i kill

<EFBFBD>曄內嚗鐾ut of memory: Killed process xxx (dify-api)

docker compose ps

摰孵膥銝齿鱏<EFBFBD>滚鍳


**<2A>寞𧋦<E5AF9E><EFBFBD>**嚗?- 2<>?G <20><><EFBFBD>銝滩雲
- 瘝⊥<E7989D><E28AA5>滨蔭 Swap <20><>躹

**閫<><E996AB><EFBFBD><EFBFBD>**嚗?```bash
# 1. 蝡见朖<E8A781>滨蔭 Swap嚗<70><E59A97><EFBFBD><EFBFBD><E99D9D>齿瓷<E9BDBF>滨蔭嚗?fallocate -l 4G /swapfile
chmod 600 /swapfile
mkswap /swapfile
swapon /swapfile
echo '/swapfile none swap sw 0 0' >> /etc/fstab

# 2. 撉諹<E69289> Swap 撌脣鍳<E884A3>?free -h

# 3. <20>滚鍳<E6BB9A>滚𦛚
docker compose restart

# 4. <20><EFBFBD><E8B8B5><EFBFBD>嚗𡁜<E59A97>蝥?ECS <20>?4<>?G

<EFBFBD><EFBFBD> 2嚗鋫PI 餈𥪜<E9A488> 500 <20>躰秤

<EFBFBD>埝䰻甇仿炊嚗?```bash

1. <20><EFBFBD> API <20><EFBFBD>

docker compose logs -f api | grep ERROR

2. 璉<><E79289>交㺭<E4BAA4><EFBFBD>餈墧𦻖

docker exec -it dify-api sh

<EFBFBD>典捆<EFBFBD><EFBFBD><EFBFBD><EFBFBD>

python -c " import psycopg2 conn = psycopg2.connect( host='<RDS<44><EFBFBD>>', database='dify_prod', user='dify_user', password='' ) print('Connection OK') "


#### <20><EFBFBD> 3嚗𡁜<E59A97><F0A1819C>𤩺<EFBFBD>仃韐?
**<2A>埝䰻甇仿炊**嚗?```bash
# 1. 璉<><E79289>?Weaviate <20><EFBFBD>?curl http://localhost:8080/v1/meta

# 2. <20><EFBFBD> Weaviate <20><EFBFBD>
docker compose logs weaviate

# 3. <20>滚遣蝝<E89D9D><EFBFBD><E59A97><EFBFBD><EFBFBD>畾蛛<E795BE>
# <20>?Dify Web UI 銝哨<E98A9D>霈曄蔭 <20>?<3F>唳旿<E594B3>?<3F>?<3F>齿鰵蝝<E89D9D>

<EFBFBD><EFBFBD> 4嚗𡁜<E59A97>蝵𤏸<E89DB5><F0A48FB8>亙仃韐伐<E99F90>SAE <20><EFBFBD>霈輸䔮 ECS嚗?

<EFBFBD>埝䰻甇仿炊嚗?```bash

1. 璉<><E79289><EFBFBD><E4BA99><EFBFBD><EFBFBD><E996AB>

<EFBFBD><EFBFBD>鈭烐綉<EFBFBD>嗅蝱 <20>?ECS <20>?摰匧<E691B0>蝏?<3F>?蝖株恕撘<E68195><E69298>?5000 蝡臬藁蝏?SAE <20><><EFBFBD><EFBFBD>畾?

2. 瘚贝<E7989A>餈鮋<E9A488>𡁏<EFBFBD><EFBFBD><E694B9>?SAE 摰孵膥<E5ADB5><E886A5><EFBFBD>銵䕘<E98AB5>

telnet <ECS<43><53><EFBFBD>IP> 5000

3. 璉<><E79289>仿俈<E4BBBF><EFBFBD><EFBFBD>銁 ECS 銝𦠜<E98A9D>銵䕘<E98AB5>

ufw status

<EFBFBD><EFBFBD><EFBFBD>舐鍂鈭<EFBFBD><EFBFBD><EFBFBD>嚗峕溶<EFBFBD><EFBFBD><EFBFBD><EFBFBD>

ufw allow from <SAE蝵烐挾> to any port 5000


### <20><> <20>滚鍳<E6BB9A>滚𦛚

```bash
# <20>滚鍳<E6BB9A><E98DB3><EFBFBD><EFBFBD><E39787>?cd /data/dify/docker
docker compose restart

# <20>滚鍳<E6BB9A>蓥葵<E893A5>滚𦛚
docker compose restart api

# 摰<><E691B0><EFBFBD>滚遣嚗<E981A3><E59A97><EFBFBD>靝耨<E99D9D><EFBFBD> docker-compose.yaml嚗?docker compose down
docker compose up -d

瘜冽<EFBFBD>鈭钅★銝𡒊<EFBFBD>敹?

<EFBFBD>?<3F><>雿喳<E99BBF>頝?

  1. 摰𡁏<EFBFBD><EFBFBD>

    # 瘥誩予<E8AAA9>芸𢆡憭<F0A286A1>遢嚗<E981A2><EFBFBD><EFBFBD> crontab嚗?   0 2 * * * pg_dump -h <RDS<44><EFBFBD>> -U dify_user dify_prod | gzip > /backup/dify_$(date +\%Y\%m\%d).sql.gz
    
  2. <EFBFBD>烐綉蝤<EFBFBD><EFBFBD>蝛粹𡢿

    # 霈曄蔭<E69B84>𡃏郎嚗<E9838E><E59A97> /data 雿輻鍂<E8BCBB>?> 80% <20><EFBFBD>𡁶䰻嚗?   # <20>臭蝙<E887AD>券燵<E588B8><EFBFBD>鈭𤑳<E988AD><F0A491B3><EFBFBD><E689B3>?   ```
    
    
  3. 雿輻鍂<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>

    # 銝?ECS 霈曄蔭<E69B84><E894AD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>噶鈭𡒊輕<F0A1928A><EFBFBD>
    # <20>?SAE 銝剝<E98A9D>蝵?DIFY_API_BASE=http://dify.internal:5000
    # <20><EFBFBD><E494B6><EFBFBD>甇?IP
    
  4. <EFBFBD><EFBFBD>𧋦<EFBFBD><EFBFBD><EFBFBD>

    # docker-compose.yaml 銝凋蝙<E5878B><EFBFBD>雿梶<E99BBF><E6A2B6>砍噡嚗䔶<E59A97><EFBFBD>鍂 latest
    image: langgenius/dify-api:0.11.2  # <20>?<3F><EFBFBD>
    # image: langgenius/dify-api:latest  # <20>?蝳<>迫嚗<E8BFAB><EFBFBD>賢紡<E8B3A2><EFBFBD><E6B8AF>澆捆嚗?   ```
    
    

<EFBFBD>?蝏嘥笆蝳<E7AC86>

  1. <EFBFBD><EFBFBD>?.env 銝凋蝙<E5878B>?REDIS_HOST=localhost

    # <20>?<3F>游𦶢<E6B8B8>躰秤嚗<E7A7A4><E59A97>撖潸稲<E6BDB8>滚𦛚<E6BB9A>臬𢆡憭梯揖嚗?   REDIS_HOST=localhost
    
    # <20>?甇<><EFBFBD>滨蔭嚗<E894AD>銁 Docker Compose 銝凋蝙<E5878B><EFBFBD><E586BD><EFBFBD>嚗?   REDIS_HOST=redis
    
  2. *<EFBFBD><EFBFBD><EFBFBD>摰䀹䲮 docker-compose.yaml <20><>瓲敹<E793B2><E695B9><EFBFBD>?

    # <20>?<3F>梢埯<E6A2A2><EFBFBD><EFBFBD><E59A97>撖潸稲<E6BDB8><EFBFBD><EFBFBD>虜嚗?   # - <20>𣳇膄 nginx <20>?<3F>滨垢 CORS <20>躰秤
    # - <20>𣳇膄 worker <20>?撘<>郊隞餃𦛚憭梯揖
    # - <20>𣳇膄 sandbox <20>?隞<><E99A9E><EFBFBD><E996AB><EFBFBD><EFBFBD><E585B8>賢仃<E8B3A2>?   
    # <20>?甇<><EFBFBD>𡁏<EFBFBD>
    # 雿輻鍂摰䀹䲮摰峕㟲<E5B395>滨蔭嚗䔶<E59A97>靽格㺿 .env <20><EFBFBD><E887AC><EFBFBD>
    
  3. <EFBFBD><EFBFBD>?2<>?G <20>?ECS 銝𠹺<E98A9D><F0A0B9BA>滨蔭 Swap

    # <20>?<3F>梢埯嚗<E59FAF><E59A97><EFBFBD>?OOM 撏拇<E6928F>嚗?   # 瘝⊥<E7989D> Swap嚗<70><E59A97>摮条鍂撠賢<E692A0><E8B3A2>滚𦛚<E6BB9A>湔𦻖鋡?Kill
    
    # <20>?敹<><EFBFBD>滨蔭 Swap
    fallocate -l 4G /swapfile
    chmod 600 /swapfile
    mkswap /swapfile
    swapon /swapfile
    
  4. <EFBFBD><EFBFBD><EFBFBD>鈭抒㴓憓<EFBFBD><EFBFBD>?DEBUG=true

    # 隡𡁏𠂔<F0A1818F><EFBFBD><E884AB>煺縑<E785BA><EFBFBD><EFBFBD><E68692>API Key<65><79><EFBFBD><EFBFBD><EFBFBD><E69296>嚗?   DEBUG=false  # <20>?   ```
    
    
  5. *<EFBFBD>迫雿輻鍂撘勗<EFBFBD><EFBFBD>?

    # 敹<>◆雿輻鍂撘箏<E69298><E7AE8F><EFBFBD><EFBFBD><EFBFBD><EFBFBD>16雿㵪<E99BBF><E3B5AA><EFBFBD>鉄憭批<E686AD><E689B9><EFBFBD><E8B8BA>㺭摮𨰜<E691AE><F0A8B09C>鸌畾𠰴<E795BE>蝚佗<E89D9A>
    SECRET_KEY=$(openssl rand -base64 32)
    REDIS_PASSWORD=$(openssl rand -base64 24)
    WEAVIATE_API_KEY=$(openssl rand -base64 24)
    
  6. *<EFBFBD><EFBFBD>湧蠧 Redis <20>?Weaviate 蝡臬藁<E887AC><EFBFBD>蝵?

    # 摰䀹䲮<E480B9>滨蔭暺䁅恕銝齿𠂔<E9BDBF><EFBFBD>鈭𤤿垢<F0A4A4BF><E59EA2><EFBFBD>銝滩<E98A9D><E6BBA9>芸楛瘛餃<E7989B>
    # <20>?<3F>梢埯<E6A2A2>滨蔭
    services:
      redis:
        ports:
          - "6379:6379"  # 隡朞◤<E69C9E>餃稬嚗?   
    # <20>?甇<><EFBFBD>𡁏<EFBFBD>嚗帋<E59A97><E5B88B>?Docker 蝵𤑳<E89DB5><F0A491B3><EFBFBD><EFBFBD>?   ```
    
    
  7. *<EFBFBD><EFBFBD>湔𦻖靽格㺿<EFBFBD>唳旿摨?

    # 銝滩<E98A9D><E6BBA9>见𢆡靽格㺿 Dify <20>唳旿摨梶<E691A8>銵函<E98AB5><E587BD><EFBFBD><EFBFBD><EFBFBD>唳旿
    # 敹<><EFBFBD><EFBFBD> Dify API <20>?Web UI <20><EFBFBD>
    
  8. *<EFBFBD><EFBFBD>?ECS 銝𡃏<E98A9D><EFBFBD><E98AB5>隞𡝗<E99A9E><F0A19D97><EFBFBD><E596AE>?

    # 餈坔蝱 ECS 銝㯄秄<E3AF84><EFBFBD> Dify嚗䔶<E59A97><EFBFBD><E996AC>蝵脣<E89DB5>隞硋<E99A9E><E7A18B>?   # <20><EFBFBD><EFBFBD><E99F8F>蝡硺<E89DA1><E7A1BA><EFBFBD><EFBFBD><EFBFBD><EFBFBD><E588B8>?   ```
    
    

<EFBFBD>𩤃<EFBFBD> <20><EFBFBD><E6BBA9><EFBFBD>

  1. <EFBFBD>唳旿銝餅<EFBFBD>

    • <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>𤩺㺭<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>典銁<EFBFBD><EFBFBD> ECS <20>?OSS 銝? - 摰𡁏<E691B0><EFBFBD><E79289>交㺭<E4BAA4><EFBFBD>隞賜<E99A9E>摰峕㟲<E5B395>?
  2. <EFBFBD>鞉𧋦<EFBFBD><EFBFBD>

    • ECS <20><EFBFBD>隞䁅晶 vs <20><><EFBFBD><E58391><EFBFBD><EFBFBD><EFBFBD><EFBFBD><E6A180><EFBFBD><EFBFBD><EFBFBD><EFBFBD>㗇𥋘嚗? - <20>烐綉 OSS 摮睃<E691AE><E79D83><EFBFBD><EFBFBD><E7989A><EFBFBD><E59A97><EFBFBD><EFBFBD><E6BBA9><EFBFBD>蝞梹<E89D9E>
  3. <EFBFBD><EFBFBD>漣蝑𣇉裦

    # <20><>漣 Dify <20><>𧋦<EFBFBD><EFBFBD>甇仿炊嚗?   # 1. 憭<><EFBFBD>唳旿摨?   # 2. <20><EFBFBD>霂閧㴓憓<E3B493><E68693>霂?   # 3. <20>㗇𥋘銝𡁜𦛚雿𤾸陸<F0A4BEB8><EFBFBD>蝥?   # 4. <20>𡁜末<F0A1819C><EFBFBD><E5A2A7><EFBFBD><EFBFBD>
    
  4. *<EFBFBD><EFBFBD><EFBFBD><EFBFBD>蝵脰楝敺?

    敶枏<EFBFBD><EFBFBD><EFBFBD> <20>?<3F>湔𦻖憭滚<E686AD><E6BB9A>啣恥<E595A3>瑞㴓憓?   <20><EFBFBD> 撖澆枂 docker-compose.yaml
    <0A><EFBFBD> 撖澆枂 .env嚗<76><E59A97><EFBFBD>煺縑<E785BA>舀𤜯<E88880><EFBFBD>
    <0A><EFBFBD> <20><EFBFBD>銝箏<E98A9D><EFBFBD><E98B86><EFBFBD>穿<EFBFBD><EFBFBD><E98A9D><EFBFBD>蝵莎<E89DB5>
    <0A><EFBFBD> <20>𣂷<EFBFBD><F0A382B7><EFBFBD><E7BE93><EFBFBD><E58CA7>函蔡<E587BD><EFBFBD><E8A781>?   ```
    
    

<EFBFBD><EFBFBD> <20><><EFBFBD>

A. <20><><EFBFBD>撘箏<E69298><E7AE8F><EFBFBD><EFBFBD><EFBFBD><EFBFBD>

# <20><EFBFBD> 1: 雿輻鍂 openssl
openssl rand -base64 32

# <20><EFBFBD> 2: 雿輻鍂 pwgen
pwgen -s 32 1

# <20><EFBFBD> 3: 雿輻鍂 Python
python3 -c "import secrets; print(secrets.token_urlsafe(32))"

B. Dify API 撣貊鍂蝡舐<E89DA1>

# <20>亙熒璉<E78692><E79289>?GET http://<ECS<43><53><EFBFBD>IP>:5000/health

# <20>𥕦遣<F0A595A6>唳旿<E594B3>?POST http://<ECS<43><53><EFBFBD>IP>:5000/v1/datasets
Headers: Authorization: Bearer <API_KEY>
Body: {"name": "test-dataset"}

# 銝𠹺<E98A9D><F0A0B9BA><EFBFBD>
POST http://<ECS<43><53><EFBFBD>IP>:5000/v1/datasets/{dataset_id}/documents
Headers: Authorization: Bearer <API_KEY>
Body: (multipart/form-data)

# 霂凋<E99C82><EFBFBD>蝝?POST http://<ECS<43><53><EFBFBD>IP>:5000/v1/datasets/{dataset_id}/retrieve
Headers: Authorization: Bearer <API_KEY>
Body: {"query": "xxx", "top_k": 5}

C. <20><EFBFBD><E8A9A8><EFBFBD><EFBFBD>暹𦻖


<EFBFBD><EFBFBD>﹝蝏湔擪嚗?- 憒<><E68692><EFBFBD><EFBFBD><E6A185>硋遣霈殷<E99C88>霂瑁<E99C82>蝟餅<E89D9F><E9A485><EFBFBD><EFBFBD>

  • <EFBFBD><EFBFBD><EFBFBD>擧凒<EFBFBD><EFBFBD>2025-12-13
  • 銝𧢲活摰⊥䰻嚗?025-03-13