ШІ-агент рідко буває одним процесом. Є сам цикл агента, векторне сховище для пам'яті, кеш, зазвичай база даних для стану і, можливо, невелика панель. Запускати кожне з цього вручну — стартувати, перезапускати після перезавантаження, пам'ятати, який порт де — швидко набридає. Docker Compose описує все це в одному файлі й запускає однією командою. Це копійований стек для того, щоб розмістити агента на VPS охайно.
Якщо ви просто хочете версію без Docker, гайд із запуску ШІ-агента 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-змінні; тримайте.envнаchmod 600і поза git. Витеклий compose-файл із живим ключем — класична помилка. - Не публікуйте нічого зайвого. Агенту, який лише викликає API моделей і власні сервіси, взагалі не потрібен вхідний порт — тож підійде NAT-тариф. Додавайте виділений IP, лише якщо він обслуговує вебхуки чи панель.
- Розмір за пам'яттю, не за ядрами. Агенти на API легкі. Якщо індекс Qdrant росте великим або ви додаєте локальну модель — саме тоді ви піднімаєтеся вище — дивіться VPS з великою пам'яттю для агентів.
Частина, яка справді наша: агент може побудувати собі машину
Оскільки EQVPS надає MCP-сервер, агент, що запускає цей стек, може сам розгорнути інший чистий VPS — замовити його, отримати root, знести — оплачуючи з передплаченого крипто-балансу. Compose-стек, якому потрібна свіжа пісочниця, може підняти її без людини в циклі.
Чому EQVPS для агента в Docker
- Чисті образи, root за ~60 секунд. Ubuntu/Debian;
docker compose up— і стек живий. - Без KYC, оплата криптою. Email для реєстрації, USDC/USDT для оплати — ніщо не прив'язує машину до вашої особи.
- NVMe + безлімітний 1 Гбіт/с, ЄС (Німеччина/Фінляндія). Скачування образів і відправка логів не породять несподіваного рахунку.
VPS для ШІ-агентів (огляд) → · VPS для Docker → · Хостинг векторної БД для пам'яті агента →
Коментарі
Поки немає коментарів. Будьте першим.