Skip to Content
InfrastructureOverview

Infrastructure

Infrastructure as Code using Terraform to manage DNS, domains, and deployments.

Tech Stack

TechnologyPurpose
TerraformInfrastructure as Code
Terraform CloudRemote state & runs
CloudflareDNS & CDN
Cloudflare PagesStatic site hosting
GitHubSource repositories

Repository Structure

terraform/ ├── main.tf # Root module ├── .tflint.hcl # Linting config ├── .terraform.lock.hcl # Provider lock └── domains/ # Domains module ├── provider.tf # Terraform & provider config ├── variables.tf # Input variables ├── data.tf # Data sources ├── battlesbit.com.tf # Primary domain ├── battlesbit.ir.tf # Dev domain ├── battlesbit.xyz.tf # Legacy redirects ├── pages_landing.tf # Landing page deployment ├── pages_pwa.tf # Mobile PWA deployment ├── pages_admin.tf # Admin panel deployment └── pages_docs.tf # Documentation deployment

Requirements

NameVersion
Terraform>= 1.9
Cloudflare Provider~> 4.0

Backend

State is stored in Terraform Cloud:

backend "remote" { hostname = "app.terraform.io" organization = "battlesbit" workspaces { name = "domains" } }

Providers

Cloudflare

Manages DNS records, page rules, and Cloudflare Pages deployments.

provider "cloudflare" { email = var.cloudflare_email api_key = var.cloudflare_api_key }

Managed Domains

DomainPurpose
battlesbit.comProduction - Landing page
battlesbit.irDevelopment environment
battlesbit.xyzDev services (ArgoCD, Grafana, etc.)
battlesbit.coRedirect to .com
battlesbit.netRedirect to .com
battlesbit.orgRedirect to .com
battlesbit.storeRedirect to .com

Cloudflare Pages Projects

ProjectRepositoryDomain
battlesbit-landinglandingbattlesbit.com
battlesbitpublicpwa-dev.battlesbit.ir
battlesbit-adminadminadmin-dev.battlesbit.ir
battlesbit-docsdocsdocs-dev.battlesbit.ir

Environment Variables

VariableDescription
CLOUDFLARE_EMAILCloudflare account email
CLOUDFLARE_API_KEYCloudflare API key
CLOUDFLARE_ACCOUNT_IDCloudflare account ID

Commands

# Initialize terraform init # Plan changes terraform plan # Apply changes terraform apply # Lint tflint

Architecture

┌─────────────────────────────────────────────────────────────┐ │ Terraform Cloud │ │ (State Management) │ └─────────────────────────────────────────────────────────────┘ ┌─────────────────────────────────────────────────────────────┐ │ Cloudflare │ ├─────────────────────────────────────────────────────────────┤ │ │ │ ┌──────────────┐ ┌──────────────┐ ┌──────────────┐ │ │ │ DNS Records │ │ Page Rules │ │ Pages │ │ │ │ │ │ │ │ Projects │ │ │ └──────────────┘ └──────────────┘ └──────────────┘ │ │ │ └─────────────────────────────────────────────────────────────┘ │ │ │ ▼ ▼ ▼ ┌─────────┐ ┌─────────┐ ┌─────────┐ │ Domain │ │Redirects│ │ Static │ │ Routing │ │ .co→.com│ │ Sites │ └─────────┘ └─────────┘ └─────────┘
Last updated on