1
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
# boilerworks bootstrap
2
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
3
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
Run Terraform infrastructure layers. Requires a generated ops directory (from `boilerworks init` with `ops: true`).
4
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
5
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
```bash
6
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
boilerworks bootstrap
7
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
boilerworks bootstrap --dry-run
8
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
```
9
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
10
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
!!! warning "v2 feature"
11
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
`bootstrap` is a v2 CLI feature. The ops Terraform files are fully functional — run them directly with `./run.sh` in the ops directory. The CLI wrapper is coming in v0.2.
12
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
13
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
## Manual bootstrap (v1)
14
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
15
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
Until the CLI wrapper lands, use `run.sh` directly:
16
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
17
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
```bash
18
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
cd my-app-ops # or my-app/ops for omni topology
19
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
20
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
# Edit cloud config
21
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
vim aws/config.env # set PROJECT, AWS_REGION
22
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
23
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
# Bootstrap state backend (S3 + DynamoDB)
24
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
./run.sh bootstrap aws dev
25
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
26
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
# Plan and apply
27
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
./run.sh plan aws dev
28
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
./run.sh apply aws dev
29
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
```
30
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
31
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
## run.sh commands
32
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
33
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
| Command | Description |
34
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
|---------|-------------|
35
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
| `./run.sh init aws dev` | `terraform init` for AWS dev |
36
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
| `./run.sh plan aws dev` | `terraform plan` |
37
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
| `./run.sh apply aws dev` | `terraform apply` |
38
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
| `./run.sh destroy aws dev` | `terraform destroy` |
39
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
| `./run.sh fmt` | Format all `.tf` files |
40
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
| `./run.sh validate` | Validate all Terraform directories |
41
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
| `./run.sh bootstrap aws dev` | Create state backend + init |
42
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
43
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
## What gets created
44
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
45
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
Running `./run.sh apply aws dev` provisions:
46
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
47
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
- VPC (3 AZs, public/private/database/cache subnets)
48
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
- ECS Fargate cluster + service
49
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
- RDS PostgreSQL 16
50
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
- ElastiCache Redis 7
51
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
- Application Load Balancer (HTTPS)
52
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
- Route53 hosted zone + A record
53
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
- ACM wildcard TLS certificate
54
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
- S3 file storage bucket
55
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
- Secrets Manager (db creds, app secrets)
56
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
- CloudWatch log groups + alarms
57
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
- IAM roles (ECS task execution, CI/CD)
58
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
- Security groups (ALB → ECS → RDS/Redis)
59
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!