SSD Nodes Learn Hosting plans →
మార్గదర్శకాలు Matt Connorద్వారా Matt Connor · అప్‌డేట్ చేయబడింది 2026-08-30

VPSలో Docker Composeతో Difyని self-host చేయడం

Dify కోసం ఆరు containers నడుస్తాయి, కాబట్టి కనీసం 4 GB RAM బడ్జెట్ చేయండి. boot చేయడానికి ముందు .envలో ప్రతి secret మార్చి, /install వద్ద admin account సృష్టించండి.

Dify ఏమిటి, మీరు ఏది నడపడానికి సిద్ధమవుతున్నారు

Dify అనేది పెద్ద భాషా నమూనాల ఆధారంగా అప్లికేషన్లు రూపొందించడానికి ఉపయోగించే self-host చేయగల platform. Chat apps, agents, retrieval pipelines రూపొందించడానికి web interface, మీ స్వంత code నుంచి వాటిని పిలవడానికి API, అలాగే prompts, datasets, model keys నిర్వహించడానికి ఒకే కేంద్రం మీకు లభిస్తాయి. చిన్న బృందం అందరూ ఒకే shared private base పై నిర్మాణం చేయడానికి ఉపయోగించే సాధనం ఇది. API keys ను వేర్వేరు scripts లో చెల్లాచెదురుగా ఉంచాల్సిన అవసరం ఉండదు. agent, tool call, retrieval pipeline వంటి పదాలు ఇంకా స్పష్టంగా లేకపోతే, ముందుగా ఆ భావనలను మొదటి నుంచి అర్థం చేసుకోవడం మంచిది. అప్పుడు Dify builder screens లోని నియంత్రణలు అర్థం లేని switches సమూహంలా కాకుండా పరిచయమైన controls లా కనిపిస్తాయి.

దీన్ని మీరే నడపడం అంటే అనేక భాగాలను నడపడం. Dify Docker containers సమూహంగా అందుతుంది: API server, background worker, web frontend, Postgres database, Redis cache, vector database. ఇవన్నీ Docker Compose ద్వారా అనుసంధానించబడతాయి. ఇది ఒకే binary కంటే పెద్ద వ్యవస్థ. అయితే Compose ఈ అనుసంధానాలను నిర్వహిస్తుంది. కొంత అదనపు RAM ఉన్న రెండు gigabytes సామర్థ్యం గల VPS పై ఇది సౌకర్యంగా నడుస్తుంది. అదే VPS పై మరొక సేవను కూడా నడపబోతే, ప్రచారంలో చెప్పిన సంఖ్యల ఆధారంగా కాకుండా కొలిచిన వాస్తవ సంఖ్యల ఆధారంగా సామర్థ్యాన్ని నిర్ణయించండి. ఎందుకంటే PhotoPrism మరియు Immich కు వాస్తవంగా అవసరమైన కనిష్ఠ RAM ప్రచురించిన minimums కంటే చాలా ఎక్కువగా ఉంటుంది. అదే server పై photo server నడిస్తే, ముందుగా Dify database మరియు vector store కు RAM కొరత ఏర్పడుతుంది. CPU contention కూడా ఇదే విధంగా ప్రభావితం చేస్తుంది: 90s video store లా మార్చిన Jellyfin library artwork browsing మాత్రమే జరుగుతున్నప్పుడు దాదాపు ఎటువంటి వనరులు వినియోగించదు. కానీ ఎవరైనా transcode ప్రారంభించిన వెంటనే, Dify worker queues వెనుకబడతాయి. అయితే మీరు ఎన్ని apps నిర్మించినా Dify container count స్థిరంగానే ఉంటుంది. అందువల్ల ప్రతి AI coworker కు ప్రత్యేక container మరియు ప్రత్యేక browser ఉండే OpenBot కంటే దీని ఖర్చు మరింత స్థిరంగా ఉంటుంది. OpenBot లో ప్రతి కొత్త worker చేరినప్పుడు memory floor మళ్లీ పెరుగుతుంది.

