AWS


先决条件

这需要对AWS(亚马逊网络服务)的工作原理有一些基本的了解。

在AWS上部署Flowise有两种选择:

使用CloudFormation在ECS上进行部署

CloudFormation模板可在此处获取:https://gist.github.com/MrHertal/549b31a18e350b69c7200ae8d26ed691

它在通过负载均衡(ELB)暴露的弹性计算服务(ECS)集群上部署了Flowise。

该架构的灵感来源于以下参考架构:https://github.com/aws-samples/ecs-refarch-cloudformation

请随意编辑此模板,以适应Flowise图像版本、环境变量等不同情况。

使用AWS CLI部署Flowise的命令示例:

使用AWS CloudFormation创建堆栈,堆栈名称为flowise,模板文件为flowise-cloudformation.yml,功能为CAPABILITY_IAM

部署完成后,您可以在CloudFormation堆栈输出中找到Flowise应用程序的URL。

使用Terraform在ECS上进行部署

Terraform文件(variables.tfmain.tf)可在以下GitHub仓库中找到:terraform-flowise-setup

此设置在通过应用程序负载均衡器(ALB)暴露的ECS集群上部署了Flowise。它基于AWS针对ECS部署的最佳实践。

您可以修改Terraform模板以进行调整:

  • Flowise图像版本

  • 环境变量

  • 资源配置(CPU、内存等)

部署示例命令:

  1. 初始化Terraform:

初始化Terraform
执行Terraform应用
Terraform 销毁

启动EC2实例

  1. 在EC2控制面板中,点击“启动实例”

  1. 向下滚动,如果您没有密钥对,请创建新的密钥对

  1. 填写您偏好的密钥对名称。对于Windows,我们将使用“.ppk”和PuTTY来连接到实例。对于Mac和Linux,我们将使用“.pem”和OpenSSH

  1. 点击 创建密钥对,并选择一个保存 .ppk 文件的位置路径

  2. 打开左侧边栏,从“安全组”中新建一个标签页。然后点击“创建安全组”

  1. 填写您首选的安全组名称和描述。接下来,将以下内容添加到入站规则中,并创建安全组

  1. 返回第一个选项卡(EC2 启动实例)并向下滚动至 网络设置。选择您刚刚创建的安全组

  1. 点击 启动实例。返回EC2控制面板,几分钟后我们应该能看到一个新的实例已启动并正在运行🎉

如何连接到您的实例(Windows)

  1. 对于Windows系统,我们将使用PuTTY。您可以从这里下载。

  2. 打开PuTTY,并将HostName填写为您的实例的公共IPv4 DNS名称

  1. 在PuTTY配置界面的左侧栏中,展开SSH选项,然后点击认证。点击浏览,选择你之前下载的.ppk文件。

  1. 点击“打开”并“接受”弹出消息

  1. 然后以“ec2-user”的身份登录

  1. 现在你已经连接到EC2实例了

如何连接到您的实例(Mac和Linux)

  1. 在你的Mac/Linux系统上打开终端应用程序。

  2. _(可选)_设置私钥文件的权限以限制对其的访问:

将 /path/to/mykey.pem 文件的权限设置为 400(即仅用户可读写)
  1. 使用ssh命令连接到您的EC2实例,指定用户名(ec2-user)、公共IPv4 DNS地址以及.pem文件的路径。

使用 /Users/username/Documents/mykey.pem 密钥文件通过 SSH 连接到 [email protected]
  1. 按Enter键,如果配置正确,您应该能够成功建立与EC2实例的SSH连接

安装Docker

  1. 使用yum命令应用待处理的更新:

使用sudo命令更新yum包
  1. 搜索Docker包:

使用sudo权限通过yum搜索docker
  1. 获取版本信息:

使用sudo命令查询yum中关于docker的信息
  1. 安装docker,运行:

使用sudo权限通过yum安装docker
  1. 为默认的ec2-user添加组成员身份,以便您无需使用sudo命令即可运行所有docker命令:

使用sudo命令,将用户ec2-user添加到docker组中
id ec2-user
将所属组更改为docker
  1. 安装docker-compose:

使用sudo命令通过yum安装docker-compose插件
  1. 在AMI启动时启用docker服务:

使用sudo命令启用docker.service服务
  1. 启动Docker服务:

使用sudo命令启动docker服务

安装Git

使用sudo命令通过yum安装git,并使用-y参数(表示“yes”或“yes to all”)

