Sign inSign up

webhippie/terrastate

By webhippie

Updated about 5 hours ago

Terraform HTTP remote state storage

Image
0

10K+

webhippie/terrastate repository overview

Terrastate

General Workflow Join the Matrix chat at https://matrix.to/#/#webhippie:matrix.org Codacy Badge Go Reference Go Report Card GitHub Repo Hosted By: Cloudsmith

Terrastate acts as an HTTP backend for Terraform which can store the state content remotely for you to keep it outside of the repositories containing your .tf files. This is a great alternative if you are not hosting your stuff on AWS.

Install

You can download prebuilt binaries from the GitHub releases or from our download site. Besides that we also prepared repositories for DEB and RPM packages which can be found at Cloudsmith. If you prefer to use containers you could use our images published on GHCR, Docker Hub or Quay. If you need further guidance how to install this take a look at our documentation.

Package repository hosting is graciously provided by Cloudsmith. Cloudsmith is the only fully hosted, cloud-native, universal package management solution, that enables your organization to create, store and share packages in any format, to any place, with total confidence.

Prerequisites

We use mise to manage all required tools and their versions. Install it by following the official installation instructions, then run the following commands inside the repository to activate mise and install all tools defined in mise.toml:

mise trust
mise install

Build

Since all required commands ar part of our go-task taskfile the commands you got to execute are quite simple:

git clone https://github.com/webhippie/terrastate.git
cd terrastate

task build
./bin/terrastate -h

Development

If you are using the provided DevContainers you could directly start without installing mise on your system since it will launch a feature for it.

To start developing on this project you have to execute only a few commands in multiple terminal tabs or windows:

task watch

The development server should be running on http://localhost:8080. Generally it supports hot reloading which means the services are automatically restarted/reloaded on code changes.

Security

If you find a security issue please contact [email protected] first.

Contributing

Generally we are following conventional commits when we apply changes. That way we are able to generate proper changelogs for every release. Please use always pull requests to integrate new functionalities or to fix issues.

For the release process we are following semantic versioning which clearly indicates if a new version just resolves bugs, includes new features or even includes breaking changes.

After installing the tools via mise install as described above set up the pre-commit hooks so they run automatically on every commit:

prek install --hook-type pre-commit --hook-type commit-msg

prek is managed by mise and will be available after mise install.

If you have changed something on the source you should simply commit following the mentioned conventions:

git checkout -b feat/new-feature
git add --all
git commit -m 'feat: added awesome new feature'
git push --set-upstream origin feat/new-feature

After pushing your changes into the Git repository you should create a pull request on GitHub. If the pull request have been merged and everything built fine it will also create automatically a new release at least once a week.

Authors

License

Apache-2.0

Copyright (c) 2018 Thomas Boerger <[email protected]>

Tag summary

Content type

Image

Digest

sha256:9df75df6c

Size

9.5 MB

Last updated

about 5 hours ago

docker pull webhippie/terrastate