From 6a59d64a0d44b3f56d6c00873f5281642b8ac3c0 Mon Sep 17 00:00:00 2001 From: Robert Wilkins III <1147229+genome21@users.noreply.github.com> Date: Thu, 20 Apr 2023 03:54:58 +0000 Subject: [PATCH] remove redundant wording --- GCP_DEPLOYMENT.md | 119 +------------------------------- scripts/gcp_setup_tutorial.yaml | 80 --------------------- 2 files changed, 2 insertions(+), 197 deletions(-) delete mode 100644 scripts/gcp_setup_tutorial.yaml diff --git a/GCP_DEPLOYMENT.md b/GCP_DEPLOYMENT.md index 6bbd54097..01686e4ed 100644 --- a/GCP_DEPLOYMENT.md +++ b/GCP_DEPLOYMENT.md @@ -1,122 +1,7 @@ # Running Langflow from a new Google Cloud project This guide will help you set up a Langflow Dev VM in a Google Cloud Platform project using Google Cloud Shell. -> When cloudshell opens, select **Trust this repo**. Some gcloud commands do not run in ephemeral cloudshell. +> When cloudshell opens, select **Trust repo**. Some gcloud commands do not run in ephemeral cloudshell. [![Open in Cloud Shell](https://gstatic.com/cloudssh/images/open-btn.svg)](https://console.cloud.google.com/cloudshell/open?git_repo=https://github.com/genome21/langflow&working_dir=scripts&shellonly=true&tutorial=walkthroughtutorial.md) - -## Run the following in your GCP cloudshell: - -```bash -# Set the VM, image, and networking configuration -VM_NAME="langflow-dev" -IMAGE_FAMILY="debian-11" -IMAGE_PROJECT="debian-cloud" -BOOT_DISK_SIZE="100GB" -ZONE="us-central1-a" -REGION="us-central1" -VPC_NAME="default" -SUBNET_NAME="default" -SUBNET_RANGE="10.128.0.0/20" -NAT_GATEWAY_NAME="nat-gateway" -CLOUD_ROUTER_NAME="nat-client" - -# Set the GCP project's compute region -gcloud config set compute/region $REGION - -# Check if the VPC exists, and create it if not -vpc_exists=$(gcloud compute networks list --filter="name=$VPC_NAME" --format="value(name)") -if [[ -z "$vpc_exists" ]]; then - gcloud compute networks create $VPC_NAME --subnet-mode=custom -fi - -# Check if the subnet exists, and create it if not -subnet_exists=$(gcloud compute networks subnets list --filter="name=$SUBNET_NAME AND region=$REGION" --format="value(name)") -if [[ -z "$subnet_exists" ]]; then - gcloud compute networks subnets create $SUBNET_NAME --network=$VPC_NAME --region=$REGION --range=$SUBNET_RANGE -fi - -# Create a firewall rule to allow TCP port 8080 for all instances in the VPC -firewall_8080_exists=$(gcloud compute firewall-rules list --filter="name=allow-tcp-8080" --format="value(name)") -if [[ -z "$firewall_8080_exists" ]]; then - gcloud compute firewall-rules create allow-tcp-8080 --network $VPC_NAME --allow tcp:8080 --source-ranges 0.0.0.0/0 --direction INGRESS -fi - -# Create a firewall rule to allow IAP traffic -firewall_iap_exists=$(gcloud compute firewall-rules list --filter="name=allow-iap" --format="value(name)") -if [[ -z "$firewall_iap_exists" ]]; then - gcloud compute firewall-rules create allow-iap --network $VPC_NAME --allow tcp:80,tcp:443 --source-ranges 35.235.240.0/20 --direction INGRESS -fi - -# Create the Cloud Router and NAT Gateway -cloud_router_exists=$(gcloud compute routers list --filter="name=$CLOUD_ROUTER_NAME" --format="value(name)") -if [[ -z "$cloud_router_exists" ]]; then - gcloud compute routers create $CLOUD_ROUTER_NAME --network $VPC_NAME --region $REGION -fi - -nat_exists=$(gcloud compute routers list --filter="name=$CLOUD_ROUTER_NAME" --format="value(nats.name)") -if [[ -z "$nat_exists" ]]; then - gcloud compute routers nats create $NAT_GATEWAY_NAME --router $CLOUD_ROUTER_NAME --auto-allocate-nat-external-ips --nat-all-subnet-ip-ranges --enable-logging --region $REGION -fi - -# Define the startup script as a multiline Bash here-doc -STARTUP_SCRIPT=$(cat <<'EOF' -#!/bin/bash - -# Update and upgrade the system -apt -y update -apt -y upgrade - -# Install Python 3 pip, Langflow, and Nginx -apt -y install python3-pip -pip install langflow -apt-get -y install nginx - -# Configure Nginx for Langflow -touch /etc/nginx/sites-available/langflow-app -echo "server { - listen 0.0.0.0:8080; - - 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"; - } -}" >> /etc/nginx/sites-available/langflow-app -ln -s /etc/nginx/sites-available/langflow-app /etc/nginx/sites-enabled/ -sudo nginx -t -sudo systemctl restart nginx -langflow -EOF -) - -# Create a temporary file to store the startup script -tempfile=$(mktemp) -echo "$STARTUP_SCRIPT" > $tempfile - -# Create the VM instance with the specified configuration and startup script -gcloud compute instances create $VM_NAME \ - --image-family $IMAGE_FAMILY \ - --image-project $IMAGE_PROJECT \ - --boot-disk-size $BOOT_DISK_SIZE \ - --machine-type=n1-standard-4 \ - --metadata-from-file startup-script=$tempfile \ - --zone $ZONE \ - --network $VPC_NAME \ - --subnet $SUBNET_NAME - -# Remove the temporary file after the VM is created -rm $tempfile - -``` -> This script sets up a Debian-based VM with the Langflow package, Nginx, and the necessary configurations to run the Langflow Dev environment. The VM will be accessible on TCP port 8080 from any IP address. - -
- -## Connecting to your new Langflow VM -1. Navigate to the [VM instances](https://console.cloud.google.com/compute/instances) page -2. Click on the external IP for your VM -3. Add port 8080 (assuming your VM external IP is 192.168.0.1): -http://192.168.0.1:8080 -4. You will be greeted by the Langflow Dev environment \ No newline at end of file +This script sets up a Debian-based VM with the Langflow package, Nginx, and the necessary configurations to run the Langflow Dev environment. \ No newline at end of file diff --git a/scripts/gcp_setup_tutorial.yaml b/scripts/gcp_setup_tutorial.yaml deleted file mode 100644 index f8c5b401c..000000000 --- a/scripts/gcp_setup_tutorial.yaml +++ /dev/null @@ -1,80 +0,0 @@ -title: Deploy Langflow on Google Cloud Platform -duration: 45m -author: Your Name -environment: - cwd: working_dir - repo: - url: https://github.com/genome21/langflow - working_dir: scripts - -steps: -- title: Introduction - content: | - In this tutorial, you will learn how to deploy Langflow on Google Cloud Platform (GCP) using Google Cloud Shell. - - This tutorial assumes you have a GCP account and basic knowledge of Google Cloud Shell. If you're not familiar with Cloud Shell, you can review the [Cloud Shell documentation](https://cloud.google.com/shell/docs). - -- title: Set up your environment - content: | - Before you start, make sure you have the following prerequisites: - - - A GCP account with the necessary permissions to create resources - - A project on GCP where you want to deploy Langflow - - - - In the next step, you'll clone the Langflow repository and navigate to the `scripts` directory. - -- title: Clone the repository and navigate to the scripts directory - content: | - Run the following commands to clone the Langflow repository and navigate to the `scripts` directory: - - ``` - git clone https://github.com/genome21/langflow - cd langflow/scripts - ``` - - In the next step, you'll configure the GCP environment and deploy Langflow. - -- title: Configure the GCP environment and deploy Langflow - content: | - Run the `deploy_langflow_gcp.sh` script to configure the GCP environment and deploy Langflow: - - ``` - ./deploy_langflow_gcp.sh - ``` - - The script will: - - 1. Check if the required resources (VPC, subnet, firewall rules, and Cloud Router) exist and create them if needed - 2. Create a startup script to install Python, Langflow, and Nginx - 3. Create a Compute Engine VM instance with the specified configuration and startup script - 4. Configure Nginx to serve Langflow on TCP port 8080 - - In the next step, you'll learn how to connect to the Langflow VM. - -- title: Connect to the Langflow VM - content: | - To connect to your new Langflow VM, follow these steps: - - 1. Navigate to the [VM instances](https://console.cloud.google.com/compute/instances) page - 2. Click on the external IP for your VM - 3. Add port 8080 (assuming your VM external IP is 192.168.0.1): - http://192.168.0.1:8080 - 4. You will be greeted by the Langflow Dev environment - - Congratulations! You have successfully deployed Langflow on Google Cloud Platform. - -- title: Cleanup - content: | - If you want to remove the resources created during this tutorial, you can use the following commands: - - ``` - gcloud compute instances delete langflow-dev --zone us-central1-a --quiet - gcloud compute routers nats delete nat-gateway --router nat-client --region us-central1 --quiet - gcloud compute routers delete nat-client --region us-central1 --quiet - gcloud compute firewall-rules delete allow-tcp-8080 --quiet - gcloud compute firewall-rules delete allow-iap --quiet - gcloud compute networks subnets delete default --region us-central1 --quiet - gcloud compute networks delete default --quiet - ``