Um agente de IA raramente é um único processo. Tem o loop do agente em si, um armazenamento vetorial para memória, um cache, normalmente um banco de dados para estado, e talvez um pequeno painel. Rodar cada um à mão — iniciá-los, reiniciá-los após um reboot, lembrar qual porta é qual — cansa rápido. O Docker Compose descreve tudo isso num arquivo e roda com um comando. Este é o stack copiar-colar para pôr um agente num VPS de forma organizada.
Se você quer só a versão implantada-sem-Docker, o guia de rodar um agente de IA 24/7 cobre systemd. Esta página é a versão nativa de contêineres.
O stack
Um agente auto-hospedado típico quer quatro coisas ao seu lado: o processo do agente, Qdrant (memória vetorial), Redis (cache / filas) e Postgres (estado). Aqui vai um docker-compose.yml que roda tudo isso, com os serviços internos mantidos fora da internet pública:
# /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: {} }
Os segredos vivem no .env, não no arquivo compose:
# /opt/agent/.env (chmod 600, never committed)
ANTHROPIC_API_KEY=sk-ant-...
DB_PASSWORD=a-long-random-string
Suba:
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
Cada serviço interno (Qdrant, Redis, Postgres) é acessível apenas na rede compose pelo nome do serviço — nenhum deles é publicado na internet. O agente fala com eles por essa rede privada, e nada nessas portas dá para o mundo.
Os detalhes que importam
restart: unless-stoppedem cada serviço — é o que sobrevive a um reboot ou queda. Habilite o Docker no boot e todo o stack volta sozinho.- Chaves no
.env, não no YAML. Referencie-as como variáveis env; mantenha.envemchmod 600e fora do git. Um arquivo compose vazado com uma chave ativa é o erro clássico. - Não publique nada que não precise. Um agente que só chama APIs de modelos e seus próprios serviços não precisa de porta de entrada nenhuma — então um plano NAT serve. Adicione um IP dedicado só se ele servir webhooks ou um painel.
- Dimensione por memória, não por núcleos. Agentes apoiados em API são leves. Se o índice do Qdrant crescer ou você adicionar um modelo local, é aí que você sobe — veja VPS de alta memória para agentes.
A parte que é de fato nossa: o agente pode construir sua própria máquina
Como o EQVPS expõe um servidor MCP, um agente rodando este stack pode provisionar outro VPS limpo sozinho — pedi-lo, obter root, destruí-lo — pagando de um saldo cripto pré-pago. Um stack compose que precisa de um sandbox novo pode subir um sem humano no loop.
Por que EQVPS para um agente dockerizado
- Imagens limpas, root em ~60 segundos. Ubuntu/Debian;
docker compose upe o stack está no ar. - Sem KYC, pagamento em cripto. E-mail para registrar, USDC/USDT para pagar — nada que amarre a máquina à sua identidade.
- NVMe + 1 Gbit/s não medido, UE (Alemanha/Finlândia). Puxar imagens e enviar logs não produzirá uma conta surpresa.
VPS para agentes de IA (a visão geral) → · VPS para Docker → · Hospedar um banco vetorial para a memória do agente →
Comentários
Nenhum comentário ainda. Seja o primeiro.