🚒 Deployment & Infrastructure

Terraform

Infrastructure as Code (IaC) for deploying Ever Gauzy using Terraform.

Directory Structure

.deploy/terraform/
β”œβ”€β”€ main.tf           # Provider and module config
β”œβ”€β”€ variables.tf      # Input variables
β”œβ”€β”€ outputs.tf        # Output values
β”œβ”€β”€ terraform.tfvars  # Variable values
β”œβ”€β”€ modules/
β”‚   β”œβ”€β”€ networking/   # VPC, subnets, security groups
β”‚   β”œβ”€β”€ database/     # RDS PostgreSQL
β”‚   β”œβ”€β”€ compute/      # ECS/EC2 instances
β”‚   β”œβ”€β”€ storage/      # S3 buckets
β”‚   └── cdn/          # CloudFront distribution

Quick Start

cd .deploy/terraform

# Initialize Terraform
terraform init

# Preview changes
terraform plan

# Apply infrastructure
terraform apply

# Destroy infrastructure
terraform destroy

Example Configuration

# main.tf
provider "aws" {
  region = var.aws_region
}

module "networking" {
  source = "./modules/networking"
  vpc_cidr = "10.0.0.0/16"
  environment = var.environment
}

module "database" {
  source = "./modules/database"
  vpc_id = module.networking.vpc_id
  subnet_ids = module.networking.private_subnet_ids
  db_name = "gauzy"
  db_username = var.db_username
  db_password = var.db_password
  instance_class = "db.t3.medium"
}

module "compute" {
  source = "./modules/compute"
  vpc_id = module.networking.vpc_id
  subnet_ids = module.networking.private_subnet_ids
  api_image = "ghcr.io/ever-co/gauzy-api:latest"
  webapp_image = "ghcr.io/ever-co/gauzy-webapp:latest"
  db_host = module.database.endpoint
}

Variables

# variables.tf
variable "aws_region" {
  default = "us-east-1"
}

variable "environment" {
  default = "production"
}

variable "db_username" {
  sensitive = true
}

variable "db_password" {
  sensitive = true
}

State Management

Store Terraform state remotely:

terraform {
  backend "s3" {
    bucket = "gauzy-terraform-state"
    key    = "production/terraform.tfstate"
    region = "us-east-1"
    encrypt = true
  }
}

Edit this page

Copyright Β© 2023-Present Ever Co. LTD.Docs by Sourcey