.
HashiQube

The Ultimate Hands-on DevOps Lab in a Docker Container
🚀 About
HashiQube is your complete DevOps playground, designed to help engineers, developers, and anyone interested in learning or demonstrating HashiCorp products. It's a self-contained environment that runs all HashiCorp products and integrates with popular open-source DevOps/DevSecOps applications.
Key Features
Complete HashiCorp Stack: Run Vault, Terraform, Nomad, Consul, Waypoint, Boundary, Vagrant, Packer, and Sentinel in one place.
Additional DevOps Tools: Includes Minikube, Ansible AWX Tower, Traefik, and more to demonstrate integration with HashiCorp products.
Offline Capability: Once set up, an internet connection is no longer needed, making it perfect for demos, sales pitches, and learning environments.
Nested Containerization: HashiQube has a Docker daemon inside, allowing you to run containers using Kubernetes (Minikube), Nomad, or Docker run.
📋 Provision
bash docker/docker.sh
bash vault/vault.sh
bash consul/consul.sh
bash nomad/nomad.sh
bash boundary/boundary.sh
vagrant up --provision
docker compose exec hashiqube /bin/bash
bash hashiqube/basetools.sh
bash docker/docker.sh
bash docsify/docsify.sh
bash vault/vault.sh
bash consul/consul.sh
bash nomad/nomad.sh
bash boundary/boundary.sh
🎥 Introduction Video
Watch a short introduction to HashiQube. Make sure you have HashiQube running so you can follow along on your own machine!
🔗 Resources
Find more information about HashiQube on these channels:
- HashiCorp Blog Post
- HashiQube Website
- HashiQube GitHub
- HashiQube YouTube
- HashiQube Medium Articles
- HashiQube Terraform Registry Module
- Terraform Development Environment Article
🛠️ Basetools Provider
The Basetools provider installs essential tools that HashiQube provisioners need. This is one of the first provisioners that must be run. It installs:
swapspace rkhunter jq curl unzip software-properties-common bzip2 git make
python3.9 python3-pip python3-dev python3-venv python3-virtualenv golang-go
apt-utils ntp update-motd toilet figlet nano iputils-ping dnsutils iptables telnet
Basetools Provisioner Script
The script below automates the setup of basic tools in your HashiQube environment:
🌐 HashiQube.com Deployment
WORK IN PROGRESS
As you might expect, HashiQube.com is deployed using HashiCorp tools - specifically, Waypoint. Here's how it works:
1. Set Up Local Environment
# Bring up HashiQube locally with the necessary components
vagrant up --provision-with basetools,docker,terraform,nomad,waypoint
# SSH into HashiQube
vagrant ssh
2. Configure AWS Credentials
Create or edit ~/.aws/config
:
[default]
region =
aws_access_key_id =
aws_secret_access_key =
output = json
3. Navigate to Project Directory
cd /vagrant
4. Initialize Waypoint
waypoint init
Output:
✓ Configuration file appears valid
✓ Connection to Waypoint server was successful
✓ Project "hashiqube" and all apps are registered with the server.
✓ Project "hashiqube" pipelines are registered with the server.
Project initialized!
You may now call 'waypoint up' to deploy your project or
commands such as 'waypoint build' to perform steps individually.
5. Deploy with Waypoint
waypoint up
This command builds and deploys the HashiQube website. The process includes:
- Building a Docker image
- Pushing to ECR
- Deploying to ECS
- Setting up load balancers and target groups
6. Cleanup Resources (When Needed)
waypoint destroy
👤 Connect
Please connect with the creator: