Files
heygo/terraform/main.tf
T
Hermes Agent e4fbbaec14 feat: add terraform IaC, dev/prod environments, and multi-host worker support
- Terraform configs for D1 databases, KV namespaces, Worker custom domains
- wrangler.dev.jsonc and wrangler.prod.jsonc for environment-specific deployments
- Worker code refactored to use env vars for host checking (PUBLIC_HOST, PRIVATE_HOST)
- Configurable app URLs and cookie domain via env vars
- Deploy and migrate npm scripts for dev/prod
- Updated all tests with new env fixtures
- Deployment guide in README
2026-06-20 14:26:56 +10:00

31 lines
1.1 KiB
Terraform

# D1 database that stores links, sessions, users, and promotion submissions.
resource "cloudflare_d1_database" "shortlinks" {
account_id = var.account_id
name = var.d1_database_name
primary_location_hint = var.primary_location_hint
}
# Workers KV namespace used as a public link cache in front of D1.
resource "cloudflare_workers_kv_namespace" "public_cache" {
account_id = var.account_id
title = var.kv_namespace_title
}
# Custom domain for the public shortlinks host (heygo.cc / dev.heygo.cc).
# Verified v5 resource name: cloudflare_workers_custom_domain
# (see https://developers.cloudflare.com/api/terraform/resources/workers/subresources/domains/).
resource "cloudflare_workers_custom_domain" "public" {
account_id = var.account_id
zone_id = var.heygo_cc_zone_id
hostname = var.public_domain
service = var.worker_name
}
# Custom domain for the private shortlinks host (my.heygo.cc / my.dev.junv.cc).
resource "cloudflare_workers_custom_domain" "private" {
account_id = var.account_id
zone_id = var.private_domain_zone_id
hostname = var.private_domain
service = var.worker_name
}