Skip to main content

DigitalOcean Terraform Modules

The terraform-do-modules GitHub organization hosts Terraform modules for DigitalOcean infrastructure. All modules are Apache 2.0 licensed and written in HCL.


Networking

ModuleGitHubDescription
terraform-digitalocean-vpcCreates isolated Virtual Private Cloud networks for secure resource communication
terraform-digitalocean-firewallManages network firewall rules controlling inbound and outbound traffic for Droplets
terraform-digitalocean-load-balancerProvisions DigitalOcean Load Balancers for distributing traffic across Droplets
terraform-digitalocean-cdnConfigures CDN endpoints to serve Spaces content from edge locations globally
terraform-digitalocean-domainManages DNS domains and records using DigitalOcean's nameservers
terraform-digitalocean-certificateProvisions SSL/TLS certificates (Let's Encrypt or custom) for use with load balancers

Compute

ModuleGitHubDescription
terraform-digitalocean-dropletCreates and manages DigitalOcean Droplets (virtual machines) with optional volumes and backups
terraform-digitalocean-ssh-keyRegisters SSH public keys in DigitalOcean for Droplet access
terraform-digitalocean-appDeploys applications via DigitalOcean App Platform (PaaS) from source or container images

Kubernetes

ModuleGitHubDescription
terraform-digitalocean-kubernetesProvisions DigitalOcean Kubernetes (DOKS) clusters with auto-scaling node pools

Storage

ModuleGitHubDescription
terraform-digitalocean-spacesCreates S3-compatible Spaces object storage buckets with optional CDN and CORS policies
terraform-digitalocean-container-registryProvisions a private Docker container registry with tiered storage plans

Databases

ModuleGitHubDescription
terraform-digitalocean-databaseManages fully managed database clusters — PostgreSQL, MySQL, Redis, and MongoDB

Monitoring & Observability

ModuleGitHubDescription
terraform-digitalocean-monitoringCreates alert policies and uptime checks for infrastructure metrics and availability

Organization

ModuleGitHubDescription
terraform-digitalocean-labelsApplies consistent tags and labels across DigitalOcean resources for cost attribution and management
terraform-digitalocean-componentsMeta-module combining common DigitalOcean resources into a reusable stack

Applications

ModuleGitHubDescription
terraform-do-openclawProduction-ready Terraform configuration for deploying OpenClaw on DigitalOcean with security hardening

Quick start

# Example: provision a DOKS cluster
module "kubernetes" {
source = "git::https://github.com/terraform-do-modules/terraform-digitalocean-kubernetes.git?ref=v1.0.0"

name = "my-cluster"
region = "nyc3"
version = "1.32"

node_pool = {
name = "worker"
size = "s-2vcpu-2gb"
node_count = 2
}
}
# Example: provision a Droplet behind a firewall
module "droplet" {
source = "git::https://github.com/terraform-do-modules/terraform-digitalocean-droplet.git?ref=v1.0.0"

name = "web-server"
region = "nyc3"
size = "s-1vcpu-1gb"
image = "ubuntu-22-04-x64"
}

module "firewall" {
source = "git::https://github.com/terraform-do-modules/terraform-digitalocean-firewall.git?ref=v1.0.0"

name = "web-fw"
droplet_ids = [module.droplet.id]

inbound_rules = [
{ protocol = "tcp", port_range = "443", source_addresses = ["0.0.0.0/0", "::/0"] },
]
}

Pin each module to a release tag. Browse tags on the module's GitHub releases page.


All modules

Full list at github.com/terraform-do-modules.