https://github.com/cloudvic-org/terraform-state-visualizer
A free, open source Terraform state visualization tool that converts Terraform state files that have been exported as JSON into HTML pages for hosting via your CI provider. Available as a standalone Go binary, Docker image, or GitHub Action.
https://github.com/cloudvic-org/terraform-state-visualizer
ci github-action terraform visualization-tool
Last synced: 25 days ago
JSON representation
A free, open source Terraform state visualization tool that converts Terraform state files that have been exported as JSON into HTML pages for hosting via your CI provider. Available as a standalone Go binary, Docker image, or GitHub Action.
- Host: GitHub
- URL: https://github.com/cloudvic-org/terraform-state-visualizer
- Owner: cloudvic-org
- Created: 2025-10-27T02:29:55.000Z (5 months ago)
- Default Branch: main
- Last Pushed: 2025-11-03T06:43:06.000Z (5 months ago)
- Last Synced: 2025-12-19T05:47:27.046Z (4 months ago)
- Topics: ci, github-action, terraform, visualization-tool
- Language: HTML
- Homepage: https://cloudvic.com
- Size: 24.4 KB
- Stars: 0
- Watchers: 0
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
# Terraform State Visualizer
A free, open source Terraform state visualization tool that converts Terraform state JSON files into succinct, interactive HTML pages. Perfect for sharing state information in CI/CD pipelines, pull requests, and team collaboration.
## Quick Start
### Using the Binary
1. **Download the latest release** from the [Releases page](https://github.com/cloudvic-org/terraform-state-visualizer/releases)
2. **Generate a Terraform state JSON file**:
```bash
terraform show -json > state.json
```
3. **Generate the visualization**:
```bash
./terraform-state-visualizer -i state.json -o visualization.html
```
4. **Open the HTML file** in your browser to view the interactive visualization
### Using Docker
```bash
# Generate state JSON (as above)
terraform show -json > state.json
# Run with Docker
docker run --rm -v $(pwd):/workspace \
ghcr.io/cloudvic-org/terraform-state-visualizer:latest \
-i /workspace/state.json -o /workspace/visualization.html
```
### Using GitHub Action
```yaml
name: Terraform State Visualization
on:
pull_request:
paths:
- 'terraform/**'
jobs:
state:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- name: Setup Terraform
uses: hashicorp/setup-terraform@v3
with:
terraform_version: 1.6.0
- name: Terraform State Pull
run: |
cd terraform
terraform init
terraform state pull > state.json
- name: Generate Visualization
uses: cloudvic-org/terraform-state-visualizer@v1
with:
state-file: terraform/state.json
output-file: terraform-state-visualization.html
- name: Upload Visualization
uses: actions/upload-artifact@v4
with:
name: terraform-state-visualization
path: terraform-state-visualization.html
```
## Installation
### From Source
```bash
git clone https://github.com/cloudvic-org/terraform-state-visualizer.git
cd terraform-state-visualizer
go build -o terraform-state-visualizer .
```
### Using Go Install
```bash
go install github.com/cloudvic-org/terraform-state-visualizer@latest
```
## Usage
### Command Line Options
```bash
terraform-state-visualizer [OPTIONS]
Options:
-i, -input string Input Terraform state JSON file (required)
-o, -output string Output HTML file path (default: state-visualization.html)
--output-html-path string
Output HTML file path (alternative to -o)
-h, -help Show help information
-v, -version Show version information
```
### Examples
```bash
# Basic usage
terraform-state-visualizer -i state.json
# Custom output file
terraform-state-visualizer -i state.json -o my-state.html
# Using long-form flags
terraform-state-visualizer --input state.json --output-html-path visualization.html
```
## Integration Examples
### GitHub Actions
```yaml
- name: Generate State Visualization
uses: cloudvic-org/terraform-state-visualizer@v1
with:
state-file: terraform/state.json
output-file: state-visualization.html
upload-artifact: true
```
### GitLab CI
```yaml
generate_visualization:
image: ghcr.io/cloudvic-org/terraform-state-visualizer:latest
script:
- terraform-state-visualizer -i state.json -o visualization.html
artifacts:
paths:
- visualization.html
```
### Jenkins
```groovy
pipeline {
agent any
stages {
stage('Visualize State') {
steps {
sh 'terraform-state-visualizer -i state.json -o visualization.html'
archiveArtifacts artifacts: 'visualization.html'
}
}
}
}
```
## License
This project is licensed under the MIT License - see the [LICENSE](LICENSE) file for details.
## Related Projects
- [CloudVIC](https://cloudvic.com) - Advanced Terraform plan and state visualizations, with drift detection, git history integration, and more