First, install Go and npm.
You can build the terrafire executable:
make -C web setup # install npm packages
make build
make build
command builds javascript assets, embeds them into Go project (using go.rice), and compiles Go sources.
See Makefile for details.
Terrafire uses gRPC for internal communication.
Proto files are placed in api
directory.
Generated codes by protocol buffer are included in version control system. So, if you update proto files, run the following command and commit auto generated codes.
make proto
Start development servers:
go run ./cmd/terrafire server # start server
go run ./cmd/terrafire controller # start controller
cd web && npm start # start npm proxy server
These servers are useful for local development and debugging.
(It is recommended to configure environment variables using direnv.)
We use SemVer for versioning.
When you release a new version of Terrafire, just push a version tag to GitHub.
When a version tag is pushed:
- GitHub Action goreleaser starts, and publish a GitHub release.
- Docker Hub starts a build, and publish a docker image to Docker Hub.