SSD Nodes Learn
Mga Gabay Matt ConnorNi Matt Connor · Na-update 2026-07-24

paano i-self-host ang Dify gamit ang Docker

Gumamit ng VPS na may 4 GB RAM para sa anim na Docker containers. Siguraduhing i-update ang .env secrets at i-setup ang admin sa /install agad.

Ano ang Dify, at ano ang iyong itatayo

Ang Dify ay isang self-hostable platform para sa pagbuo ng mga application gamit ang large language models. Mayroon itong web interface para sa pag-design ng mga chat app, agent, at retrieval pipeline, isang API para sa pagtawag sa kanila mula sa sarili mong code, at isang sentral na lugar para sa pag-manage ng mga prompt, dataset, at model keys. Ito ay isang tool na ginagamit ng mga maliliit na team para magkaroon ng iisang shared private base, sa halip na magkalat ang mga API key sa iba't ibang scripts.

Ang pagpapatakbo nito nang mag-isa ay nangangailangan ng ilang moving parts. Ang Dify ay binubuo ng mga Docker container: isang API server, isang background worker, isang web frontend, isang Postgres database, isang Redis cache, at isang vector database, na lahat ay konektado gamit ang Docker Compose. Mas marami ito kaysa sa isang single binary, pero ang Compose ang humahawak sa koneksyon, at ang isang VPS na may libreng 2 GB na RAM ay sapat na para mapatakbo ito nang maayos.

Dahil hawak ng Dify ang iyong mga model API key at ang mga private documents na ginagamit para sa retrieval, ituring ang server na ito bilang sensitive mula sa simula. Ang guide na ito ay mag-i-install nito, at pagkatapos ay i-ha-harden ito gaya ng pag-harden sa anumang service na may hawak na mga secrets.

Prerequisites

Kailangan mo ng VPS na tumatakbo ang Ubuntu 24.04 na may installed na Docker at ang Docker Compose plugin, at isang user na may sudo o miyembro ng docker group. Kung bago ka pa sa Docker, ang basics ng Docker Compose sa isang VPS ay nagpapaliwanag ng install at ang mga core commands na kailangan sa guide na ito. Makakatulong din ang pagkakaroon ng domain name na nakaturo sa server, dahil mas mainam na gumamit ng TLS sa harap ng Dify kaysa sa bare IP address lang.

Step 1: Kunin ang Dify at ang mga Compose files nito

Ang Docker setup ng Dify ay nasa main repository. I-clone ito at pumunta sa docker directory:

git clone https://github.com/langgenius/dify.git
cd dify/docker
cp .env.example .env

Ang .env file ang kabuuan ng configuration. Basahin ito bago magsimula. Ang mga pinakaimportanteng value ay ang mga nagse-set ng passwords at secrets: SECRET_KEY, ang Postgres password, at ang Redis password. Ang example file ay may mga placeholder values; ang pag-iwan sa mga ito ay ang pinaka-karaniwang dahilan kung bakit nakokompromiso ang mga self-hosted na Dify. Gumawa ng totoong secret key:

openssl rand -base64 42

I-paste ito sa SECRET_KEY, at mag-set ng malakas at unique na value para sa bawat password field sa file.

Step 2: I-start ito

I-up ang stack:

docker compose up -d

Sa unang takbo, magda-download ito ng ilang images at i-i-initialize ang database, kaya maghintay ng ilang minuto. I-check kung healthy ang mga container:

docker compose ps

Dapat mabasa ng bawat service ang running. Ang Dify ay nagse-serve ng web interface gamit ang bundled nginx container sa port 80 by default. Sa unang pagbisita sa http://YOUR_SERVER/install, gagawa ka ng admin account. Gawin ito agad bago pa may ibang makaka-access sa port, dahil hangga't wala ang account na iyon, maaaring ma-claim ng sinumang naglo-load ng page ang iyong instance.

Step 3: Huwag itong i-expose nang direkta. Lagyan ng TLS at firewall sa harap

Dito nagkakamali ang karamihan sa mga quick install. Ang nginx ng Dify ay nakikinig sa port 80 nang walang encryption sa lahat ng interface. Hindi mo gustong dumaan sa plain HTTP ang iyong admin login at model keys, at hindi mo rin gustong ma-access ang internal services mula sa labas.