设置

  1. 克隆仓库

使用Git克隆https://github.com/FlowiseAI/Flowise.git
  1. 进入docker文件夹

进入Flowise目录 && 进入docker目录
  1. 创建一个 .env 文件。你可以使用你喜欢的编辑器。我将使用 nano

nano .env
  1. 指定环境变量:

端口=3000
数据库路径=/root/.flowise
SECRETKEY_PATH=/root/.flowise
日志路径=/root/.flowise/logs
BLOB_STORAGE_PATH=/root/.flowise/storage
  1. 然后按Ctrl + X退出,按Y保存文件

  2. 运行docker compose

docker compose up -d
  1. 您的应用程序已在端口3000的公共IPv4 DNS上准备就绪:

http://ec2-123-456-789.compute-1.amazonaws.com:3000
  1. 你可以通过以下方式关闭应用程序:

docker compose 停止
  1. 您可以通过以下方式获取最新镜像:

docker 拉取 flowiseai/flowise 镜像

或者:

docker-compose 拉取镜像
docker-compose up --build -d

使用NGINX

如果你希望去掉URL中的“:3000”并使用自定义域名,你可以使用NGINX将80端口反向代理到3000端口。这样,用户就可以通过你的域名来打开应用。示例:http://yourdomain.com

  1. Bash脚本 使用sudo命令通过yum安装nginx

  2. Bash脚本 查询Nginx版本

  3. sudo systemctl start nginx
  4. sudo nano /etc/nginx/conf.d/flowise.conf
  5. 复制粘贴以下内容,并替换为您的域名:


/// 译文内容:
---
根据上面的信息,执行如下指令:
您想翻译的文本可能是一段代码或命令,由于缺乏上下文,无法给出准确的中文翻译。请提供更多信息或上下文,以便我能够给出更准确的翻译
服务器 {
    监听80端口;
    监听[::]:80;
    server_name yourdomain.com; #示例:demo.flowiseai.com
    位置 / {
        代理服务器转发至 http://localhost:3000;
        代理HTTP版本1.1;
        设置主机头为$host;
        设置代理头信息,将Upgrade字段设置为$http_upgrade;
        设置代理头 Connection 为 'upgrade';
        proxy_cache_bypass $http_upgrade;;
        设置代理头X-Real-IP为$remote_addr;
        设置代理头X-Forwarded-For为$proxy_add_x_forwarded_for;
        设置代理头X-Forwarded-Proto为$scheme;
    }
}

Ctrl + X退出,按Y保存文件

  1. Bash脚本 sudo systemctl 重启 nginx

  2. 前往你的DNS提供商,并添加一个新的A记录。名称将是你自己的域名,值将是EC2实例的公共IPv4地址

  1. 现在,你应该能够打开这个应用:http://yourdomain.com

安装Certbot以启用HTTPS

如果你希望你的应用使用“https://yourdomain.com”,请按照以下步骤操作:

  1. 为了在NGINX上安装Certbot并启用HTTPS,我们需要使用Python。因此,首先,让我们来设置一个虚拟环境:

使用sudo命令,在/opt/certbot/目录下运行python3 -m venv
使用sudo命令执行以下操作:/opt/certbot/bin/pip install --upgrade pip
  1. 之后,运行以下命令来安装Certbot:

使用sudo命令执行以下操作:在/opt/certbot/bin/目录下,使用pip安装certbot和certbot-nginx
  1. 现在,执行以下命令以确保certbot命令可以运行:

使用sudo命令将/opt/certbot/bin/certbot链接到/usr/bin/certbot
  1. 最后,运行以下命令以获取证书,并让Certbot自动修改NGINX配置,启用HTTPS:

使用sudo运行certbot命令,并指定使用nginx作为web服务器
  1. 完成证书生成向导后,我们将能够使用地址https://yourdomain.com通过HTTPS访问我们的EC2实例

设置自动续订

为了让Certbot能够自动续订证书,只需运行以下命令添加一个cron作业即可:

将以下命令输出到/etc/crontab文件,并重定向到/dev/null:`echo "0 0,12 * * * root /opt/certbot/bin/python -c 'import random; import time; time.sleep(random.random() * 3600)' && sudo certbot renew -q" | sudo tee -a /etc/crontab > /dev/null`

恭喜!

您已在域上带有SSL证书的EC2实例上成功安装了Flowise应用程序🥳

Last updated