Este documento contém instruções para fazer deploy da API Browser-use em uma VPS usando Easypanel e Nixpacks 1.30.
- Uma VPS com Easypanel instalado
- Conhecimento básico de Git e Docker
- Chaves de API para os modelos de linguagem que deseja utilizar
- Clone este repositório em sua máquina local ou diretamente na VPS
- Copie o arquivo
.env.examplepara.enve preencha as variáveis de ambiente necessárias
Acesse o painel do Easypanel instalado em sua VPS através do navegador.
- Clique em "Create project"
- Escolha a opção "Website" ou "Custom"
- Preencha o nome do projeto (exemplo: "browser-use-api")
- Configure o domínio ou subdomínio para acessar a API
Na tela de configuração do projeto:
- Escolha Build from source
- Insira o URL do seu repositório Git (GitHub, GitLab, etc.)
- Em "Build settings", selecione Dockerfile como o builder (recomendado)
- Alternativamente, você pode usar Nixpacks com a versão 1.30 ou superior
- Em "Start command" deixe em branco (o comando está definido no Dockerfile/nixpacks.toml)
Configure os recursos de acordo com as necessidades da aplicação:
- CPU: Recomendado pelo menos 1 vCPU
- RAM: Mínimo de 2GB para funcionamento adequado
- Armazenamento: 10GB ou mais
Configure as variáveis de ambiente necessárias:
- Vá para a seção "Environment Variables"
- Adicione todas as variáveis do seu arquivo
.env - Certifique-se de adicionar pelo menos:
OPENAI_API_KEYou outra API key necessária para o modelo de linguagemGOOGLE_API_KEY- Obrigatória para funcionar com o Google Generative AIPORT(definido como 8000)BROWSER_USE_HEADLESS=true- Recomendado para maior estabilidade em ambiente de produção
- Clique em "Deploy" para iniciar o processo de build e deploy
- Acompanhe os logs para verificar se a build está sendo executada corretamente
- Após a conclusão, a API estará disponível no domínio configurado
Após o deploy, teste a API fazendo uma requisição HTTP para o endpoint /health:
curl https://seu-dominio.com/healthSe o retorno for {"status": "healthy"}, a API está funcionando corretamente.
Para testar a funcionalidade completa, faça uma requisição para o endpoint /run:
curl -X POST https://seu-dominio.com/run \
-H "Content-Type: application/json" \
-d '{
"task": "Busque o título da página inicial do Google",
"llm_config": {
"provider": "openai",
"model_name": "gpt-4o",
"temperature": 0.0
},
"browser_config": {
"headless": true,
"disable_security": true
},
"max_steps": 5,
"use_vision": true
}'Se o servidor ficar travado na mensagem "Verificando instalação dos navegadores Playwright..." ou "Iniciando servidor com xvfb-run..." por mais de 10 minutos:
-
Verifique os logs completos: Use
docker logs -f nome-do-containerpara visualizar todos os logs da aplicação e identificar onde está travando. -
Verifique recursos do sistema: Certifique-se de que a VPS tem memória suficiente (mínimo 2GB recomendado). A instalação do Playwright pode falhar silenciosamente se não houver memória suficiente.
-
Ative o modo headless puro:
- Adicione a variável de ambiente
BROWSER_USE_HEADLESS=truenas configurações do projeto. - Esta configuração fará o navegador funcionar em modo headless puro, sem depender do Xvfb.
- Adicione a variável de ambiente
-
Acesse o container e verifique o estado:
docker exec -it nome-do-container bash ps aux # Para ver os processos em execução kill -9 PID # Para matar processos travados se necessário
-
Reinicie o container: No dashboard do Easypanel, reinicie o container da aplicação.
-
Verifique se o Playwright consegue ser executado:
docker exec -it nome-do-container bash python3 -c "from playwright.sync_api import sync_playwright; print('OK!' if sync_playwright().__enter__() else 'Falha')"
-
Solução de último caso: Se nada funcionar, modifique o arquivo
start.shdiretamente no container para pular a verificação e instalação do Playwright, forçando o modo headless puro:docker exec -it nome-do-container bash echo '#!/bin/bash export BROWSER_USE_HEADLESS=true exec python3 server.py' > /app/start.sh chmod +x /app/start.sh
Em seguida, reinicie o container.
Se o build do Docker estiver falhando ou demorando muito:
-
Construa localmente: Construa a imagem localmente e depois faça o upload para um registro como o Docker Hub.
docker build -t seu-usuario/browser-use:latest . docker push seu-usuario/browser-use:latest -
Use uma imagem pré-construída: No Easypanel, escolha "Use existing image" e especifique
seu-usuario/browser-use:latest. -
Desabilite a instalação do Playwright durante o build: Edite o Dockerfile e comente a linha que instala o Playwright, permitindo que ele seja instalado apenas durante a inicialização.
Se você encontrar erros como Unable to locate package xvfb-run ou Unable to locate package gnumake durante o build:
-
Nomes de pacotes corretos: Certifique-se de usar os nomes corretos para os pacotes Debian. Por exemplo, use
makeem vez degnumakee garanta que oxvfbestá sendo instalado. -
Script xvfb-run personalizado: O Dockerfile inclui um script personalizado para criar o utilitário
xvfb-runse ele não estiver disponível no sistema. -
Dependências de X11: Certifique-se de que o pacote
x11-utilsestá instalado para ter acesso a ferramentas comoxdpyinfo.
Se você encontrar erros como python: command not found ou ModuleNotFoundError: No module named 'X':
-
Usar o Dockerfile: Recomendamos fortemente usar o Dockerfile fornecido, que já está configurado com todas as dependências necessárias, incluindo a versão correta do Python.
-
Dependências do Langchain: O servidor requer várias dependências do Langchain, incluindo:
langchain-google-genai- Para integração com o Google Generative AI- Outras dependências que podem ser listadas no arquivo
requirements.txtoupyproject.toml
-
Instalar dependências manualmente: Se estiver usando um container existente, você pode instalar as dependências faltantes:
pip install langchain-google-genai
-
Verificar erros de inicialização: Se o servidor não mostrar logs após a inicialização, verifique erros de importação executando o script manualmente:
python3 server.py
Se você encontrar erros como undefined variable 'nome-do-pacote' durante o build com Nixpacks:
- Verifique se o nome do pacote está correto e existe no repositório Nix
- Para problemas com o pacote
xvfb, use apenasxvfb-runque já inclui a funcionalidade necessária - Se necessário, edite o arquivo
nixpacks.tomle remova os pacotes que estão causando problemas - Versão alternativa do nixpacks.toml: Se continuar tendo problemas, renomeie o arquivo
nixpacks.toml.alternativeparanixpacks.tomle tente novamente. Esta versão usa uma abordagem mais direta para instalar os pacotes necessários.
Se houver problemas com o Chrome/Chromium:
- Verifique os logs da aplicação para erros específicos
- Certifique-se de que o Easypanel está utilizando o arquivo nixpacks.toml ou o Dockerfile
- Se necessário, adicione a variável de ambiente
PLAYWRIGHT_BROWSERS_PATH=/tmp/playwright-browserspara permitir que o Playwright baixe e instale automaticamente os navegadores
Se o navegador não iniciar corretamente, tente:
- Verificar se todas as dependências do sistema estão instaladas
- Modificar a configuração
headlessparatrue - Adicionar mais memória ao serviço no Easypanel
Devido aos problemas comuns com Nixpacks, recomendamos fortemente usar o Docker para deploy:
- No Easypanel, escolha "Custom" como tipo de projeto
- Em "Build settings", selecione Dockerfile como builder
- O sistema usará o Dockerfile fornecido no repositório, que inclui todas as dependências necessárias
O Dockerfile foi especialmente configurado para resolver os problemas comuns de dependências e configuração do Python.