Skip to content

Latest commit

 

History

History

cloud-resources

Cloud resources

We use Terraform to manage our cloud infrastructure (things such as servers, S3 buckets, databases, managed kubernetes, etc.), following the concept of Infrastructure as Code.

Moreover, we use Terraform Cloud's free tier as the Terraform backend. Terraform uses a backend to store and manage its state. One could also use a local file or an S3 bucket to store the state, but Terraform Cloud has the additional advantage - besides having a free tier - of also including a CI/CD integration for GitHub, meaning that changes will be applied automatically as soon as we merge a PR affecting files in the /cloud-resources directory.

Providers

Most cloud providers have their own terraform plugins, these are usually quite well-documented. Here is a list of providers used by us:

Provider (country) Our usage Docs
Hetzner (:de: Germany) Kubernetes cluster and workers, via kube-hetzner ❤️ docs
DigitalOcean (:us: U.S.) Domain(s) docs
MongoDB Atlas (:us: U.S.) Document database(s) docs
Better Uptime (:us: U.S.) Uptime monitoring (dashboard) docs

Furthermore, we make use of the GitHub and Flux providers to set up GitHub API tokens and deploy flux to our kubernetes cluster, respectively.

Other cloud providers not (yet) managed via terraform

Some parts of our setup are not managed via terraform - sometimes because we just didn't have time/ambition to do so just yet, otherwise because some companies don't provide any terraform providers to manage their services.

Expenses and donations

Our expenses and donation incomes are documented here.