trainlineeurope/terraboard
Fork of camptocamp terraboard image
45
🌍 📋 A web dashboard to inspect Terraform States
Terraboard is a web dashboard to visualize and query Terraform states. It currently features:
It currently only supports S3 as a remote state backend, and dynamoDB for retrieving lock informations.
The overview presents all the state files in the S3 bucket, by most recent modification date.
The search view allows to find resources by various criteria.
The state view presents details of a Terraform state at a given version.
From the state view, you can compare the current state version with another version.
Terraboard currently supports getting the Terraform states from AWS S3. It requires:
.tfstate
suffixs3:GetObject
s3:ListBucket
s3:ListBucketVersions
s3:GetObjectVersion
dynamodb:Scan
access to that
table.$ docker run -d -p 8080:8080 \
-e AWS_REGION=<AWS_DEFAULT_REGION> \
-e AWS_ACCESS_KEY_ID=<AWS_ACCESS_KEY_ID> \
-e AWS_SECRET_ACCESS_KEY=<AWS_SECRET_ACCESS_KEY> \
-e AWS_BUCKET=<terraform-bucket> \
-e AWS_DYNAMODB_TABLE=<terraform-locks-table> \
-e DB_PASSWORD="mygreatpasswd" \
--link postgres:db \
camptocamp/terraboard:latest
and point your browser to http://localhost:8080
Camptocamp's Rancher Catalog contains a Terraboard template to automate its installation in Cattle.
Terraboard does not implement authentication. Instead, it is recommended to use an authentication proxy such as oauth2_proxy.
If you need to set a route path for Terraboard, you can set a base URL by
passing it as the BASE_URL
environment variable.
When using an authentication proxy, Terraboard will retrieve the logged in
user and email from the headers passed by the proxy.
You can also pass a TERRABOARD_LOGOUT_URL
parameter to allow users to
sign out of the proxy.
$ go get github.com/camptocamp/terraboard
Terraboard is made of two components:
A server process
The server is written in go and runs a web server which serves:
The server also has a routine which regularly (every 1 minute) feeds the PostgreSQL database from the S3 bucket.
A web UI
The UI is an AngularJS application served from index.html
. All the UI code
can be found in the static/ directory.
$ docker-compose build && docker-compose up -d
# Point your browser to http://localhost
See CONTRIBUTING.md
The Terraboard logo is based on an image by Daniel R. Strebe, CC BY-SA 3.0, 15 August 2011
docker pull trainlineeurope/terraboard