como instalar dify no docker compose vps
Instale o Dify via Docker Compose em uma VPS com 4 GB de RAM. Configure as variáveis no .env e acesse /install para criar o admin antes de expor ao público.
O que é o Dify e o que você está assumindo ao executá-lo
O Dify é uma plataforma auto-hospedável para construir aplicações sobre modelos de linguagem de grande escala (LLMs). Você obtém uma interface web para projetar apps de chat, agentes e pipelines de recuperação, uma API para chamá-los via código próprio, e um local central para gerenciar prompts, datasets e chaves de modelos. É o tipo de ferramenta que uma equipe pequena implementa para que todos construam sobre uma base privada compartilhada, em vez de espalhar chaves de API por diversos scripts.
Executá-lo por conta própria significa rodar vários componentes. O Dify é distribuído como um conjunto de containers Docker: um servidor de API, um worker de background, um frontend web, um banco de dados Postgres, um cache Redis e um banco de dados vetorial, todos conectados via Docker Compose. Isso é mais do que um único binário, mas o Compose gerencia as conexões, e uma VPS com alguns gigabytes de RAM livre o executa confortavelmente.
Como o Dify armazena suas chaves de API de modelos e, frequentemente, documentos privados carregados para recuperação, trate o servidor onde ele roda como sensível desde o primeiro minuto. Este guia realiza a instalação e depois o endurecimento (hardening) da mesma forma que você endureceria qualquer serviço que armazena segredos.
Pré-requisitos
Você precisa de uma VPS rodando Ubuntu 24.04 com Docker e o plugin Docker Compose instalados, e um usuário com sudo ou membro do grupo docker. Se o Docker é novo para você, o básico do Docker Compose em uma VPS cobre a instalação e os comandos essenciais que este guia assume. Ter um nome de domínio apontado para o servidor é recomendável, pois você precisará de TLS na frente do Dify em vez de apenas um endereço IP.
Passo 1: Obter o Dify e seus arquivos Compose
O Dify mantém sua configuração Docker no repositório principal. Clone-o e acesse o diretório docker:
git clone https://github.com/langgenius/dify.git
cd dify/docker
cp .env.example .envO arquivo .env contém toda a configuração. Leia-o antes de iniciar qualquer processo. Os valores prioritários são os que definem senhas e segredos: SECRET_KEY, a senha do Postgres e a senha do Redis. O arquivo de exemplo vem com valores de placeholder; mantê-los como vieram é a forma mais comum de um Dify auto-hospedado ser comprometido. Gere uma chave secreta real:
openssl rand -base64 42Cole-a em SECRET_KEY e defina um valor forte e único para cada campo de senha no arquivo.
Passo 2: Iniciar o serviço
Suba a stack:
docker compose up -dA primeira execução baixa várias imagens e inicializa o banco de dados, então aguarde um minuto. Verifique se os containers estão saudáveis:
docker compose psCada serviço deve responder em running. O Dify serve sua interface web através de um container nginx embutido na porta 80 por padrão. Em sua primeira visita a http://YOUR_SERVER/install, você criará a conta de administrador. Faça isso imediatamente, antes que qualquer outra coisa acesse a porta, pois até que essa conta exista, qualquer pessoa que carregar a página pode reivindicá-la e assumir o controle da sua instância.
Passo 3: Não o exponha sem proteção. Use TLS e um firewall na frente
É aqui que a maioria das instalações rápidas para e a maioria dos incidentes começa. O nginx do próprio Dify escuta na porta 80, sem criptografia, em todas as interfaces. Você não quer que seu login de administrador e suas chaves de modelo trafeguem via HTTP puro, e você não quer os serviços internos acessíveis externamente.
Proteja o servidor com um firewall de negação padrão (default-deny) que permita apenas tráfego SSH e web:
sudo ufw default deny incoming
sudo ufw allow 22/tcp
sudo ufw allow 80/tcp
sudo ufw allow 443/tcp
sudo ufw enableLembre-se que um firewall que cobre apenas IPv4 pode deixar as mesmas portas abertas no IPv6, a lacuna de firewall IPv6 que afeta muitos usuários de auto-hospedagem. Confirme que ambas as stacks estão filtradas.
Para TLS, o caminho mais limpo é vincular a porta web do Dify ao loopback e rodar um reverse proxy com um certificado Let's Encrypt na frente, de modo que a única coisa visível na internet pública seja o proxy comunicando HTTPS. O .env do Dify permite alterar a porta exposta; defina-a para vincular em 127.0.0.1 e aponte seu proxy para ela. As ideias de endurecimento de agentes em rodar um agente de IA com segurança em uma VPS também se aplicam aqui: mantenha os componentes internos no loopback, exponha apenas o que deve ser público e use uma única porta de entrada endurecida para falar TLS.
Passo 4: Mantenha-o atualizado
O Dify evolui rapidamente e as atualizações incluem correções de segurança. Atualizar consiste em um pull e um restart a partir do diretório docker:
git pull
docker compose pull
docker compose up -dLeia as notas de lançamento antes de um salto de versão principal, pois o Dify ocasionalmente altera o schema .env entre versões, e uma nova variável não configurada pode impedir o início de um container.
Passo 5: Faça backup do que não pode ser regenerado
Duas coisas em um servidor Dify são irrecuperáveis: o banco de dados Postgres, que contém seus apps, usuários e configurações, e o volume que armazena os documentos carregados e o índice vetorial. Ambos residem em Docker volumes no diretório docker. Faça snapshots programados e copie os snapshots para fora do servidor. Uma chave de API de modelo pode ser reemitida; o app que você passou uma semana construindo, não.
Para um agente mais autônomo que executa código, veja auto-hospedagem do Agent Zero, e construindo seu próprio agente de IA em uma VPS cobre os fundamentos por trás de todos eles.
FAQ
Quais são os requisitos de sistema para hospedar o Dify?
O Dify roda como uma stack Docker Compose de aproximadamente meia dúzia de containers, portanto, planeje uma VPS com pelo menos 2 GB de RAM livre, idealmente 4 GB, além de alguns núcleos de CPU e disco suficiente para seus documentos carregados e o índice vetorial. A pressão de memória vem do banco de dados e do armazenamento vetorial, não do Dify em si.
É seguro expor o Dify diretamente na porta 80?
Não. O servidor web embutido do Dify escuta em HTTP puro, o que expõe seu login de administrador e suas chaves de API de modelo. Use um reverse proxy com um certificado Let's Encrypt na frente, vincule a porta do próprio Dify ao loopback e deixe apenas o proxy HTTPS voltado para a internet. Combine isso com um firewall de negação padrão que cubra tanto IPv4 quanto IPv6.
Como eu atualizo um Dify auto-hospedado?
A partir do diretório docker, execute git pull, depois docker compose pull e docker compose up -d para buscar novas imagens e reiniciar. Leia as notas de lançamento primeiro, pois o Dify às vezes adiciona novas variáveis .env entre versões, e a ausência de uma delas pode impedir que um container suba.
Qual é a primeira coisa a fazer após instalar o Dify?
Acesse /install e crie a conta de administrador imediatamente. Até que essa conta exista, qualquer pessoa que alcance a página pode reivindicá-la. Configure-a assim que os containers estiverem saudáveis e antes de abrir o firewall para o mundo.