Como colocar uma API de IA em produção numa VPS?
Publicado em 21 de outubro de 2026 · 5 min de leitura
O caminho mais seguro tem cinco passos: empacotar a API num contêiner Docker, publicar só por um proxy reverso com HTTPS, guardar chaves em variáveis de ambiente, limitar o uso por cliente e monitorar erros e custo do modelo. Uma API que chama modelos por API externa roda bem numa VPS de 2 vCPU e 8 GB (Cloud S, R$ 349); com modelo local, some a memória dele.
Que estrutura uma API de IA precisa em produção?
- A aplicação: FastAPI (Python) ou Express e Fastify (Node.js), servida por um servidor de produção (Uvicorn ou Gunicorn no Python).
- Proxy reverso: Caddy, Traefik ou Nginx, que recebe a internet na porta 443, emite o certificado HTTPS (Let's Encrypt) e repassa à aplicação.
- Banco e cache: PostgreSQL para dados, Redis para fila e limites de uso.
- Segredos: chaves de provedores de IA e senhas fora do código.
Por que usar Docker e versões fixas?
O contêiner leva o código e as dependências exatas. A mesma imagem que passou nos testes é a que roda no servidor. Dê a cada versão uma tag única (data e hora, por exemplo) em vez de latest: assim você sabe o que está no ar e volta para a versão anterior com um comando se algo der errado.
Como proteger as chaves de API?
- Variáveis de ambiente declaradas no arquivo de implantação, com os valores num cofre ou num arquivo fora do repositório.
- Um verificador de segredos no git (hook de pre-commit) para barrar chave antes do commit.
- Chaves diferentes por ambiente (teste e produção) e por aplicação, para saber quem gastou e revogar sem derrubar o resto.
- Nunca devolva a chave do provedor ao navegador do cliente: o navegador fala com a sua API, e só a sua API fala com o provedor.
Como limitar o uso para o custo não explodir?
Cada chamada ao modelo custa tokens. Um cliente com erro em loop, ou um robô na internet, pode gerar milhares de chamadas numa noite. Coloque:
- autenticação em toda rota (chave por cliente ou sessão);
- limite de requisições por minuto por chave (rate limit, com Redis);
- limite de tokens por requisição e de gasto por dia, com alerta;
- timeout na chamada ao modelo, para não acumular conexões penduradas.
O que monitorar depois que a API está no ar?
- Disponibilidade: uma rota
/healthverificada de fora a cada minuto. - Erros do provedor de IA: limites de taxa, chave inválida e quedas aparecem como erro 429 ou 5xx.
- Tempo de resposta por etapa (veja por que o chatbot demora).
- Consumo de tokens por cliente e por dia.
- Memória e disco da VPS, com alerta antes de encher.
Como atualizar sem derrubar o serviço?
- Construa a imagem nova com tag nova.
- Suba o contêiner novo ao lado do antigo; o proxy só manda tráfego quando o
/healthresponder. - Confira em produção que a versão nova é a que responde.
- Guarde a tag anterior para voltar em um comando.
Para escrever e testar a API com agentes de IA antes de publicar, veja vibe coding em servidor remoto; para dimensionar a máquina, que servidor um agente de IA precisa.
Qual a estrutura mínima de arquivos de um deploy?
Dockerfile: imagem enxuta (basepython:3.12-slimounode:22-slim), dependências com versão fixa e usuário sem privilégio.docker-compose.yml: a API, o PostgreSQL, o Redis e o proxy, cada um com volume próprio e só o proxy publicando portas..env.example: a lista das variáveis necessárias, sem valores reais; o.envverdadeiro fica fora do git..gitignorecriado antes do primeiro commit, com.env, dados e logs.- Um script de implantação que constrói a imagem com tag nova, sobe, testa o
/healthe registra a tag no ar.
Com isso no repositório, qualquer pessoa da equipe (ou um agente de IA) reconstrói o ambiente do zero numa VPS nova em minutos.
Onde guardar os logs da API?
Logs mostram o que aconteceu quando o cliente reclama. Grave em formato estruturado (uma linha JSON por requisição) com data, rota, cliente, tempo de resposta e erro, e configure rotação para o disco não encher. Não grave a chave de API nem dados pessoais completos no log: mascare CPF, telefone e e-mail. Logs com dados de clientes também entram na política de retenção da LGPD (veja IA e LGPD).
Perguntas frequentes
Posso publicar a API sem HTTPS?
Não deveria. Sem HTTPS, chaves e dados trafegam abertos, e muitos serviços, como os webhooks do WhatsApp, recusam endereço sem certificado válido.
Preciso de Kubernetes para uma API de IA?
Não para começar. Uma VPS com Docker Compose ou Docker Swarm atende a maioria das APIs; Kubernetes faz sentido com muitos serviços e equipes.
Como evitar que alguém gaste meus tokens?
Com autenticação em toda rota, limite de requisições por chave, teto de gasto diário com alerta e a chave do provedor guardada só no servidor.
Quanto de memória a API usa?
Pouco, se o modelo roda no provedor: algumas centenas de megabytes por processo. O que soma é banco, cache e, se houver, o modelo local.
Como volto para a versão anterior se der erro?
Com tag fixa por versão: troque a imagem do serviço pela tag anterior e o sistema volta em segundos.
A API pode rodar na mesma VPS do banco de dados?
Pode, e é o comum no começo, com o banco acessível só pela rede interna do Docker. Separe em outra VPS quando o banco crescer ou quando uma atualização da API não puder arriscar o banco junto.
Quer ver isso no seu caso?
Fale com o time técnico da NuvoCloud pelo WhatsApp ou ligue grátis no 0800 123 4657.
Falar no WhatsApp