# wesleyscholl/bash-scripts architecture

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

- Interactive diagram: https://gitdiagram.com/wesleyscholl/bash-scripts
- Repository: https://github.com/wesleyscholl/bash-scripts

## Overview

This repository is a collection of independently invoked Bash utilities for system administration and infrastructure operations, not a single end-to-end application. Users invoke scripts to inspect or change systems, manage backups, operate Kubernetes and CI/CD tools, and produce reports or alerts. The README documents the capabilities and a few integrations; no source excerpts were provided, so internal call wiring and undocumented service interactions are omitted.

Main entry points: [`scripts/ci-cd/terraform-plan-notify.sh`](https://github.com/wesleyscholl/bash-scripts/blob/main/scripts/ci-cd/terraform-plan-notify.sh) (Terraform Plan), [`scripts/ci-cd/sonarqube-slack-notify.sh`](https://github.com/wesleyscholl/bash-scripts/blob/main/scripts/ci-cd/sonarqube-slack-notify.sh) (SonarQube Notify), [`scripts/system/health-check.sh`](https://github.com/wesleyscholl/bash-scripts/blob/main/scripts/system/health-check.sh) (Health Check), [`scripts/system/system-resource-monitor.sh`](https://github.com/wesleyscholl/bash-scripts/blob/main/scripts/system/system-resource-monitor.sh) (Resource Monitor)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_system_monitoring["System &amp; Monitoring"]
  node_health_check["Health Check<br/>[health-check.sh]"]
  node_resource_monitor["Resource Monitor"]
  node_resource_reporter["Resource Reporter"]
  node_disk_monitor["Disk Monitor"]
  node_http_status["HTTP Status<br/>[http-status.sh]"]
  node_ssl_expiry["SSL Expiry Check"]
  node_account_expiry["Account Expiry"]
end

subgraph group_devops["DevOps &amp; CI/CD"]
  node_jenkins_job["Jenkins Jobs<br/>[jenkins-job.sh]"]
  node_auto_deployment["Auto Deployment<br/>[auto-deployment.sh]"]
  node_argo_sync["Argo CD Sync<br/>[argo-cd-sync.sh]"]
  node_terraform_notify["Terraform Plan"]
  node_sonarqube_notify["SonarQube Notify"]
  node_git_stats["Git Statistics<br/>[git-repo-stats.sh]"]
  node_docker_prune["Docker Pruning"]
end

subgraph group_backup["Backup &amp; Recovery"]
  node_backup["Backup Runner<br/>[backup.sh]"]
  node_database_backup["Database Backup<br/>[db-backup.sh]"]
  node_rsync_backup["Rsync Backup<br/>[rsync-backup.sh]"]
  node_remote_backup["Remote Backup"]
  node_log_rotation["Log Rotation<br/>[log-rotation.sh]"]
end

subgraph group_kubernetes["Containers &amp; Kubernetes"]
  node_namespace_cleanup["Namespace Cleanup"]
  node_scale_deployment["Scale Deployment"]
  node_pod_logs["Pod Log Export"]
  node_service_discovery["Service Discovery"]
end

subgraph group_utilities["Utilities &amp; Notifications"]
  node_slack_notify["Slack Notify<br/>[slack-notify.sh]"]
  node_log_aggregator["Log Aggregator<br/>[log-aggregator.sh]"]
  node_secret_rotation["Secret Rotation<br/>[secret-rotation.sh]"]
end

node_operator(("Operator"))
node_slack{{"Slack"}}
node_terraform{{"Terraform"}}
node_sonarqube{{"SonarQube"}}

node_operator -->|"invokes"| node_health_check
node_operator -->|"invokes"| node_resource_monitor
node_operator -->|"invokes"| node_resource_reporter
node_operator -->|"invokes"| node_disk_monitor
node_operator -->|"invokes"| node_http_status
node_operator -->|"invokes"| node_ssl_expiry
node_operator -->|"invokes"| node_account_expiry
node_operator -->|"invokes"| node_jenkins_job
node_operator -->|"invokes"| node_auto_deployment
node_operator -->|"invokes"| node_argo_sync
node_operator -->|"invokes"| node_terraform_notify
node_operator -->|"invokes"| node_sonarqube_notify
node_operator -->|"invokes"| node_git_stats
node_operator -->|"invokes"| node_docker_prune
node_operator -->|"invokes"| node_backup
node_operator -->|"invokes"| node_database_backup
node_operator -->|"invokes"| node_rsync_backup
node_operator -->|"invokes"| node_remote_backup
node_operator -->|"invokes"| node_log_rotation
node_operator -->|"invokes"| node_namespace_cleanup
node_operator -->|"invokes"| node_scale_deployment
node_operator -->|"invokes"| node_pod_logs
node_operator -->|"invokes"| node_service_discovery
node_operator -->|"invokes"| node_slack_notify
node_operator -->|"invokes"| node_log_aggregator
node_operator -->|"invokes"| node_secret_rotation
node_terraform_notify -->|"runs plan"| node_terraform
node_terraform_notify -->|"posts summary"| node_slack
node_sonarqube_notify -->|"reads results"| node_sonarqube
node_sonarqube_notify -->|"sends notification"| node_slack

click node_health_check "https://github.com/wesleyscholl/bash-scripts/blob/main/scripts/system/health-check.sh"
click node_resource_monitor "https://github.com/wesleyscholl/bash-scripts/blob/main/scripts/system/system-resource-monitor.sh"
click node_resource_reporter "https://github.com/wesleyscholl/bash-scripts/blob/main/scripts/system/system-resource-reporter.sh"
click node_disk_monitor "https://github.com/wesleyscholl/bash-scripts/blob/main/scripts/monitoring/disk-usage-monitor.sh"
click node_http_status "https://github.com/wesleyscholl/bash-scripts/blob/main/scripts/monitoring/http-status.sh"
click node_ssl_expiry "https://github.com/wesleyscholl/bash-scripts/blob/main/scripts/monitoring/check-ssl-expiry.sh"
click node_account_expiry "https://github.com/wesleyscholl/bash-scripts/blob/main/scripts/monitoring/account-expiry-notify.sh"
click node_jenkins_job "https://github.com/wesleyscholl/bash-scripts/blob/main/scripts/ci-cd/jenkins-job.sh"
click node_auto_deployment "https://github.com/wesleyscholl/bash-scripts/blob/main/scripts/ci-cd/auto-deployment.sh"
click node_argo_sync "https://github.com/wesleyscholl/bash-scripts/blob/main/scripts/kubernetes/argo-cd-sync.sh"
click node_terraform_notify "https://github.com/wesleyscholl/bash-scripts/blob/main/scripts/ci-cd/terraform-plan-notify.sh"
click node_sonarqube_notify "https://github.com/wesleyscholl/bash-scripts/blob/main/scripts/ci-cd/sonarqube-slack-notify.sh"
click node_git_stats "https://github.com/wesleyscholl/bash-scripts/blob/main/scripts/devops/git-repo-stats.sh"
click node_docker_prune "https://github.com/wesleyscholl/bash-scripts/blob/main/scripts/devops/docker-image-prune.sh"
click node_backup "https://github.com/wesleyscholl/bash-scripts/blob/main/scripts/backup/backup.sh"
click node_database_backup "https://github.com/wesleyscholl/bash-scripts/blob/main/scripts/backup/db-backup.sh"
click node_rsync_backup "https://github.com/wesleyscholl/bash-scripts/blob/main/scripts/backup/rsync-backup.sh"
click node_remote_backup "https://github.com/wesleyscholl/bash-scripts/blob/main/scripts/backup/scp-remote-backup.sh"
click node_log_rotation "https://github.com/wesleyscholl/bash-scripts/blob/main/scripts/backup/log-rotation.sh"
click node_namespace_cleanup "https://github.com/wesleyscholl/bash-scripts/blob/main/scripts/kubernetes/kubectl-namespace-cleanup.sh"
click node_scale_deployment "https://github.com/wesleyscholl/bash-scripts/blob/main/scripts/kubernetes/scale-deployment.sh"
click node_pod_logs "https://github.com/wesleyscholl/bash-scripts/blob/main/scripts/kubernetes/k8s-pod-logs-export.sh"
click node_service_discovery "https://github.com/wesleyscholl/bash-scripts/blob/main/scripts/kubernetes/service-discovery.sh"
click node_slack_notify "https://github.com/wesleyscholl/bash-scripts/blob/main/scripts/notifications/slack-notify.sh"
click node_log_aggregator "https://github.com/wesleyscholl/bash-scripts/blob/main/scripts/notifications/log-aggregator.sh"
click node_secret_rotation "https://github.com/wesleyscholl/bash-scripts/blob/main/scripts/utils/secret-rotation.sh"

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_health_check,node_resource_monitor,node_resource_reporter,node_disk_monitor,node_http_status,node_ssl_expiry,node_account_expiry toneBlue
class node_jenkins_job,node_auto_deployment,node_argo_sync,node_terraform_notify,node_sonarqube_notify,node_git_stats,node_docker_prune toneAmber
class node_backup,node_database_backup,node_rsync_backup,node_remote_backup,node_log_rotation toneMint
class node_namespace_cleanup,node_scale_deployment,node_pod_logs,node_service_discovery toneRose
class node_slack_notify,node_log_aggregator,node_secret_rotation,node_operator,node_slack,node_terraform,node_sonarqube toneIndigo
```

## Components

### System & Monitoring

- [Health Check](https://github.com/wesleyscholl/bash-scripts/blob/main/scripts/system/health-check.sh): `scripts/system/health-check.sh`
- [Resource Monitor](https://github.com/wesleyscholl/bash-scripts/blob/main/scripts/system/system-resource-monitor.sh): `scripts/system/system-resource-monitor.sh`
- [Resource Reporter](https://github.com/wesleyscholl/bash-scripts/blob/main/scripts/system/system-resource-reporter.sh): `scripts/system/system-resource-reporter.sh`
- [Disk Monitor](https://github.com/wesleyscholl/bash-scripts/blob/main/scripts/monitoring/disk-usage-monitor.sh): `scripts/monitoring/disk-usage-monitor.sh`
- [HTTP Status](https://github.com/wesleyscholl/bash-scripts/blob/main/scripts/monitoring/http-status.sh): `scripts/monitoring/http-status.sh`
- [SSL Expiry Check](https://github.com/wesleyscholl/bash-scripts/blob/main/scripts/monitoring/check-ssl-expiry.sh): `scripts/monitoring/check-ssl-expiry.sh`
- [Account Expiry](https://github.com/wesleyscholl/bash-scripts/blob/main/scripts/monitoring/account-expiry-notify.sh): `scripts/monitoring/account-expiry-notify.sh`

### DevOps & CI/CD

- [Jenkins Jobs](https://github.com/wesleyscholl/bash-scripts/blob/main/scripts/ci-cd/jenkins-job.sh): `scripts/ci-cd/jenkins-job.sh`
- [Auto Deployment](https://github.com/wesleyscholl/bash-scripts/blob/main/scripts/ci-cd/auto-deployment.sh): `scripts/ci-cd/auto-deployment.sh`
- [Argo CD Sync](https://github.com/wesleyscholl/bash-scripts/blob/main/scripts/kubernetes/argo-cd-sync.sh): `scripts/kubernetes/argo-cd-sync.sh`
- [Terraform Plan](https://github.com/wesleyscholl/bash-scripts/blob/main/scripts/ci-cd/terraform-plan-notify.sh): `scripts/ci-cd/terraform-plan-notify.sh`
- [SonarQube Notify](https://github.com/wesleyscholl/bash-scripts/blob/main/scripts/ci-cd/sonarqube-slack-notify.sh): `scripts/ci-cd/sonarqube-slack-notify.sh`
- [Git Statistics](https://github.com/wesleyscholl/bash-scripts/blob/main/scripts/devops/git-repo-stats.sh): `scripts/devops/git-repo-stats.sh`
- [Docker Pruning](https://github.com/wesleyscholl/bash-scripts/blob/main/scripts/devops/docker-image-prune.sh): `scripts/devops/docker-image-prune.sh`

### Backup & Recovery

- [Backup Runner](https://github.com/wesleyscholl/bash-scripts/blob/main/scripts/backup/backup.sh): `scripts/backup/backup.sh`
- [Database Backup](https://github.com/wesleyscholl/bash-scripts/blob/main/scripts/backup/db-backup.sh): `scripts/backup/db-backup.sh`
- [Rsync Backup](https://github.com/wesleyscholl/bash-scripts/blob/main/scripts/backup/rsync-backup.sh): `scripts/backup/rsync-backup.sh`
- [Remote Backup](https://github.com/wesleyscholl/bash-scripts/blob/main/scripts/backup/scp-remote-backup.sh): `scripts/backup/scp-remote-backup.sh`
- [Log Rotation](https://github.com/wesleyscholl/bash-scripts/blob/main/scripts/backup/log-rotation.sh): `scripts/backup/log-rotation.sh`

### Containers & Kubernetes

- [Namespace Cleanup](https://github.com/wesleyscholl/bash-scripts/blob/main/scripts/kubernetes/kubectl-namespace-cleanup.sh): `scripts/kubernetes/kubectl-namespace-cleanup.sh`
- [Scale Deployment](https://github.com/wesleyscholl/bash-scripts/blob/main/scripts/kubernetes/scale-deployment.sh): `scripts/kubernetes/scale-deployment.sh`
- [Pod Log Export](https://github.com/wesleyscholl/bash-scripts/blob/main/scripts/kubernetes/k8s-pod-logs-export.sh): `scripts/kubernetes/k8s-pod-logs-export.sh`
- [Service Discovery](https://github.com/wesleyscholl/bash-scripts/blob/main/scripts/kubernetes/service-discovery.sh): `scripts/kubernetes/service-discovery.sh`

### Utilities & Notifications

- [Slack Notify](https://github.com/wesleyscholl/bash-scripts/blob/main/scripts/notifications/slack-notify.sh): `scripts/notifications/slack-notify.sh`
- [Log Aggregator](https://github.com/wesleyscholl/bash-scripts/blob/main/scripts/notifications/log-aggregator.sh): `scripts/notifications/log-aggregator.sh`
- [Secret Rotation](https://github.com/wesleyscholl/bash-scripts/blob/main/scripts/utils/secret-rotation.sh): `scripts/utils/secret-rotation.sh`

### Other components

- **Operator**
- **Slack**
- **Terraform**
- **SonarQube**

## Connections

- Operator → Health Check: invokes
- Operator → Resource Monitor: invokes
- Operator → Resource Reporter: invokes
- Operator → Disk Monitor: invokes
- Operator → HTTP Status: invokes
- Operator → SSL Expiry Check: invokes
- Operator → Account Expiry: invokes
- Operator → Jenkins Jobs: invokes
- Operator → Auto Deployment: invokes
- Operator → Argo CD Sync: invokes
- Operator → Terraform Plan: invokes
- Operator → SonarQube Notify: invokes
- Operator → Git Statistics: invokes
- Operator → Docker Pruning: invokes
- Operator → Backup Runner: invokes
- Operator → Database Backup: invokes
- Operator → Rsync Backup: invokes
- Operator → Remote Backup: invokes
- Operator → Log Rotation: invokes
- Operator → Namespace Cleanup: invokes
- Operator → Scale Deployment: invokes
- Operator → Pod Log Export: invokes
- Operator → Service Discovery: invokes
- Operator → Slack Notify: invokes
- Operator → Log Aggregator: invokes
- Operator → Secret Rotation: invokes
- Terraform Plan → Terraform: runs plan
- Terraform Plan → Slack: posts summary
- SonarQube Notify → SonarQube: reads results
- SonarQube Notify → Slack: sends notification
