EQVPS

AI एजेंट के लिए Docker Compose: एक ही VPS पर पूरा सेल्फ-होस्टेड स्टैक

6 सित॰ 2026 · 3 मिनट पढ़ने में · EQVPS Team

एक 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 नेटवर्क पर सेवा नाम से पहुँच योग्य है — इनमें से कोई भी इंटरनेट पर पब्लिश नहीं है। एजेंट उस निजी नेटवर्क पर उनसे बात करता है, और उन पोर्ट पर कुछ भी दुनिया की ओर मुँह नहीं किए है।

जो विवरण मायने रखते हैं

जो हिस्सा असल में हमारा है: एजेंट अपनी मशीन खुद बना सकता है

चूँकि EQVPS एक MCP सर्वर उपलब्ध कराता है, इस स्टैक को चलाने वाला एजेंट खुद एक और साफ़ VPS प्रोविज़न कर सकता है — उसे ऑर्डर करना, root लेना, गिरा देना — एक प्रीपेड क्रिप्टो बैलेंस से भुगतान करते हुए। जिस compose स्टैक को एक नया सैंडबॉक्स चाहिए, वह बिना किसी इंसान के लूप में एक उठा सकता है।

Docker वाले एजेंट के लिए EQVPS क्यों

AI एजेंट के लिए VPS (अवलोकन) → · Docker के लिए VPS → · एजेंट मेमोरी के लिए वेक्टर DB होस्ट करें →

FAQ

AI एजेंट को नंगे प्रोसेस के बजाय Docker Compose से क्यों चलाएँ?

एजेंट शायद ही कभी सिर्फ़ एक प्रोसेस होता है — यह एजेंट लूप के साथ एक वेक्टर स्टोर, एक कैश और आमतौर पर एक डेटाबेस होता है। Compose पूरे स्टैक को एक फ़ाइल में वर्णित करता है, सबको एक कमांड से उठाता है, क्रैश या रीबूट पर हर हिस्से को फिर चालू करता है, और आंतरिक सेवाओं (Postgres, Redis, Qdrant) को एक निजी नेटवर्क पर रखता है ताकि केवल वही उजागर हो जो आप चुनें। चलती-फिरती हिस्सों वाले एजेंट को सेल्फ-होस्ट करने का यह सबसे साफ़-सुथरा तरीका है।

एजेंट स्टैक को कौन सा प्लान चाहिए?

API-आधारित एजेंट (मॉडल आपके प्रोवाइडर पर चलता है) के लिए स्टैक हल्का है — एजेंट लूप, Qdrant, Redis और Postgres हमारे Small ($8/माह) या AI-Agent प्लान ($10/माह, 4 GB) पर आराम से आ जाते हैं। और RAM तभी चाहिए जब आप मेमोरी में एक बड़ा वेक्टर इंडेक्स रखें या कोई लोकल मॉडल चलाएँ, जो एक अलग, भारी सेटअप है।

API कुंजियाँ कहाँ रखूँ — compose फ़ाइल में?

नहीं। सीक्रेट्स को एक .env फ़ाइल में रखें (git-ignored) और compose में उन्हें एनवायरनमेंट वेरिएबल के रूप में संदर्भित करें, या Docker secrets उपयोग करें। कुंजियाँ कभी docker-compose.yml में कमिट न करें। आंतरिक सेवाओं को केवल compose नेटवर्क से बाँधें; सिर्फ़ एजेंट का पोर्ट पब्लिश करें (या कुछ नहीं, यदि वह केवल आउटबाउंड कॉल करता है)।

क्या कंटेनर रीबूट के बाद वापस आते हैं?

तभी जब आप उन्हें बताएँ। हर सेवा पर restart: unless-stopped (या always) सेट करें और Docker को बूट पर चालू करें; तब docker compose up -d रीबूट और क्रैश झेलता है। रीस्टार्ट पॉलिसी के बिना कंटेनर सर्वर रीस्टार्ट के बाद बंद रहता है।

क्या आप KYC या कार्ड माँगते हैं?

नहीं। साइन अप के लिए एक ईमेल, USDC या USDT में भुगतान — कोई दस्तावेज़ नहीं, कोई कार्ड नहीं। लगभग एक मिनट में root।

← ब्लॉग पर वापसप्लान और मूल्य देखें →

टिप्पणियाँ

अभी तक कोई टिप्पणी नहीं। पहले बनें।

एक टिप्पणी छोड़ें

टिप्पणियाँ दिखने से पहले मॉडरेट की जाती हैं।