Tutoriais/Langflow

    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 — configuração recomendada para produção.

    ~20 minjunho/2026 · Ubuntu 24.04 LTS

    Pré-requisitos

    • VPS mínima: 2 vCPU · 4 GB RAM · 20 GB SSD (Runstack Basic ou superior)
    • Sistema: Ubuntu 24.04 LTS
    • 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
      Dica
      Copie os dois valores gerados — eles serão usados no .env e no docker-compose.yml.
    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
      Atenção
      Substitua SUA_SENHA_POSTGRES e SUA_CHAVE_SECRETA_AQUI pelos valores gerados no passo anterior.
    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
      Dica
      Aguarde a mensagem indicando que o servidor iniciou na porta 7860 antes de configurar o Nginx.
    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
      Atenção
      Substitua langflow.seudominio.com.br pelo seu subdomínio real.
    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
      Dica
      Acesse o Langflow no navegador. O primeiro acesso pode solicitar criação de usuário dependendo da versão.

    $ runstack deploy --plan starter

    Não quer configurar manualmente?

    Não quer configurar manualmente? Implante o Langflow em menos de 3 minutos com a Runstack. Infraestrutura da OPEN DATACENTER, com servidores no Brasil.

    Troubleshooting

    Perguntas frequentes

    [VERIFICAR antes de publicar]

    • 1. Confirme a tag de imagem mais recente em hub.docker.com/r/langflowai/langflow.
    • 2. Verifique se LANGFLOW_SECRET_KEY ainda é o nome correto da variável de chave secreta na versão atual.