Dify మీ model API keys ను, తరచుగా retrieval కోసం load చేసిన private documents ను కూడా నిల్వ చేస్తుంది. అందువల్ల ఇది నడిచే server ను మొదటి నిమిషం నుంచే sensitive system గా పరిగణించండి. ఈ guide ముందుగా దీన్ని install చేస్తుంది. తరువాత secrets నిల్వ చేసే ఏ సేవనైనా harden చేసినట్లే దీన్ని harden చేస్తుంది.

ముందస్తు అవసరాలు

మీకు Docker మరియు Docker Compose plugin ఇన్‌స్టాల్ చేసిన Ubuntu 24.04 నడుస్తున్న VPS అవసరం. అలాగే sudo ఉన్న user లేదా docker group లో membership ఉండాలి. Docker మీకు కొత్త అయితే, VPSలో Docker Compose ప్రాథమికాలులో installation మరియు ఈ guide ఆధారపడే ముఖ్యమైన commands వివరించబడ్డాయి. Server కు point చేసిన domain name ఉండటం ఉపయోగకరం. ఎందుకంటే bare IP address కంటే Dify ముందు TLS అమర్చడం మంచిది.

దశ 1: Dify మరియు దాని Compose ఫైళ్లను పొందండి

Dify తన Docker సెటప్‌ను ప్రధాన repositoryలో ఉంచుతుంది. దాన్ని clone చేసి docker directoryలోకి వెళ్లండి:

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

.env ఫైల్‌లో మొత్తం configuration ఉంటుంది. ఏదైనా ప్రారంభించే ముందు దాన్ని చదవండి. మొదట ముఖ్యమైనవి passwords మరియు secrets ను సెట్ చేసే విలువలు: SECRET_KEY, Postgres password, మరియు Redis password. ఉదాహరణ ఫైల్‌లో placeholder విలువలు ఉంటాయి. వాటిని అలాగే ఉంచడం వల్ల self-hosted Dify breached కావడం అత్యంత సాధారణ కారణం. నిజమైన secret keyని రూపొందించండి:

openssl rand -base64 42

దాన్ని SECRET_KEY లో paste చేసి, ఫైల్‌లోని ప్రతి password fieldకు బలమైన, ప్రత్యేకమైన విలువను సెట్ చేయండి.

దశ 2: దీన్ని ప్రారంభించండి

స్టాక్‌ను ప్రారంభించండి:

docker compose up -d

మొదటి సారి అనేక images download అవుతాయి మరియు database initialize అవుతుంది. అందువల్ల ఒక నిమిషం సమయం ఇవ్వండి. containers ఆరోగ్యంగా ఉన్నాయో తనిఖీ చేయండి:

docker compose ps

ప్రతి service running ను చదవాలి. Dify default‌గా port 80 పై bundled nginx container ద్వారా తన web interface ను అందిస్తుంది. http://YOUR_SERVER/install ను మొదటిసారి తెరిచినప్పుడు admin account ను సృష్టించండి. port ను మరెవరూ చేరుకోకముందే ఈ పని వెంటనే చేయాలి. ఆ account సృష్టించబడే వరకు page ను load చేసే ఎవరైనా దాన్ని claim చేసి, మీ instance పై నియంత్రణ పొందవచ్చు.

దశ 3: దీన్ని నేరుగా బహిర్గతం చేయవద్దు. ముందుగా TLS మరియు firewall ఉంచండి

ఇక్కడే చాలా త్వరిత ఇన్‌స్టాలేషన్లు ఆగిపోతాయి, అలాగే చాలా incidentలు ప్రారంభమవుతాయి. Dify యొక్క స్వంత nginx port 80పై, encryption లేకుండా, ప్రతి interfaceలో listening చేస్తుంది. మీ admin login మరియు model keys plain HTTP ద్వారా ప్రయాణించకూడదు. అంతర్గత సేవలు బయటి నుంచి అందుబాటులో ఉండకూడదు.

SSH మరియు web trafficను మాత్రమే అనుమతించే default-deny firewallతో ఈ systemను కఠినంగా రక్షించండి:

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

IPv4ను మాత్రమే కవర్ చేసే firewall, IPv6లో అదే portsను తెరిచి ఉంచవచ్చు. అనేక self-hosting setupsలో సమస్య కలిగించే IPv6 firewall gap ఇదే. రెండు network stacksలోనూ filtering అమలులో ఉందని నిర్ధారించండి.

