跳到主要内容

在远程服务器上部署 Langflow

学习如何在您自己的远程服务器上部署 Langflow 并实现安全的 Web 访问。 本指南将引导您使用 Docker 在远程服务器上设置 Langflow,并使用 Caddy 配置安全的 Web 访问。

前置要求

  • 一台配备双核 CPU 和至少 2GB RAM 的服务器。 本示例使用 Hetzner cloud 进行托管。您的部署可能会有所不同。

使用 SSH 连接到您的远程服务器

  1. 创建 SSH 密钥。 此密钥允许您远程连接到服务器。 将 [email protected] 替换为您要与 SSH 密钥关联的电子邮件地址。


    _10
    ssh-keygen -t ed25519 -C "[email protected]"

  2. 在您的终端中,按照说明创建 SSH 密钥对。 这将同时创建私钥和公钥。 要从您的终端Replicate公钥,请输入以下命令:


    _10
    cat ~/Downloads/host-lf.pub | pbcopy

  3. 在您的远程服务器中,添加您在上一步中Replicate的 SSH 密钥。 例如,如果您使用的是 Hetzner 云服务器,请点击 服务器,然后选择 SSH 密钥 来添加 SSH 密钥。

  4. 要使用 SSH 连接到您的服务器,请输入以下命令。


    _10
    ssh -i PATH_TO_PRIVATE_KEY/PRIVATE_KEY_NAME root@SERVER_IP_ADDRESS

    替换以下内容:

    • PATH_TO_PRIVATE_KEY/PRIVATE_KEY_NAME:与您添加到服务器的公钥匹配的私钥文件路径
    • SERVER_IP_ADDRESS:您服务器的 IP 地址
  5. 当提示输入密钥指纹时,输入 yes。 终端输出会显示连接成功或失败。 连接到 Hetzner 云服务器后返回以下响应:


    _10
    系统信息,2025年5月19日星期一 下午4:34:44 UTC
    _10
    _10
    系统负载: 0.0 进程数: 129
    _10
    / 使用率: 1.5% of 74.79GB 登录用户: 0
    _10
    内存使用: 5% eth0的IPv4地址: 5.161.250.132
    _10
    交换使用: 0% eth0的IPv6地址: 2a01:4ff:f0:4de7::1

在您的服务器上部署 Langflow

既然您的本地计算机已通过 SSH 连接到远程服务器,您就可以安装 Docker,创建一个 docker-compose.yml 文件,并使用反向代理(如 Caddy)将其公开提供服务。

  1. 在您的服务器上安装 Docker。 由于此示例服务器是 Ubuntu 服务器,它可以安装 snap 包。 如果您不使用 Ubuntu 或您更喜欢其他安装方法,请参阅 官方 Docker 安装指南 获取适用于您操作系统的说明。


    _10
    snap install docker

  2. 创建一个名为 docker-compose.yml 的文件,然后在文本编辑器中打开它:


    _10
    touch docker-compose.yml && nano docker-compose.yml

    以下示例定义了来自 langflow:latest 镜像的 Langflow 服务和一个 Caddy 服务,通过反向代理暴露 Langflow。

    提示

    如果您更喜欢将仓库分叉到您的服务器,host-langflow 仓库提供了此 docker-compose.ymlCaddyfile 的预构建副本。

  3. 将以下值添加到 docker-compose.yml,然后保存文件。


    _26
    version: "3.8"
    _26
    _26
    services:
    _26
    langflow:
    _26
    image: langflowai/langflow:latest
    _26
    ports:
    _26
    - "7860:7860"
    _26
    environment:
    _26
    - LANGFLOW_HOST=0.0.0.0
    _26
    - LANGFLOW_PORT=7860
    _26
    _26
    caddy:
    _26
    image: caddy:latest
    _26
    ports:
    _26
    - "80:80"
    _26
    - "443:443"
    _26
    volumes:
    _26
    - ./Caddyfile:/etc/caddy/Caddyfile
    _26
    - caddy_data:/data
    _26
    - caddy_config:/config
    _26
    depends_on:
    _26
    - langflow
    _26
    _26
    volumes:
    _26
    caddy_data:
    _26
    caddy_config:

  4. 创建一个名为 Caddyfile 的文件。


    _10
    touch Caddyfile && nano Caddyfile

  5. 将以下值添加到 Caddyfile,然后保存文件。 Caddyfile 配置 Caddy 在端口 80 上监听,并将所有传入的请求转发到端口 7860 上的 Langflow 服务。


    _10
    :80 {
    _10
    reverse_proxy langflow:7860
    _10
    }

  6. 要部署您的服务器,请运行 docker-compose up。 当出现 Welcome to Langflow 消息时,Langflow 正在运行,并且在 Docker 网络内部可通过 http://0.0.0.0:7860 访问。

  7. 要通过公共互联网访问您的 Langflow 服务器,请导航到您服务器的公共 IP 地址,例如 http://5.161.250.132。 此地址使用 HTTP,因为 HTTPS 尚未启用。

  8. 推荐:启用 HTTPS:

    1. 修改您域名的 A 记录以指向您服务器的 IP 地址。例如:


      _10
      Type: A
      _10
      Name: langflow
      _10
      Value: 5.161.250.132 # Set to your server's IP address

    2. 停止您的服务器。

    3. 修改您的 Caddyfile 以包含端口 443,这样 Caddy 就可以将 HTTP(端口 80)和 HTTPS(端口 443)请求都转发到 Langflow 服务:


      _10
      :80, :443 {
      _10
      reverse_proxy langflow:7860
      _10
      }

    4. 启动您的服务器。

      当用户访问您的域名时,Caddy 会识别传入的流量,并使用安全、加密的连接自动将其路由到您的服务器。

  9. 要退出您的 SSH 会话,请键入 exit

另请参阅

要将您的本地流程打包为自定义 Docker 镜像,请参阅 将 Langflow 应用程序容器化

有关部署 Langflow 的分步指南,包括部署到 fly.ioFlightcontrol.dev,请参阅 如何在任何地方托管 Langflow

Search