DeNA/dify-google-cloud-terraform

Terraform configuration for deploying Dify on Google Cloud with scalability, high availability, and production-level readiness.

260

stars

29

commits

HCL

primary language

Jun 24, 2025

updated

github.com/langgenius/dify
ai
dify
generative-ai
google-cloud
infrastructure
llm
llmops
terraform
workflow
Browse cluster: Docker and GitHub Actions tooling

README

Terraform for Dify on Google Cloud

Google Cloud Terraform

Dify GCP Architecture

日本語のREADME

[!NOTE]

  • Dify v1.0.0 (and later) is supported now! Try it and give us feedbacks!!
  • If you fail to install any plugin, try several times and succeed in many cases.

Overview

This repository allows you to automatically set up Google Cloud resources using Terraform and deploy Dify in a highly available configuration.

Features

  • Serverless hosting
  • Auto-scaling
  • Data persistence

Prerequisites

  • Google Cloud account
  • Terraform installed
  • gcloud CLI installed

Configuration

  • Set environment-specific values in the terraform/environments/dev/terraform.tfvars file.

[!WARNING] Security Alert: Handling terraform.tfvars The terraform/environments/dev/terraform.tfvars file in this repository is a template only. Populate it locally with your actual configuration (project ID, secrets, secure password).

Do NOT commit terraform.tfvars containing sensitive data to Git. This poses a significant security risk.

Add *.tfvars to your .gitignore file immediately to prevent accidental commits. For secure secret management, use environment variables (TF_VAR_...) or tools like Google Secret Manager.

  • Create a GCS bucket to manage Terraform state in advance, and replace "your-tfstate-bucket" in the terraform/environments/dev/provider.tf file with the name of the created bucket.

Getting Started

  1. Clone the repository:

    git clone https://github.com/DeNA/dify-google-cloud-terraform.git
    
  2. Initialize Terraform:

    cd terraform/environments/dev
    terraform init
    
  3. Make Artifact Registry repository:

    terraform apply -target=module.registry
    
  4. Build & push container images:

    cd ../../..
    sh ./docker/cloudbuild.sh <your-project-id> <your-region>
    

    You can also specify a version of the dify-api image.

    sh ./docker/cloudbuild.sh <your-project-id> <your-region> <dify-api-version>
    

    If no version is specified, the latest version is used by default.

  5. Terraform plan:

    cd terraform/environments/dev
    terraform plan
    
  6. Terraform apply:

    terraform apply
    

Cleanup

terraform destroy

Note: Cloud Storage, Cloud SQL, VPC, and VPC Peering cannot be deleted with the terraform destroy command. These are critical resources for data persistence. Access the console and carefully delete them. After that, use the terraform destroy command to ensure all resources have been deleted.

References

License

This software is licensed under the MIT License. See the LICENSE file for more details.

Contributors

sotazum

23 commits

wakame1367

2 commits

DeNA/dify-google-cloud-terraform

Terraform configuration for deploying Dify on Google Cloud with scalability, high availability, and production-level readiness.

260

stars

29

commits

HCL

primary language

Jun 24, 2025

updated

github.com/langgenius/dify
ai
dify
generative-ai
google-cloud
infrastructure
llm
llmops
terraform
workflow
Browse cluster: Docker and GitHub Actions tooling

README

Terraform for Dify on Google Cloud

Google Cloud Terraform

Dify GCP Architecture

日本語のREADME

[!NOTE]

  • Dify v1.0.0 (and later) is supported now! Try it and give us feedbacks!!
  • If you fail to install any plugin, try several times and succeed in many cases.

Overview

This repository allows you to automatically set up Google Cloud resources using Terraform and deploy Dify in a highly available configuration.

Features

  • Serverless hosting
  • Auto-scaling
  • Data persistence

Prerequisites

  • Google Cloud account
  • Terraform installed
  • gcloud CLI installed

Configuration

  • Set environment-specific values in the terraform/environments/dev/terraform.tfvars file.

[!WARNING] Security Alert: Handling terraform.tfvars The terraform/environments/dev/terraform.tfvars file in this repository is a template only. Populate it locally with your actual configuration (project ID, secrets, secure password).

Do NOT commit terraform.tfvars containing sensitive data to Git. This poses a significant security risk.

Add *.tfvars to your .gitignore file immediately to prevent accidental commits. For secure secret management, use environment variables (TF_VAR_...) or tools like Google Secret Manager.

  • Create a GCS bucket to manage Terraform state in advance, and replace "your-tfstate-bucket" in the terraform/environments/dev/provider.tf file with the name of the created bucket.

Getting Started

  1. Clone the repository:

    git clone https://github.com/DeNA/dify-google-cloud-terraform.git
    
  2. Initialize Terraform:

    cd terraform/environments/dev
    terraform init
    
  3. Make Artifact Registry repository:

    terraform apply -target=module.registry
    
  4. Build & push container images:

    cd ../../..
    sh ./docker/cloudbuild.sh <your-project-id> <your-region>
    

    You can also specify a version of the dify-api image.

    sh ./docker/cloudbuild.sh <your-project-id> <your-region> <dify-api-version>
    

    If no version is specified, the latest version is used by default.

  5. Terraform plan:

    cd terraform/environments/dev
    terraform plan
    
  6. Terraform apply:

    terraform apply
    

Cleanup

terraform destroy

Note: Cloud Storage, Cloud SQL, VPC, and VPC Peering cannot be deleted with the terraform destroy command. These are critical resources for data persistence. Access the console and carefully delete them. After that, use the terraform destroy command to ensure all resources have been deleted.

References

License

This software is licensed under the MIT License. See the LICENSE file for more details.

Contributors

sotazum

23 commits

wakame1367

2 commits

Languages

HCL

83.7%

Shell

10.2%

Dockerfile

6.1%