hearth/terraform/minimal/variables.tf
Eric Garcia b1065ca887 feat(minimal): Add k3s-on-EC2 infrastructure for single user
Decision from 12-expert alignment dialogue on single-user scale.
Implements Option E with modifications:

- t4g.small spot instance (~$5/mo)
- k3s with Traefik for ingress + Let's Encrypt TLS
- SQLite database for Forgejo
- S3 backups with 30-day lifecycle
- EBS gp3 20GB encrypted
- Admin SSH on port 2222, Git SSH on port 22

Total cost: ~$7.50/month

Includes:
- terraform/minimal/ - full terraform configuration
- terraform/bootstrap/ - state backend (already applied)
- docs/spikes/0001-single-user-scale.md - decision documentation

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-24 06:21:55 -05:00

47 lines
1.1 KiB
HCL

# Hearth Minimal - Variables
variable "aws_region" {
description = "AWS region"
type = string
default = "us-east-1"
}
variable "domain" {
description = "Domain for Forgejo (e.g., git.example.com)"
type = string
}
variable "letsencrypt_email" {
description = "Email for Let's Encrypt certificate notifications"
type = string
}
variable "instance_type" {
description = "EC2 instance type"
type = string
default = "t4g.small" # 2 vCPU, 2GB RAM, ARM64
}
variable "volume_size" {
description = "Root volume size in GB"
type = number
default = 20
}
variable "spot_max_price" {
description = "Maximum spot price (empty = on-demand price)"
type = string
default = "" # Use on-demand price as max
}
variable "admin_ssh_port" {
description = "SSH port for admin access"
type = number
default = 2222
}
variable "admin_cidr_blocks" {
description = "CIDR blocks allowed for admin SSH and k8s API"
type = list(string)
default = ["0.0.0.0/0"] # Restrict this in production!
}