Como instalar o Langflow em uma VPS Ubuntu

O Langflow é uma plataforma visual open-source para construir pipelines de IA com LLMs, agentes e RAG. Este guia instala o Langflow com Docker Compose e PostgreSQL para persistência de dados, a configuração recomendada para produção.

cerca de 20 minjunho/2026 · Ubuntu 24.04 LTS

Antes de começar

VPS mínima
2 vCPU · 4 GB RAM · 20 GB SSD (Runstack Basic ou superior)
Sistema
Ubuntu 24.04 LTS
Também
  • Docker e Docker Compose instalados (veja /tutorial/como-instalar-docker)
  • Subdomínio DNS apontado para o IP da VPS
  • Portas 80 e 443 abertas no firewall

Instalação passo a passo

  1. 1

    Atualizar o sistema e instalar Docker

    Garanta que Docker e Docker Compose estão disponíveis.

    bash
    apt update && apt upgrade -y
    curl -fsSL https://get.docker.com -o get-docker.sh && sh get-docker.sh
    docker --version && docker compose version
  2. 2

    Criar o diretório do projeto

    Centralize os arquivos em /opt/langflow.

    bash
    mkdir -p /opt/langflow
    cd /opt/langflow
  3. 3

    Criar o arquivo .env

    Defina a senha do PostgreSQL e a chave secreta da aplicação.

    bash
    # Gerar senha segura para o PostgreSQL
    openssl rand -hex 24
    
    # Gerar chave secreta para o Langflow
    openssl rand -hex 32
  4. 4

    Configurar variáveis no .env

    Crie o arquivo .env com as senhas geradas.

    .env
    # /opt/langflow/.env
    LANGFLOW_DATABASE_URL=postgresql://langflow:SUA_SENHA_POSTGRES@postgres:5432/langflow
    LANGFLOW_CONFIG_DIR=/app/langflow
    LANGFLOW_SECRET_KEY=SUA_CHAVE_SECRETA_AQUI
    POSTGRES_PASSWORD=SUA_SENHA_POSTGRES
  5. 5

    Criar o docker-compose.yml

    Esta configuração oficial usa PostgreSQL 16 para persistência e expõe o Langflow na porta 7860.

    docker-compose.yml
    # /opt/langflow/docker-compose.yml
    services:
      langflow:
        image: langflowai/langflow:latest
        pull_policy: always
        ports:
          - "127.0.0.1:7860:7860"
        depends_on:
          - postgres
        env_file: .env
        volumes:
          - langflow-data:/app/langflow
    
      postgres:
        image: postgres:16
        restart: always
        environment:
          POSTGRES_USER: langflow
          POSTGRES_PASSWORD: ${POSTGRES_PASSWORD}
          POSTGRES_DB: langflow
        volumes:
          - langflow-postgres:/var/lib/postgresql/data
    
    volumes:
      langflow-postgres:
      langflow-data:
  6. 6

    Subir os containers

    Inicie os serviços e aguarde a inicialização completa.

    bash
    cd /opt/langflow
    docker compose up -d
    
    # Aguardar inicialização (~60s na primeira vez)
    docker compose logs langflow --follow
  7. 7

    Configurar Nginx e SSL

    Instale Nginx como reverse proxy e emita o certificado SSL.

    bash
    apt install -y nginx certbot python3-certbot-nginx
    
    cat > /etc/nginx/sites-available/langflow << 'NGINXEOF'
    server {
        listen 80;
        server_name langflow.seudominio.com.br;
        return 301 https://$host$request_uri;
    }
    
    server {
        listen 443 ssl;
        server_name langflow.seudominio.com.br;
    
        ssl_certificate /etc/letsencrypt/live/langflow.seudominio.com.br/fullchain.pem;
        ssl_certificate_key /etc/letsencrypt/live/langflow.seudominio.com.br/privkey.pem;
    
        client_max_body_size 50M;
    
        location / {
            proxy_pass http://127.0.0.1:7860;
            proxy_set_header Host $host;
            proxy_set_header X-Real-IP $remote_addr;
            proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
            proxy_set_header X-Forwarded-Proto $scheme;
            proxy_http_version 1.1;
            proxy_set_header Upgrade $http_upgrade;
            proxy_set_header Connection "upgrade";
            proxy_read_timeout 3600s;
        }
    }
    NGINXEOF
    
    ln -s /etc/nginx/sites-available/langflow /etc/nginx/sites-enabled/langflow
    nginx -t
    
    certbot --nginx \
      -d langflow.seudominio.com.br \
      --non-interactive \
      --agree-tos \
      --email seu@email.com
    
    systemctl reload nginx
  8. 8

    Configurar firewall e verificar

    Restrinja portas e confirme o acesso.

    bash
    ufw allow 22/tcp && ufw allow 80/tcp && ufw allow 443/tcp
    ufw --force enable
    
    # Testar acesso
    curl -I https://langflow.seudominio.com.br

Não quer configurar manualmente?

Implante o Langflow em menos de 5 minutos com a Runstack. Infraestrutura da OPEN Datacenter, com servidores em São Paulo.

Se der problema

Verifique se a LANGFLOW_DATABASE_URL está correta e se o container do PostgreSQL subiu antes.

bash
docker compose logs langflow --tail=50
docker compose ps

O volume `langflow-data` deve estar mapeado. Verifique se foi criado corretamente.

bash
docker volume ls | grep langflow

Pipelines com modelos grandes exigem mais RAM. Considere upgrade para Runstack Pro (4 GB) ou superior.

Aumente o proxy_read_timeout no Nginx (padrão configurado: 3600s). Se o timeout ocorrer antes do Nginx, verifique o timeout do próprio LLM provider.

Certifique-se de que a porta foi mapeada para 127.0.0.1:7860 (não 0.0.0.0:7860) no docker-compose. Todo acesso público deve passar pelo Nginx.

Perguntas frequentes

Ambos são ferramentas visuais para construir pipelines de IA. O Langflow tem integração nativa com LangChain e é mais voltado a pipelines complexos de RAG e agentes. O Flowise tem interface mais simples e boa integração com ferramentas de chatbot. Experimente os dois e escolha conforme seu caso de uso.

Sim. Por padrão, usa SQLite local. O PostgreSQL é recomendado para produção por suportar múltiplas conexões simultâneas e facilitar backups.

Execute `docker compose pull && docker compose up -d` no diretório /opt/langflow. O Langflow aplica migrações automaticamente.

Sim. O Langflow suporta Ollama como provider. Instale o Ollama na VPS e configure o componente Ollama dentro do Langflow apontando para http://host.docker.internal:11434.

Em idle, o Langflow consome aproximadamente 500 MB a 1 GB de RAM. O consumo aumenta durante a execução de flows, especialmente com modelos grandes.