EQVPS

AI ایجنٹس کے لیے Docker Compose: ایک ہی VPS پر مکمل سیلف-ہوسٹڈ اسٹیک

Sep 6, 2026 · 4 منٹ پڑھنا · 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 ہوسٹ کریں →

عمومی سوالات

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۔

← بلاگ پر واپسپلانز اور قیمتیں دیکھیں →

تبصرے

ابھی کوئی تبصرہ نہیں۔ پہلے بنیں۔

ایک تبصرہ چھوڑیں

تبصرے ظاہر ہونے سے پہلے moderate کیے جاتے ہیں۔