hearth/CLAUDE.md
Eric Garcia f23ea198f0 docs: Update documentation for minimal k3s architecture
Reflect current state:
- k3s on single EC2 spot instance (~$7.50/month)
- Forgejo, PowerDNS, Traefik running
- Remove outdated EKS/CockroachDB references

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-24 09:03:51 -05:00

1.8 KiB

Hearth - Infrastructure Home

The warm center where infrastructure becomes real.

What This Is

Hearth is the infrastructure repository for the letemcook ecosystem. It runs a minimal k3s setup on a single EC2 spot instance (~$7.50/month).

Services:

  • Forgejo - Self-hosted Git
  • PowerDNS - Authoritative DNS
  • Traefik - Ingress with Let's Encrypt

Quick Start

# 1. Configure AWS
aws sso login --profile hearth

# 2. Deploy infrastructure
cd terraform/minimal
terraform init
terraform apply

# 3. Deploy PowerDNS (after instance is running)
scp -P 2222 scripts/deploy-powerdns.sh ec2-user@<EIP>:
ssh -p 2222 ec2-user@<EIP> 'sudo bash deploy-powerdns.sh <EIP>'

# 4. Update GoDaddy glue records for each domain

Structure

hearth/
├── terraform/
│   └── minimal/          # Single EC2 + k3s
│       ├── main.tf       # VPC, EC2, security groups
│       ├── variables.tf  # Input variables
│       └── user-data.sh  # k3s + Forgejo bootstrap
├── scripts/
│   └── deploy-powerdns.sh  # PowerDNS deployment
└── docs/
    ├── architecture.md     # Infrastructure overview
    └── rfcs/               # Design decisions

Access

# Admin SSH
ssh -p 2222 ec2-user@3.218.167.115

# kubectl (on server)
kubectl get pods -A

# Forgejo
https://git.beyondtheuniverse.superviber.com

Principles

From Blue's ADRs:

  • Single Source (0005): Infrastructure as code, one truth
  • Evidence (0004): Terraform plan before apply
  • No Dead Code (0010): Delete unused resources
  • Freedom Through Constraint (0011): Minimal viable infrastructure

AWS Profile

Use hearth profile for all AWS operations:

export AWS_PROFILE=hearth
  • blue - Philosophy and CLI tooling
  • coherence-mcp - MCP server (original source)