# abhinav-26/devops-projects architecture

> Architecture diagram of the GitHub repository abhinav-26/devops-projects, generated by GitDiagram from its file tree, README and a sample of source files (last updated 2026-09-28). It is an AI-made overview: check details against the source.

- Interactive diagram: https://gitdiagram.com/abhinav-26/devops-projects
- Repository: https://github.com/abhinav-26/devops-projects

## Overview

This repository is a collection of five DevOps demonstrations, not one application. Their shared theme is automating code-to-deployment workflows, with projects focused respectively on Apache web hosting, Docker website deployment, Docker-in-Docker, developer/production deployment, and Terraform-managed Cloud Build/GKE. The README documents the major integrations; sampled source confirms the contact-form email flow in Projects 1 and 4. Details not shown in source are represented only where the README explicitly describes them.

Main entry points: [`DevOps Project-5/main.tf`](https://github.com/abhinav-26/devops-projects/blob/master/DevOps%20Project-5/main.tf) (Terraform configuration), [`DevOps Project-1/Website/sendemail.php`](https://github.com/abhinav-26/devops-projects/blob/master/DevOps%20Project-1/Website/sendemail.php) (Contact handler), [`DevOps Project-4/sendemail.php`](https://github.com/abhinav-26/devops-projects/blob/master/DevOps%20Project-4/sendemail.php) (Contact handler), [`DevOps Project-1/Website/index.html`](https://github.com/abhinav-26/devops-projects/blob/master/DevOps%20Project-1/Website/index.html) (Website)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_web["Web Hosting"]
  node_github1["GitHub"]
  node_jenkins1["Jenkins"]
  node_site1["Website<br/>[index.html]"]
  node_apache["Apache httpd"]
  node_contact1["Contact handler<br/>[sendemail.php]"]
  node_template1["Email template<br/>[simple.html]"]
end

subgraph group_containers["Container Delivery"]
  node_github2["GitHub"]
  node_jenkins2["Jenkins"]
  node_docker2["Docker container"]
  node_site2["Website deployment"]
  node_docker3["Docker-in-Docker"]
end

subgraph group_environments["Environment Deployment"]
  node_github4["GitHub"]
  node_jenkins4["Jenkins"]
  node_docker4["Docker"]
  node_dev4["Developer environment"]
  node_prod4["Production environment"]
  node_site4["Website<br/>[index.html]"]
  node_contact4["Contact handler<br/>[sendemail.php]"]
  node_template4["Email template<br/>[simple.html]"]
end

subgraph group_cloud["Cloud Provisioning"]
  node_terraform["Terraform configuration<br/>[main.tf]"]
  node_repository5["Source repository"]
  node_cloudbuild["Cloud Build trigger"]
  node_gke["GKE cluster"]
end

node_developer(("Developer"))
node_mail["Mail service"]
node_host3["Host system"]
node_developer5(("Developer"))

node_developer -->|"commits code"| node_github1
node_github1 -->|"webhook triggers"| node_jenkins1
node_jenkins1 -->|"deploys website"| node_apache
node_apache -->|"serves"| node_site1
node_site1 -->|"submits contact"| node_contact1
node_contact1 -->|"reads template"| node_template1
node_contact1 -->|"sends email"| node_mail
node_developer -->|"commits code"| node_github2
node_github2 -->|"triggers deployment"| node_jenkins2
node_jenkins2 -->|"deploys into"| node_docker2
node_docker2 -->|"runs website"| node_site2
node_host3 -->|"runs container"| node_docker3
node_docker3 -->|"enables nested containers"| node_host3
node_developer -->|"commits code"| node_github4
node_github4 -->|"triggers pipeline"| node_jenkins4
node_jenkins4 -->|"uses"| node_docker4
node_jenkins4 -->|"deploys"| node_dev4
node_jenkins4 -->|"deploys"| node_prod4
node_dev4 -->|"hosts"| node_site4
node_site4 -->|"submits contact"| node_contact4
node_contact4 -->|"reads template"| node_template4
node_contact4 -->|"sends email"| node_mail
node_developer5 -->|"configures"| node_terraform
node_terraform -->|"targets repository"| node_repository5
node_terraform -->|"creates trigger"| node_cloudbuild
node_terraform -->|"deploys to"| node_gke
node_cloudbuild -->|"deploys build"| node_gke

click node_site1 "https://github.com/abhinav-26/devops-projects/blob/master/DevOps%20Project-1/Website/index.html"
click node_contact1 "https://github.com/abhinav-26/devops-projects/blob/master/DevOps%20Project-1/Website/sendemail.php"
click node_template1 "https://github.com/abhinav-26/devops-projects/blob/master/DevOps%20Project-1/Website/email-templates/simple.html"
click node_docker2 "https://github.com/abhinav-26/devops-projects/tree/master/DevOps%20Project-2"
click node_site2 "https://github.com/abhinav-26/devops-projects/tree/master/DevOps%20Project-2"
click node_docker3 "https://github.com/abhinav-26/devops-projects/blob/master/DevOps%20Project-3/Dockerfile"
click node_dev4 "https://github.com/abhinav-26/devops-projects/tree/master/DevOps%20Project-4"
click node_prod4 "https://github.com/abhinav-26/devops-projects/tree/master/DevOps%20Project-4"
click node_site4 "https://github.com/abhinav-26/devops-projects/blob/master/DevOps%20Project-4/index.html"
click node_contact4 "https://github.com/abhinav-26/devops-projects/blob/master/DevOps%20Project-4/sendemail.php"
click node_template4 "https://github.com/abhinav-26/devops-projects/blob/master/DevOps%20Project-4/email-templates/simple.html"
click node_terraform "https://github.com/abhinav-26/devops-projects/blob/master/DevOps%20Project-5/main.tf"

classDef toneNeutral fill:#f8fafc,stroke:#334155,stroke-width:1.5px,color:#0f172a
classDef toneBlue fill:#dbeafe,stroke:#2563eb,stroke-width:1.5px,color:#172554
classDef toneAmber fill:#fef3c7,stroke:#d97706,stroke-width:1.5px,color:#78350f
classDef toneMint fill:#dcfce7,stroke:#16a34a,stroke-width:1.5px,color:#14532d
classDef toneRose fill:#ffe4e6,stroke:#e11d48,stroke-width:1.5px,color:#881337
classDef toneIndigo fill:#e0e7ff,stroke:#4f46e5,stroke-width:1.5px,color:#312e81
classDef toneTeal fill:#ccfbf1,stroke:#0f766e,stroke-width:1.5px,color:#134e4a
class node_github1,node_jenkins1,node_site1,node_apache,node_contact1,node_template1 toneBlue
class node_github2,node_jenkins2,node_docker2,node_site2,node_docker3 toneAmber
class node_github4,node_jenkins4,node_docker4,node_dev4,node_prod4,node_site4,node_contact4,node_template4 toneMint
class node_terraform,node_repository5,node_cloudbuild,node_gke toneRose
class node_developer,node_mail,node_host3,node_developer5 toneIndigo
```

## Components

### Web Hosting

- **GitHub**
- **Jenkins**
- [Website](https://github.com/abhinav-26/devops-projects/blob/master/DevOps%20Project-1/Website/index.html): `DevOps Project-1/Website/index.html`
- **Apache httpd**
- [Contact handler](https://github.com/abhinav-26/devops-projects/blob/master/DevOps%20Project-1/Website/sendemail.php): `DevOps Project-1/Website/sendemail.php`
- [Email template](https://github.com/abhinav-26/devops-projects/blob/master/DevOps%20Project-1/Website/email-templates/simple.html): `DevOps Project-1/Website/email-templates/simple.html`

### Container Delivery

- **GitHub**
- **Jenkins**
- [Docker container](https://github.com/abhinav-26/devops-projects/tree/master/DevOps%20Project-2): `DevOps Project-2`
- [Website deployment](https://github.com/abhinav-26/devops-projects/tree/master/DevOps%20Project-2): `DevOps Project-2`
- [Docker-in-Docker](https://github.com/abhinav-26/devops-projects/blob/master/DevOps%20Project-3/Dockerfile): `DevOps Project-3/Dockerfile`

### Environment Deployment

- **GitHub**
- **Jenkins**
- **Docker**
- [Developer environment](https://github.com/abhinav-26/devops-projects/tree/master/DevOps%20Project-4): `DevOps Project-4`
- [Production environment](https://github.com/abhinav-26/devops-projects/tree/master/DevOps%20Project-4): `DevOps Project-4`
- [Website](https://github.com/abhinav-26/devops-projects/blob/master/DevOps%20Project-4/index.html): `DevOps Project-4/index.html`
- [Contact handler](https://github.com/abhinav-26/devops-projects/blob/master/DevOps%20Project-4/sendemail.php): `DevOps Project-4/sendemail.php`
- [Email template](https://github.com/abhinav-26/devops-projects/blob/master/DevOps%20Project-4/email-templates/simple.html): `DevOps Project-4/email-templates/simple.html`

### Cloud Provisioning

- [Terraform configuration](https://github.com/abhinav-26/devops-projects/blob/master/DevOps%20Project-5/main.tf): `DevOps Project-5/main.tf`
- **Source repository**
- **Cloud Build trigger**
- **GKE cluster**

### Other components

- **Developer**
- **Mail service**
- **Host system**
- **Developer**

## Connections

- Developer → GitHub: commits code
- GitHub → Jenkins: webhook triggers
- Jenkins → Apache httpd: deploys website
- Apache httpd → Website: serves
- Website → Contact handler: submits contact
- Contact handler → Email template: reads template
- Contact handler → Mail service: sends email
- Developer → GitHub: commits code
- GitHub → Jenkins: triggers deployment
- Jenkins → Docker container: deploys into
- Docker container → Website deployment: runs website
- Host system → Docker-in-Docker: runs container
- Docker-in-Docker → Host system: enables nested containers
- Developer → GitHub: commits code
- GitHub → Jenkins: triggers pipeline
- Jenkins → Docker: uses
- Jenkins → Developer environment: deploys
- Jenkins → Production environment: deploys
- Developer environment → Website: hosts
- Website → Contact handler: submits contact
- Contact handler → Email template: reads template
- Contact handler → Mail service: sends email
- Developer → Terraform configuration: configures
- Terraform configuration → Source repository: targets repository
- Terraform configuration → Cloud Build trigger: creates trigger
- Terraform configuration → GKE cluster: deploys to
- Cloud Build trigger → GKE cluster: deploys build
