# star3am/hashiqube architecture

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

- Interactive diagram: https://gitdiagram.com/star3am/hashiqube
- Repository: https://github.com/star3am/hashiqube

## Overview

HashiQube is a hands-on DevOps lab: users launch it in Codespaces, locally with Vagrant or Docker Compose, or as a cloud VM, then initialize a containerized environment and run tools and product labs. Its capabilities span HashiCorp services, infrastructure and orchestration, databases, monitoring, and DevOps tools, with Docsify documentation. README statements support the deployment and capability links; sampled source is limited, so internal wiring among most integrations is not asserted.

Main entry points: [`hashiqube/basetools.sh`](https://github.com/star3am/hashiqube/blob/master/hashiqube/basetools.sh) (HashiQube lab), [`docsify`](https://github.com/star3am/hashiqube/tree/master/docsify) (Docs site), [`Vagrantfile`](https://github.com/star3am/hashiqube/blob/master/Vagrantfile) (Vagrant launch), [`docker-compose.yml`](https://github.com/star3am/hashiqube/blob/master/docker-compose.yml) (Docker Compose)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_launch["Lab deployment"]
  node_codespaces["Codespaces"]
  node_vagrant["Vagrant launch"]
  node_compose["Docker Compose<br/>[docker-compose.yml]"]
  node_cloud["Cloud VM launch"]
end

subgraph group_core["Environment core"]
  node_qube["HashiQube lab<br/>[basetools.sh]"]
  node_docker["Docker daemon<br/>[docker.sh]"]
end

subgraph group_hashicorp["HashiCorp labs"]
  node_vault["Vault<br/>[vault.sh]"]
  node_terraform["Terraform<br/>[terraform.sh]"]
  node_nomad["Nomad<br/>[nomad.sh]"]
  node_consul["Consul<br/>[consul.sh]"]
  node_waypoint["Waypoint<br/>[waypoint.sh]"]
  node_boundary["Boundary<br/>[boundary.sh]"]
  node_packer["Packer<br/>[packer.sh]"]
  node_sentinel["Sentinel<br/>[sentinel.sh]"]
end

subgraph group_platform["Platform integrations"]
  node_orchestration["Kubernetes and AWX<br/>[k3s.sh]"]
  node_ansible["Ansible<br/>[playbook.yml]"]
  node_databases["Databases"]
  node_monitoring["Monitoring"]
  node_airflow["Airflow and dbt<br/>[run-dbt.py]"]
end

subgraph group_docs["Documentation"]
  node_docsify["Docs site"]
  node_search["Documentation search<br/>[search.js]"]
  node_tabs["Documentation tabs<br/>[docsify-tabs.js]"]
  node_bashsyntax["Bash highlighting<br/>[prism-bash.js]"]
end

node_user(("Engineer or learner"))

node_user -->|"launches"| node_codespaces
node_user -->|"launches"| node_vagrant
node_user -->|"launches"| node_compose
node_user -->|"launches"| node_cloud
node_codespaces -->|"initializes"| node_qube
node_vagrant -->|"provisions"| node_qube
node_compose -->|"initializes"| node_qube
node_qube -->|"installs"| node_docker
node_user -->|"starts"| node_vault
node_user -->|"starts"| node_nomad
node_user -->|"starts"| node_consul
node_user -->|"starts"| node_boundary
node_qube -.->|"hosts"| node_vault
node_qube -.->|"hosts"| node_terraform
node_qube -.->|"hosts"| node_nomad
node_qube -.->|"hosts"| node_consul
node_qube -.->|"hosts"| node_waypoint
node_qube -.->|"hosts"| node_boundary
node_qube -.->|"hosts"| node_packer
node_qube -.->|"hosts"| node_sentinel
node_qube -.->|"hosts"| node_orchestration
node_qube -.->|"hosts"| node_ansible
node_qube -.->|"hosts"| node_databases
node_qube -.->|"hosts"| node_monitoring
node_qube -.->|"hosts"| node_airflow
node_user -->|"reads"| node_docsify
node_docsify -.->|"provides"| node_search
node_docsify -.->|"provides"| node_tabs
node_docsify -.->|"provides"| node_bashsyntax

click node_vagrant "https://github.com/star3am/hashiqube/blob/master/Vagrantfile"
click node_compose "https://github.com/star3am/hashiqube/blob/master/docker-compose.yml"
click node_cloud "https://github.com/star3am/hashiqube/tree/master/multi-cloud"
click node_qube "https://github.com/star3am/hashiqube/blob/master/hashiqube/basetools.sh"
click node_docker "https://github.com/star3am/hashiqube/blob/master/docker/docker.sh"
click node_vault "https://github.com/star3am/hashiqube/blob/master/vault/vault.sh"
click node_terraform "https://github.com/star3am/hashiqube/blob/master/terraform/terraform.sh"
click node_nomad "https://github.com/star3am/hashiqube/blob/master/nomad/nomad.sh"
click node_consul "https://github.com/star3am/hashiqube/blob/master/consul/consul.sh"
click node_waypoint "https://github.com/star3am/hashiqube/blob/master/waypoint/waypoint.sh"
click node_boundary "https://github.com/star3am/hashiqube/blob/master/boundary/boundary.sh"
click node_packer "https://github.com/star3am/hashiqube/blob/master/packer/packer.sh"
click node_sentinel "https://github.com/star3am/hashiqube/blob/master/sentinel/sentinel.sh"
click node_orchestration "https://github.com/star3am/hashiqube/blob/master/k3s/k3s.sh"
click node_ansible "https://github.com/star3am/hashiqube/blob/master/ansible/playbook.yml"
click node_databases "https://github.com/star3am/hashiqube/tree/master/database"
click node_monitoring "https://github.com/star3am/hashiqube/blob/master/prometheus-grafana/prometheus-grafana.sh"
click node_airflow "https://github.com/star3am/hashiqube/blob/master/apache-airflow/dags/run-dbt.py"
click node_docsify "https://github.com/star3am/hashiqube/tree/master/docsify"
click node_search "https://github.com/star3am/hashiqube/blob/master/docsify/lib/search.js"
click node_tabs "https://github.com/star3am/hashiqube/blob/master/docsify/lib/docsify-tabs.js"
click node_bashsyntax "https://github.com/star3am/hashiqube/blob/master/docsify/lib/prism-bash.js"

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_codespaces,node_vagrant,node_compose,node_cloud toneBlue
class node_qube,node_docker toneAmber
class node_vault,node_terraform,node_nomad,node_consul,node_waypoint,node_boundary,node_packer,node_sentinel toneMint
class node_orchestration,node_ansible,node_databases,node_monitoring,node_airflow toneRose
class node_docsify,node_search,node_tabs,node_bashsyntax,node_user toneIndigo
```

## Components

### Lab deployment

- **Codespaces**
- [Vagrant launch](https://github.com/star3am/hashiqube/blob/master/Vagrantfile): `Vagrantfile`
- [Docker Compose](https://github.com/star3am/hashiqube/blob/master/docker-compose.yml): `docker-compose.yml`
- [Cloud VM launch](https://github.com/star3am/hashiqube/tree/master/multi-cloud): `multi-cloud`

### Environment core

- [HashiQube lab](https://github.com/star3am/hashiqube/blob/master/hashiqube/basetools.sh): `hashiqube/basetools.sh`
- [Docker daemon](https://github.com/star3am/hashiqube/blob/master/docker/docker.sh): `docker/docker.sh`

### HashiCorp labs

- [Vault](https://github.com/star3am/hashiqube/blob/master/vault/vault.sh): `vault/vault.sh`
- [Terraform](https://github.com/star3am/hashiqube/blob/master/terraform/terraform.sh): `terraform/terraform.sh`
- [Nomad](https://github.com/star3am/hashiqube/blob/master/nomad/nomad.sh): `nomad/nomad.sh`
- [Consul](https://github.com/star3am/hashiqube/blob/master/consul/consul.sh): `consul/consul.sh`
- [Waypoint](https://github.com/star3am/hashiqube/blob/master/waypoint/waypoint.sh): `waypoint/waypoint.sh`
- [Boundary](https://github.com/star3am/hashiqube/blob/master/boundary/boundary.sh): `boundary/boundary.sh`
- [Packer](https://github.com/star3am/hashiqube/blob/master/packer/packer.sh): `packer/packer.sh`
- [Sentinel](https://github.com/star3am/hashiqube/blob/master/sentinel/sentinel.sh): `sentinel/sentinel.sh`

### Platform integrations

- [Kubernetes and AWX](https://github.com/star3am/hashiqube/blob/master/k3s/k3s.sh): `k3s/k3s.sh`
- [Ansible](https://github.com/star3am/hashiqube/blob/master/ansible/playbook.yml): `ansible/playbook.yml`
- [Databases](https://github.com/star3am/hashiqube/tree/master/database): `database`
- [Monitoring](https://github.com/star3am/hashiqube/blob/master/prometheus-grafana/prometheus-grafana.sh): `prometheus-grafana/prometheus-grafana.sh`
- [Airflow and dbt](https://github.com/star3am/hashiqube/blob/master/apache-airflow/dags/run-dbt.py): `apache-airflow/dags/run-dbt.py`

### Documentation

- [Docs site](https://github.com/star3am/hashiqube/tree/master/docsify): `docsify`
- [Documentation search](https://github.com/star3am/hashiqube/blob/master/docsify/lib/search.js): `docsify/lib/search.js`
- [Documentation tabs](https://github.com/star3am/hashiqube/blob/master/docsify/lib/docsify-tabs.js): `docsify/lib/docsify-tabs.js`
- [Bash highlighting](https://github.com/star3am/hashiqube/blob/master/docsify/lib/prism-bash.js): `docsify/lib/prism-bash.js`

### Other components

- **Engineer or learner**

## Connections

- Engineer or learner → Codespaces: launches (evidence: `README.md`)
- Engineer or learner → Vagrant launch: launches (evidence: `README.md`)
- Engineer or learner → Docker Compose: launches (evidence: `README.md`)
- Engineer or learner → Cloud VM launch: launches (evidence: `README.md`)
- Codespaces → HashiQube lab: initializes (evidence: `README.md`)
- Vagrant launch → HashiQube lab: provisions (evidence: `README.md`)
- Docker Compose → HashiQube lab: initializes (evidence: `README.md`)
- HashiQube lab → Docker daemon: installs (evidence: `README.md`)
- Engineer or learner → Vault: starts (evidence: `README.md`)
- Engineer or learner → Nomad: starts (evidence: `README.md`)
- Engineer or learner → Consul: starts (evidence: `README.md`)
- Engineer or learner → Boundary: starts (evidence: `README.md`)
- HashiQube lab → Vault: hosts
- HashiQube lab → Terraform: hosts
- HashiQube lab → Nomad: hosts
- HashiQube lab → Consul: hosts
- HashiQube lab → Waypoint: hosts
- HashiQube lab → Boundary: hosts
- HashiQube lab → Packer: hosts
- HashiQube lab → Sentinel: hosts
- HashiQube lab → Kubernetes and AWX: hosts
- HashiQube lab → Ansible: hosts
- HashiQube lab → Databases: hosts
- HashiQube lab → Monitoring: hosts
- HashiQube lab → Airflow and dbt: hosts
- Engineer or learner → Docs site: reads (evidence: `README.md`)
- Docs site → Documentation search: provides
- Docs site → Documentation tabs: provides
- Docs site → Bash highlighting: provides
