Skip to content

Repository Structure

Annotated directory tree with descriptions of every file and directory.

Directory Tree

.
├── .checkov.yml                        # Checkov security scanner configuration
├── .devcontainer/                      # Development container configuration
│   ├── devcontainer.json               # Devcontainer settings and extensions
│   └── Dockerfile                      # Docker image for dev environment
├── .editorconfig                       # Consistent coding styles across editors
├── .github/                            # GitHub-specific configurations
│   ├── dependabot.yml                  # Automated dependency updates
│   ├── ISSUE_TEMPLATE/
│   │   └── issue_template.md           # Issue template for bug reports/features
│   ├── pull_request_template.md        # PR template with checklist
│   └── workflows/                      # GitHub Actions workflows
│       ├── automerge.yaml              # Auto-merge bot PRs
│       ├── checkov.yaml                # Standalone Checkov security scan
│       ├── docs-deploy.yaml             # Documentation build and deploy
│       ├── gitleaks.yaml               # Secret detection scan
│       ├── infracost.yaml              # Cost estimation for PRs
│       ├── lint-pr.yaml                # PR title linting
│       ├── pre-commit-auto-update.yaml # Auto-update pre-commit hooks
│       ├── pre-commit-ci.yaml          # Pre-commit checks on PRs
│       ├── release.yaml                # Semantic release automation
│       ├── stale.yaml                  # Stale issue/PR management
│       ├── template-repo-sync.yaml     # Template repository sync
│       ├── terraform-aws.yml           # Terraform plan/apply/destroy
│       ├── tf-docs.yaml                # Auto-generate Terraform docs
│       └── update-license.yml          # Auto-update license year
├── .gitignore                          # Git ignore rules
├── .pre-commit-config.yaml             # Pre-commit hooks configuration
├── .releaserc.json                     # Semantic release configuration
├── .templatesyncignore                 # Files excluded from template sync
├── .terraform-version                  # Terraform version for tfenv/asdf
├── .terraform.lock.hcl                 # Terraform dependency lock file
├── .tflint.hcl                         # TFLint linting configuration
├── .vscode/
│   └── extensions.json                 # Recommended VSCode extensions
├── BEST-PRACTICES.md                   # Best practices implementation summary
├── CHANGELOG.md                        # Auto-generated changelog
├── CLAUDE.md                           # AI assistant guidance
├── CODEOWNERS                          # Code ownership definitions
├── LICENSE                             # MIT license
├── README.md                           # Project documentation
├── TF-DOCS.md                          # Auto-generated Terraform documentation
├── docs/                               # MkDocs documentation source
│   ├── changelog.md                    # Changelog process documentation
│   ├── commit-conventions.md           # Conventional commits guide
│   ├── configuration.md                # Configuration file reference
│   ├── contributing.md                 # Contributing guidelines
│   ├── index.md                        # Documentation home page
│   ├── quick-start.md                  # Getting started guide
│   ├── repository-structure.md         # This file
│   ├── security.md                     # Security scanning documentation
│   ├── stylesheets/
│   │   └── extra.css                   # Custom MkDocs styles
│   ├── usage.md                        # Usage guide and commands
│   └── workflows.md                    # CI/CD workflow documentation
├── environments/                       # Environment-specific variables
│   ├── dev/
│   │   └── dev.tfvars                  # Development settings
│   ├── prod/
│   │   └── prod.tfvars                 # Production settings
│   └── qa/
│       └── qa.tfvars                   # QA/staging settings
├── examples/                           # Example configurations
│   ├── complete-infrastructure/        # Full stack example
│   ├── data-sources/                   # AWS data source patterns
│   └── module-composition/             # Module reuse patterns
├── locals.tf                           # Local values and naming logic
├── main.tf                             # Main resource definitions
├── mkdocs.yml                          # MkDocs site configuration
├── modules/                            # Reusable Terraform modules
│   └── s3-bucket/
│       ├── main.tf                     # S3 bucket resources
│       ├── outputs.tf                  # Module outputs
│       ├── README.md                   # Module documentation
│       └── variables.tf                # Module input variables
├── outputs.tf                          # Root module outputs
├── providers.tf                        # AWS provider configuration
├── requirements.txt                    # Python dependencies for MkDocs
├── variables.tf                        # Root module input variables
└── versions.tf                         # Terraform and provider versions

Key Directories

environments/

Contains environment-specific variable files. Each environment has its own directory with a .tfvars file defining configuration values appropriate for that environment (instance sizes, feature flags, retention periods, etc.).

modules/

Reusable Terraform modules following the standard structure (main.tf, variables.tf, outputs.tf, README.md). Each module includes validation, documentation, and secure defaults.

examples/

Production-ready example configurations demonstrating common patterns. Each example is self-contained with its own README.

.github/workflows/

GitHub Actions workflow files for CI/CD automation. See CI/CD Workflows for documentation of each workflow.

docs/

MkDocs documentation source files. Built and deployed to GitHub Pages automatically.