एक AI एजेंट शायद ही कभी एकल प्रोसेस होता है। एजेंट लूप खुद है, मेमोरी के लिए एक वेक्टर स्टोर, एक कैश, आमतौर पर स्टेट के लिए एक डेटाबेस, और शायद एक छोटा डैशबोर्ड। इनमें से हर एक को हाथ से चलाना — उन्हें शुरू करना, रीबूट के बाद फिर चालू करना, याद रखना कि कौन सा पोर्ट कौन सा है — जल्दी उबाऊ हो जाता है। Docker Compose पूरी चीज़ को एक फ़ाइल में वर्णित करता है और एक कमांड से चलाता है। यह एजेंट को VPS पर साफ़-सुथरे ढंग से रखने का कॉपी-पेस्ट स्टैक है।
अगर आप सिर्फ़ Docker-रहित डिप्लॉय वाला संस्करण चाहते हैं, तो AI एजेंट 24/7 चलाने की गाइड इसके बजाय systemd को कवर करती है। यह पृष्ठ कंटेनर-नेटिव संस्करण है।
स्टैक
एक सामान्य सेल्फ-होस्टेड एजेंट अपने साथ चार चीज़ें चाहता है: एजेंट प्रोसेस, Qdrant (वेक्टर मेमोरी), Redis (कैश / क्यू) और Postgres (स्टेट)। यह रहा एक docker-compose.yml जो यह सब चलाता है, आंतरिक सेवाओं को सार्वजनिक इंटरनेट से दूर रखते हुए:
# /opt/agent/docker-compose.yml
services:
agent:
build: . # your agent image (or image: your/agent:latest)
restart: unless-stopped
env_file: [.env] # OPENAI/ANTHROPIC keys etc. — never in this file
environment:
QDRANT_URL: http://qdrant:6333
REDIS_URL: redis://redis:6379
DATABASE_URL: postgres://agent:${DB_PASSWORD}@postgres:5432/agent
depends_on: [qdrant, redis, postgres]
# no ports: — this agent only makes outbound calls. Publish one only if it serves webhooks.
qdrant:
image: qdrant/qdrant:latest
restart: unless-stopped
volumes: ["qdrant:/qdrant/storage"] # internal only — not published
redis:
image: redis:7-alpine
restart: unless-stopped
command: ["redis-server", "--save", "60", "1"]
volumes: ["redis:/data"]
postgres:
image: postgres:16-alpine
restart: unless-stopped
environment:
POSTGRES_USER: agent
POSTGRES_PASSWORD: ${DB_PASSWORD}
POSTGRES_DB: agent
volumes: ["pg:/var/lib/postgresql/data"]
volumes: { qdrant: {}, redis: {}, pg: {} }
सीक्रेट्स .env में रहते हैं, compose फ़ाइल में नहीं:
# /opt/agent/.env (chmod 600, never committed)
ANTHROPIC_API_KEY=sk-ant-...
DB_PASSWORD=a-long-random-string
इसे उठाएँ:
apt update && apt install -y docker.io docker-compose-v2
systemctl enable --now docker
cd /opt/agent && docker compose up -d
docker compose logs -f agent
हर आंतरिक सेवा (Qdrant, Redis, Postgres) केवल compose नेटवर्क पर सेवा नाम से पहुँच योग्य है — इनमें से कोई भी इंटरनेट पर पब्लिश नहीं है। एजेंट उस निजी नेटवर्क पर उनसे बात करता है, और उन पोर्ट पर कुछ भी दुनिया की ओर मुँह नहीं किए है।
जो विवरण मायने रखते हैं
- हर सेवा पर
restart: unless-stopped— यही रीबूट या क्रैश झेलता है। Docker को बूट पर चालू करें और पूरा स्टैक खुद वापस आ जाता है। - कुंजियाँ
.envमें, YAML में नहीं। उन्हें env वेरिएबल के रूप में संदर्भित करें;.envकोchmod 600पर और git से बाहर रखें। लाइव कुंजी वाली लीक हुई compose फ़ाइल क्लासिक गलती है। - जो पब्लिश करना ज़रूरी न हो न करें। ऐसा एजेंट जो केवल मॉडल API और अपनी सेवाओं को कॉल करता है, उसे कोई इनबाउंड पोर्ट चाहिए ही नहीं — तो NAT प्लान चलता है। समर्पित IP केवल तब जोड़ें जब वह webhook या डैशबोर्ड सर्व करता हो।
- मेमोरी के हिसाब से आकार चुनें, कोर के नहीं। API-आधारित एजेंट हल्के हैं। जब Qdrant का इंडेक्स बड़ा हो जाए या आप लोकल मॉडल जोड़ें, तभी आप ऊपर बढ़ते हैं — देखें एजेंट के लिए हाई-मेमोरी VPS।
जो हिस्सा असल में हमारा है: एजेंट अपनी मशीन खुद बना सकता है
चूँकि EQVPS एक MCP सर्वर उपलब्ध कराता है, इस स्टैक को चलाने वाला एजेंट खुद एक और साफ़ VPS प्रोविज़न कर सकता है — उसे ऑर्डर करना, root लेना, गिरा देना — एक प्रीपेड क्रिप्टो बैलेंस से भुगतान करते हुए। जिस compose स्टैक को एक नया सैंडबॉक्स चाहिए, वह बिना किसी इंसान के लूप में एक उठा सकता है।
Docker वाले एजेंट के लिए EQVPS क्यों
- साफ़ इमेज, ~60 सेकंड में root। Ubuntu/Debian;
docker compose upऔर स्टैक लाइव। - कोई KYC नहीं, क्रिप्टो में भुगतान। रजिस्टर के लिए ईमेल, भुगतान के लिए USDC/USDT — कुछ भी मशीन को आपकी पहचान से नहीं बाँधता।
- NVMe + बिना मीटर 1 Gbit/s, EU (जर्मनी/फ़िनलैंड)। इमेज खींचना और लॉग भेजना कोई चौंकाने वाला बिल नहीं बनाएगा।
AI एजेंट के लिए VPS (अवलोकन) → · Docker के लिए VPS → · एजेंट मेमोरी के लिए वेक्टर DB होस्ट करें →
टिप्पणियाँ
अभी तक कोई टिप्पणी नहीं। पहले बनें।