TLS కోసం, Dify యొక్క web portను loopbackకు bind చేసి, ముందు భాగంలో Let's Encrypt certificateతో reverse proxy నడపడం అత్యంత శుభ్రమైన విధానం. అప్పుడు public internetలో HTTPS మాట్లాడే proxy మాత్రమే కనిపిస్తుంది. బహిర్గత portను మార్చడానికి Dify యొక్క .env ఉపయోగించవచ్చు. దాన్ని 127.0.0.1కు bind అయ్యేలా సెట్ చేసి, proxyను ఆ addressకు point చేయండి. VPSలో AI agentను సురక్షితంగా నడపడంలోని agent-hardening విధానాలు ఇక్కడ కూడా వర్తిస్తాయి: మారుతూ ఉండే భాగాలను loopbackలో ఉంచండి, publicగా ఉండాల్సిన వాటినే expose చేయండి, TLSను ఒక hardened front door ద్వారా నిర్వహించండి. ఒక tool interfaceను మీరు మాత్రమే ఉపయోగిస్తే, దానికి certificate అవసరం లేకపోతే proxyను దాటవేసి SSH tunnel ద్వారా చేరండి. open-kritt security scannerను self-hosting చేయడంలో dashboardను loopbackకు bind చేసి, publish చేయకుండా మీ laptopకు forward చేసే విధానం ఇదే. మొత్తం teamకు Dify అవసరమై, public internet ద్వారా access అవసరం లేకపోతే overlay network ఈ విధానాన్ని ఒక laptopకు మించి విస్తరిస్తుంది. server యొక్క private subnetను మీ tailnetకు ప్రచారం చేయడం ద్వారా అనుమతించిన ప్రతి device private addressలో builderను చేరుకోగలదు. అదే సమయంలో firewall SSH మినహా మిగతా అన్నింటికీ మూసి ఉంటుంది. ఈ boxను చేతితో కాకుండా coding agent ద్వారా administer చేస్తే, దానికి keys అప్పగించే ముందు అది ఎంతవరకు unsupervisedగా పనిచేయవచ్చో నిర్ణయించండి. ఎందుకంటే Claude Codeలో మీరు వదిలే permission mode .envను తిరిగి రాయడానికి లేదా stackను restart చేయడానికి ముందు అది అనుమతి అడుగుతుందా లేదా అన్నది నిర్ణయిస్తుంది. ఒక session container logsను tail చేస్తుండగా, మరో session proxy configను edit చేస్తే, ఆ రెండు sessions ఒకే boxలో పరస్పరం text పంపుకోగలవు. ప్రతిసారి stackను restart చేసినప్పుడు outputను terminals మధ్య copy చేయాల్సిన అవసరం ఉండదు.

దశ 4: ఎల్లప్పుడూ తాజా ప్యాచ్‌లను అమలు చేయండి

Dify వేగంగా అభివృద్ధి చెందుతుంది. దాని updates లో security fixes కూడా ఉంటాయి. Update చేయడానికి docker directory నుంచి pull చేసి restart చేయాలి:

git pull
docker compose pull
docker compose up -d

Major version jump కు ముందు release notes చదవండి. కారణం, releases మధ్య Dify అప్పుడప్పుడు .env schema ను మార్చుతుంది. మీరు set చేయని కొత్త variable వల్ల container ప్రారంభం కాకపోవచ్చు.

దశ 5: తిరిగి రూపొందించలేని డేటాను బ్యాకప్ చేయండి

