AI აგენტი იშვიათად არის ერთი პროცესი. არის თავად აგენტის მარყუჟი, ვექტორული საცავი მეხსიერებისთვის, ქეში, ჩვეულებრივ მონაცემთა ბაზა მდგომარეობისთვის, და შესაძლოა პატარა დაფა. თითოეულის ხელით გაშვება — მათი დაწყება, გადატვირთვის შემდეგ ხელახლა აწევა, იმის დამახსოვრება, რომელი პორტი რომელია — სწრაფად მოსაბეზრებელი ხდება. Docker Compose მთელ საქმეს ერთ ფაილში აღწერს და ერთი ბრძანებით უშვებს. ეს არის copy-paste სტეკი აგენტის VPS-ზე სუფთად დასადებად.
თუ მხოლოდ Docker-ის გარეშე განთავსების ვერსია გინდა, AI აგენტის 24/7 გაშვების გზამკვლევი ამის ნაცვლად systemd-ს ფარავს. ეს გვერდი კონტეინერ-ნეიტიური ვერსიაა.
სტეკი
ტიპური self-hosted აგენტს გვერდით ოთხი რამ სურს: აგენტის პროცესი, 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 ცვლადებად; შეინახე.envchmod 600-ზე და git-ის გარეთ. გაჟონილი compose ფაილი ცოცხალი გასაღებით კლასიკური შეცდომაა. - არაფერი გამოაქვეყნო, რაც სავალდებულო არ არის. აგენტს, რომელიც მხოლოდ მოდელის API-ებსა და საკუთარ სერვისებს იძახებს, შემომავალი პორტი საერთოდ არ სჭირდება — ამიტომ NAT გეგმა მუშაობს. გამოყოფილი IP დაამატე მხოლოდ თუ ის webhooks-ს ან დაფას ემსახურება.
- მეხსიერებით აზომე, არა ბირთვებით. API-ზე დაფუძნებული აგენტები მსუბუქია. როცა Qdrant-ის ინდექსი გაიზრდება ან ლოკალურ მოდელს დაამატებ, სწორედ მაშინ ადიხარ ზემოთ — იხ. მაღალი-მეხსიერების VPS აგენტებისთვის.
ნაწილი, რომელიც ნამდვილად ჩვენია: აგენტს შეუძლია საკუთარი მანქანის აგება
რადგან EQVPS-ს გამოაქვს MCP სერვერი, ამ სტეკის გამშვებ აგენტს შეუძლია თავად მოამზადოს კიდევ ერთი სუფთა VPS — შეუკვეთოს, მიიღოს root, დაანგრიოს — გადაიხადოს წინასწარ გადახდილი კრიპტო ბალანსიდან. compose სტეკი, რომელსაც ახალი sandbox სჭირდება, შეუძლია ერთი ასწიოს ადამიანის ჩართვის გარეშე.
რატომ EQVPS Docker-იზებული აგენტისთვის
- სუფთა იმიჯები, root ~60 წამში. Ubuntu/Debian;
docker compose upდა სტეკი ცოცხალია. - KYC-ის გარეშე, გადახდა კრიპტოთი. ელფოსტა რეგისტრაციისთვის, USDC/USDT გადასახდელად — არაფერი აკავშირებს მანქანას შენს ვინაობასთან.
- NVMe + გაუზომავი 1 Gbit/s, ევროკავშირი (გერმანია/ფინეთი). იმიჯების ჩამოტვირთვა და ლოგების გაგზავნა მოულოდნელ ანგარიშს არ წარმოქმნის.
VPS AI აგენტებისთვის (მიმოხილვა) → · VPS Docker-ისთვის → · უმასპინძლე ვექტორულ DB-ს აგენტის მეხსიერებისთვის →
კომენტარები
ჯერ არ არის კომენტარები. იყავით პირველი.