Project 6 of the GenAI Developer Roadmap 2026. A complete deployment pipeline: Dockerize a FastAPI application, set up CI/CD with GitHub Actions, and generate cloud infrastructure configs for AWS ECS and Kubernetes.
ShipAI/
├── week-1/ # Dockerize — FastAPI app, Docker configs, health checks
├── week-2/ # CI/CD Pipeline — GitHub Actions, linting, security scanning
├── week-3/ # Cloud Deploy — Terraform, Kubernetes, deployment runbooks
└── README.md
Production-ready FastAPI application with multi-stage Docker builds.
| Module | Description |
|---|---|
src/api/app.py |
FastAPI app factory with CORS, rate limiting middleware, health endpoints |
src/api/security.py |
Input sanitization, prompt injection detection, API key validation |
src/health/checks.py |
Liveness/readiness probes, component health checks (DB, disk, memory) |
src/docker/dockerfile.py |
Multi-stage Dockerfile generator (builder + runtime, non-root user) |
src/docker/compose.py |
Docker Compose config generator (API + dashboard + Redis) |
Key features:
- Multi-stage Docker builds with non-root user and health checks
- Rate limiting middleware that skips health endpoints
- XSS/template injection sanitization and prompt injection detection
- Three-tier health checks: liveness, readiness, detailed component report
GitHub Actions workflow generation, linting configuration, and security scanning.
| Module | Description |
|---|---|
src/ci/github_actions.py |
Workflow/Job/Step dataclasses, CI pipeline generator (test + lint + build) |
src/lint/rules.py |
Ruff/Bandit config generators, import sorting/debug print/secret checkers |
src/scanning/security_scan.py |
Dependency vulnerability scanner, Dockerfile/Compose security audit |
Key features:
- GitHub Actions workflow with test, lint, and Docker build jobs (build depends on test + lint)
- Known vulnerability database for dependency scanning (Flask, Django, urllib3, etc.)
- Dockerfile security checks: root user, hardcoded secrets, SSH exposure, curl-pipe-sh
- Compose scanning: privileged mode, host network, hardcoded secrets, missing restart policy
Infrastructure-as-Code and deployment automation.
| Module | Description |
|---|---|
src/deploy/terraform.py |
Terraform HCL generator — VPC, subnets, security groups, ECS Fargate |
src/deploy/kubernetes.py |
K8s manifest generator — Deployment, Service, Ingress, HPA |
src/deploy/runbook.py |
Step-by-step deployment runbooks with rollback commands |
Key features:
- AWS ECS Fargate config: VPC with 2 AZs, security groups, task definitions, service with desired count
- Kubernetes manifests: Deployments with liveness/readiness probes, HPA with CPU autoscaling
- Deployment runbooks with phases, estimated times, manual step flags, and rollback commands
- Markdown runbook export with checkboxes and bash code blocks
# Week 1
python main.py serve # Run FastAPI server
python main.py health # Run health checks
python main.py generate-docker # Generate Dockerfile + docker-compose.yml
python main.py generate-ignore # Generate .dockerignore
# Week 2
python main.py generate-ci # Generate GitHub Actions workflow
python main.py lint # Run lint checks on source files
python main.py scan # Run security scans
# Week 3
python main.py generate-terraform # Generate Terraform configs (AWS ECS)
python main.py generate-k8s # Generate Kubernetes manifests
python main.py runbook # Generate deployment runbook
python main.py runbook --target k8s --markdown # K8s runbook as Markdown| Week | Tests | Focus |
|---|---|---|
| Week 1 | 87 | API endpoints, health checks, Docker configs, security |
| Week 2 | 213 | GitHub Actions, lint rules, security scanning |
| Week 3 | 350 | Terraform, Kubernetes, runbooks (cumulative) |
Total: 650 tests across all weeks
- API: FastAPI + Uvicorn
- Containers: Docker multi-stage builds, Docker Compose
- CI/CD: GitHub Actions, Ruff, Bandit
- IaC: Terraform (AWS ECS Fargate)
- Orchestration: Kubernetes (Deployment, Service, HPA, Ingress)
- Security: Input sanitization, dependency scanning, Dockerfile auditing