Dify server‌లో తిరిగి పొందలేనివి రెండు ఉన్నాయి: మీ apps, users, settings ను నిల్వ చేసే Postgres database, అలాగే upload చేసిన documents మరియు vector index ను నిల్వ చేసే volume. ఇవి రెండూ docker directory లోని Docker volumes కింద ఉంటాయి. నిర్దిష్ట షెడ్యూల్ ప్రకారం వీటి snapshots తీసి, ఆ snapshots ను server వెలుపలికి copy చేయండి. ఈ snapshots లో ప్రతి model key మరియు upload చేసిన document ఒకే file లో ఉంటాయి. అందువల్ల అవి server వెలుపలికి వెళ్లే ముందు encrypt చేయండి. దీనికి కారణం లేకపోతే బలమైన password server‌లో Vaultwarden backup బలహీనమైన అంశంగా మారవచ్చు. Model API key ను మళ్లీ జారీ చేయవచ్చు. మీరు ఒక వారం వెచ్చించి రూపొందించిన app ను మాత్రం తిరిగి రూపొందించలేరు. యంత్రం ఆగిపోయిన తర్వాత కూడా state కొనసాగాల్సిన ఏ agent‌కైనా ఇదే విధానం వర్తిస్తుంది: KiroCrew ను ఎల్లప్పుడూ నడిచే container‌గా ఉంచడం అంటే తదుపరి reboot సమయంలో మాయమయ్యే memory మరియు schedules ను snapshot చేయడం.

ఇక్కడ రూపొందించే agents మీ స్వంత datasets ను దాటి live web ను search చేయాలంటే, వాటిని self-hosted SearXNG instance‌కు అనుసంధానించడం query stream ను మీరు నియంత్రించే hardware పైనే ఉంచుతుంది. అయితే దాన్ని ప్రారంభించే ముందు ఏర్పడే prompt injection surface గురించి చదవడం మంచిది. మరింత autonomous‌గా code run చేసే agent కోసం self-hosting Agent Zero చూడండి. వీటి అన్నింటికీ ఆధారమైన పునాదుల కోసం VPS పై మీ స్వంత AI agent‌ను రూపొందించడం చూడండి.

FAQ

Dify ను స్వయంగా హోస్ట్ చేయడానికి అవసరమైన సిస్టమ్ వనరులు ఏమిటి?

Dify సుమారు అర డజను containers కలిగిన Docker Compose stack గా నడుస్తుంది. కాబట్టి కనీసం 2 GB ఖాళీ RAM, సాధ్యమైనంతవరకు 4 GB RAM ఉన్న VPS ను ఉపయోగించండి. అదనంగా రెండు CPU cores మరియు మీరు upload చేసే documents, vector index కోసం తగినంత disk space అవసరం. Memory వినియోగానికి ప్రధాన కారణం database మరియు vector store. Dify స్వయంగా ప్రధాన కారణం కాదు.

Dify ను నేరుగా port 80 పై అందుబాటులో ఉంచడం సురక్షితమేనా?

కాదు. Dify తో వచ్చే web server plain HTTP పై listen చేస్తుంది. ఇది మీ admin login మరియు model API keys కు ముందు పొరగా ఉంటుంది. ముందు Let's Encrypt certificate తో reverse proxy ను అమర్చండి. Dify యొక్క స్వంత port ను loopback కు bind చేయండి. Internet కు HTTPS proxy మాత్రమే అందుబాటులో ఉండేలా చేయండి. IPv4 మరియు IPv6 రెండింటినీ కవర్ చేసే default-deny firewall ను కూడా అమలు చేయండి.

స్వయంగా హోస్ట్ చేసిన Dify ను ఎలా update చేయాలి?

docker directory నుంచి git pull ను run చేయండి. తరువాత కొత్త images ను fetch చేసి restart చేయడానికి docker compose pull మరియు docker compose up -d ను run చేయండి. ముందుగా release notes చదవండి. ఎందుకంటే Dify కొన్నిసార్లు versions మధ్య కొత్త .env variables ను జోడిస్తుంది. అవసరమైన variable లేకపోతే container ప్రారంభం కాకపోవచ్చు.

Dify ను install చేసిన తరువాత ముందుగా చేయాల్సిన పని ఏమిటి?

/install ను open చేసి వెంటనే admin account ను create చేయండి. ఆ account ఏర్పడే వరకు ఆ page ను చేరుకోగల ఎవరైనా దానిని claim చేయగలరు. Containers healthy అయిన వెంటనే దీన్ని configure చేయండి. Firewall ను ప్రపంచానికి open చేయడానికి ముందే ఈ పని పూర్తి చేయండి.