https://github.com/dena/dify-google-cloud-terraform
Terraform configuration for deploying Dify on Google Cloud with scalability, high availability, and production-level readiness.
https://github.com/dena/dify-google-cloud-terraform
ai dify generative-ai google-cloud infrastructure llm llmops terraform workflow
Last synced: 3 months ago
JSON representation
Terraform configuration for deploying Dify on Google Cloud with scalability, high availability, and production-level readiness.
- Host: GitHub
- URL: https://github.com/dena/dify-google-cloud-terraform
- Owner: DeNA
- License: other
- Created: 2024-09-25T02:14:34.000Z (9 months ago)
- Default Branch: main
- Last Pushed: 2025-03-28T07:10:20.000Z (3 months ago)
- Last Synced: 2025-04-02T04:08:29.357Z (3 months ago)
- Topics: ai, dify, generative-ai, google-cloud, infrastructure, llm, llmops, terraform, workflow
- Language: HCL
- Homepage: https://github.com/langgenius/dify
- Size: 280 KB
- Stars: 104
- Watchers: 5
- Forks: 23
- Open Issues: 1
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# Terraform for Dify on Google Cloud


> [!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:
```sh
git clone https://github.com/DeNA/dify-google-cloud-terraform.git
```2. Initialize Terraform:
```sh
cd terraform/environments/dev
terraform init
```3. Make Artifact Registry repository:
```sh
terraform apply -target=module.registry
```4. Build & push container images:
```sh
cd ../../..
sh ./docker/cloudbuild.sh
```
You can also specify a version of the dify-api image.
```sh
sh ./docker/cloudbuild.sh
```
If no version is specified, the latest version is used by default.5. Terraform plan:
```sh
cd terraform/environments/dev
terraform plan
```6. Terraform apply:
```sh
terraform apply
```## Cleanup
```sh
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
- [Dify](https://dify.ai/)
- [GitHub](https://github.com/langgenius/dify)## License
This software is licensed under the MIT License. See the LICENSE file for more details.