cip_project-root is the root hub for the Cloud Infrastructure Portfolio (CIP) — a curated collection of realistic, production-oriented AWS and Infrastructure-as-Code projects. This repository holds central documentation, architecture overviews, conventions, and links (via Git submodules) to each project repository.
This repo is intended to:
- Provide a single, well-organized entry point to all CIP projects.
- Host architecture diagrams, portfolio-level standards, and contributor guidance.
- Include project folders (with local docs and links) that point to independent Git repos (submodules) containing the actual code and IaC.
License: This collection is released under the GNU General Public License Version 3 (GPL-3.0) License — see LICENSE for details.
cip_project-root/
├─ Docs/ # Portfolio-level diagrams and notes
│ └─ Diagrams/ # PNG/SVG/PlantUML files
├─ Standards/ # IaC style, naming conventions, CI templates
├─ Projects/ # Local folders for each project (docs + submodule pointers)
│ ├─ CIP-001: Static site on S3/ # README + link to submodule (git submodule)
│ │ ├─ Docs/ # Portfolio-level diagrams and notes
│ │ │ └─ Diagrams/ # PNG/SVG/PlantUML files
│ │ ├─ Project submodules... # A submodule for each of the repositories that makes the project.
│ │ └─ README.md # Detailed project description.
│ └─ Other projects...
├─ LICENSE # License these projects fall under.
└─ README.md # This file
Each folder under projects/ should contain at minimum a README.md describing the project, a short architecture diagram, and a file (or README section) that explains which remote repository is linked as a submodule.
Each entry below links to the corresponding folder in this repository (local docs). The actual implementation lives in the submodule repository linked from each folder's README.
Folder: projects/cip-001_static-site-on-s3/
Idea: Host a static portfolio site on S3 with CloudFront, automatic invalidation, TLS, and a CI pipeline that builds and deploys the site. Demonstrates infrastructure-as-code for static hosting and secure CDN configuration.
Folder: projects/cip-002_multi-account-setup/
Idea: Create a design for a multi-account AWS Organization, use Terraform to setup this design, regulate the design and control what member account can / can't do.
You can add as many projects as you like. Keep the pattern:
projects/<slug>/README.mddescribing the submodule repo and linking to it.
A central place to store conventions so all projects look and behave consistently. Example items to include in standards/:
- Naming conventions (resource, module, stack naming)
- Terraform / CloudFormation / CDK style guide
- Branching & release strategy
- CI job templates and secrets handling guidance
- Security checklist (IAM least privilege, encryption-at-rest/in-transit, etc.)
Add a project repository as a submodule in the matching folder. Example:
# from the repository root
git submodule add git@github.com:MHooijberg/cip-minecraft-server.git projects/minecraft-server
git commit -m "Add minecraft server submodule"To clone this repo including submodules:
git clone --recurse-submodules git@github.com:MHooijberg/cip_project-root.git
# OR if already cloned
git submodule update --init --recursiveTo update a submodule (inside the submodule folder):
cd projects/minecraft-server
git pull origin main
# back to root
cd ../../
git add projects/minecraft-server
git commit -m "Update submodule pointer"
git pushTip: Keep each project in its own repo so they can have independent CI, issues, and release cycles.
Contributions and improvements are welcome. Please follow these steps:
- Read
standards/and project-specific READMEs. - Open an issue describing the change you want to make.
- Fork the specific project repository you want to change (not this root repo), make your changes, and open a PR.
- If the change requires updating the submodule pointer here, open a PR against
cip_project-rootto update the submodule reference.
This portfolio is released under GPL-3.0. You are free to share and adapt the material under the same license, provided you give appropriate credit and keep derivative works under the same license.
When using or showcasing content derived from CIP projects, please include a visible credit that links back to the original repository and the author (example):
"Based on work from the Cloud Infrastructure Portfolio (cip_project-root) by Mark Hooijberg — https://github.com/MHooijberg/cip_project-root (GPL-3.0)"