EQVPS

Docker Compose dla agentów AI: pełny self-hostowany stos na jednym VPS

6 wrz 2026 · 3 min czytania · EQVPS Team

Agent AI rzadko jest pojedynczym procesem. Jest sama pętla agenta, magazyn wektorowy na pamięć, cache, zwykle baza danych na stan i może mały panel. Uruchamianie każdego z osobna ręcznie — startowanie, restartowanie po reboocie, pamiętanie, który port jest który — szybko się nudzi. Docker Compose opisuje całość w jednym pliku i uruchamia jednym poleceniem. To stos kopiuj-wklej do postawienia agenta na VPS w schludny sposób.

Jeśli chcesz tylko wersję wdrożenia-bez-Dockera, przewodnik uruchamiania agenta AI 24/7 omawia zamiast tego systemd. Ta strona to wersja natywnie kontenerowa.

Stos

Typowy self-hostowany agent chce obok siebie czterech rzeczy: procesu agenta, Qdrant (pamięć wektorowa), Redis (cache / kolejki) i Postgres (stan). Oto docker-compose.yml, który uruchamia to wszystko, z usługami wewnętrznymi trzymanymi z dala od publicznego internetu:

# /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: {} }

Sekrety żyją w .env, nie w pliku compose:

# /opt/agent/.env  (chmod 600, never committed)
ANTHROPIC_API_KEY=sk-ant-...
DB_PASSWORD=a-long-random-string

Podnieś go:

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

Każda usługa wewnętrzna (Qdrant, Redis, Postgres) jest osiągalna tylko w sieci compose po nazwie usługi — żadna z nich nie jest opublikowana do internetu. Agent rozmawia z nimi przez tę prywatną sieć i nic na tych portach nie jest zwrócone ku światu.

Szczegóły, które mają znaczenie

Część, która naprawdę jest nasza: agent może zbudować sobie maszynę

Ponieważ EQVPS udostępnia serwer MCP, agent uruchamiający ten stos może sam zapewnić sobie kolejny czysty VPS — zamówić go, dostać roota, zburzyć — płacąc z przedpłaconego salda krypto. Stos compose, który potrzebuje świeżej piaskownicy, może ją postawić bez człowieka w pętli.

Dlaczego EQVPS dla zdockeryzowanego agenta

VPS dla agentów AI (przegląd) → · VPS dla Dockera → · Hostuj bazę wektorową dla pamięci agenta →

FAQ

Dlaczego uruchamiać agenta AI z Docker Compose zamiast gołych procesów?

Agent rzadko jest jednym procesem — to pętla agenta plus magazyn wektorowy, cache i zwykle baza danych. Compose opisuje cały stos w jednym pliku, podnosi wszystko jednym poleceniem, restartuje każdy element po awarii lub reboocie i trzyma usługi wewnętrzne (Postgres, Redis, Qdrant) w prywatnej sieci, więc wystawione jest tylko to, co wybierzesz. To najschludniejszy sposób na self-hosting agenta z ruchomymi częściami.

Jakiego planu potrzebuje stos agenta?

Dla agenta opartego na API (model działa u dostawcy) stos jest lekki — pętla agenta, Qdrant, Redis i Postgres mieszczą się wygodnie na naszym Small (8 $/mies.) lub planie AI-Agent (10 $/mies., 4 GB). Więcej RAM potrzebujesz tylko, gdy trzymasz duży indeks wektorowy w pamięci albo uruchamiasz model lokalny, co jest inną, cięższą konfiguracją.

Gdzie umieścić klucze API — w pliku compose?

Nie. Trzymaj sekrety w pliku .env (ignorowanym przez git) i odwołuj się do nich jako zmiennych środowiskowych w compose, albo użyj Docker secrets. Nigdy nie commituj kluczy do docker-compose.yml. Przypnij usługi wewnętrzne tylko do sieci compose; publikuj wyłącznie port agenta (albo nic, jeśli robi tylko wywołania wychodzące).

Czy kontenery wracają po reboocie?

Tylko jeśli im to powiesz. Ustaw restart: unless-stopped (albo always) na każdej usłudze i włącz Docker przy rozruchu; wtedy docker compose up -d przetrwa reboot i awarie. Bez polityki restartu kontener pozostaje wyłączony po ponownym uruchomieniu serwera.

Czy wymagacie KYC lub karty?

Nie. E-mail do rejestracji, płatność w USDC lub USDT — bez dokumentów, bez karty. Root w około minutę.

← Powrót do blogaZobacz plany i ceny →

Komentarze

Brak komentarzy. Bądź pierwszy.

Zostaw komentarz

Komentarze są moderowane przed pojawieniem się.