I-lock ang server gamit ang isang default-deny firewall na nagpapahintulot lamang ng SSH at web traffic:

sudo ufw default deny incoming
sudo ufw allow 22/tcp
sudo ufw allow 80/tcp
sudo ufw allow 443/tcp
sudo ufw enable

Tandaan na ang firewall na IPv4 lang ang sakop ay maaaring mag-iwan ng mga port na bukas sa IPv6, ang IPv6 firewall gap na nagiging sanhi ng problema sa maraming self-hosters. Siguraduhin na ang parehong stacks ay filtered.

Para sa TLS, ang pinakamalinis na paraan ay i-bind ang web port ng Dify sa loopback at magpatakbo ng reverse proxy na may Let's Encrypt certificate sa harap, para ang tanging nasa public internet ay ang proxy na gumagamit ng HTTPS. Maaari mong palitan ang exposed port ng Dify gamit ang .env; i-set ito sa 127.0.0.1 at ituro ang iyong proxy sa port na iyon. Ang mga agent-hardening ideas sa pagpapatakbo ng AI agent nang ligtas sa isang VPS ay applicable din dito: panatilihin ang mga moving parts sa loopback, i-expose lang ang dapat na public, at hayaan ang isang hardened front door ang mag-handle ng TLS.

Step 4: Panatilihing updated

Mabilis ang updates ng Dify, at kasama sa mga ito ang mga security fixes. Ang pag-update ay pull at restart lang mula sa docker directory:

git pull
docker compose pull
docker compose up -d

Basahin ang release notes bago mag-update sa isang major version, dahil minsan ay binabago ng Dify ang .env schema sa pagitan ng mga release, at ang isang bagong variable na hindi mo na-set ay maaaring magpahinto sa pag-start ng container.

Step 5: I-back up ang mga hindi na maaaring i-regenerate

Dalawang bagay sa Dify box ang hindi mapapalitan: ang Postgres database, na naglalaman ng iyong mga apps, users, at settings, at ang volume na nagtatago ng mga uploaded documents at vector index. Pareho silang nasa ilalim ng Docker volumes sa docker directory. Mag-set ng schedule para sa mga snapshot nito, at i-copy ang mga snapshot palabas ng server. Ang model API key ay maaaring i-reissue; ang app na isang linggo mong binuo ay hindi.

Para sa mas autonomous na code-running agent, tingnan ang self-hosting Agent Zero, at ang pagbuo ng sariling AI agent sa isang VPS ay nagpapaliwanag ng mga pundasyon para sa lahat ng ito.

FAQ

Ano ang system requirements para sa self-hosting ng Dify?

Ang Dify ay tumatakbo bilang isang Docker Compose stack na may halos anim na container, kaya magplano para sa isang VPS na may hindi bababa sa 2 GB na libreng RAM, mas mainam kung 4 GB, plus ilang CPU cores at sapat na disk space para sa iyong mga uploaded documents at vector index. Ang memory pressure ay nanggagaling sa database at vector store, hindi sa mismong Dify.

Ligtas ba na i-expose ang Dify nang direkta sa port 80?

Hindi. Ang bundled web server ng Dify ay nakikinig sa plain HTTP, at ito ang humaharang sa iyong admin login at model API keys. Maglagay ng reverse proxy na may Let's Encrypt certificate sa harap, i-bind ang port ng Dify sa loopback, at hayaan na lamang ang HTTPS proxy ang humarap sa internet. Samahan ito ng isang default-deny firewall na sakop ang IPv4 at IPv6.

Paano i-update ang isang self-hosted Dify?

Mula sa docker directory, i-run ang git pull, pagkatapos ay docker compose pull at docker compose up -d para i-fetch ang mga bagong images at mag-restart. Basahin muna ang release notes, dahil minsan ay nagdadagdag ang Dify ng mga bagong .env variables sa pagitan ng mga bersyon, at ang isang kulang na variable ay maaaring magpahinto sa pag-start ng container.

Ano ang unang dapat gawin pagkatapos i-install ang Dify?

Bisitahin ang /install at gumawa agad ng admin account. Hangga't wala ang account na iyon, maaaring ma-claim ng sinumang makakaabot sa page ang iyong instance. I-setup ito agad kapag healthy na ang mga container, at bago mo pa buksan ang firewall para sa buong mundo.