privileged automation agent (mirror of
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

2.2 KiB


Terraform is an infrastructure-as-code automation tool that is designed to make it easier to deploy and maintain cloud resources.

Rootsystem uses Terraform to manage cloud resources as a part of a deployment.

Why is this needed? strives to make it easy for any internet user to host thier own server(s). This is difficult because hosting a server does not "just work" on most networks, especially home networks. solves this using something that the software industry calls "Hybrid Cloud Architechture", meaning that the system is built from both servers that you own & operate, and cloud resources that you pay someone else to operate.

Hybrid Cloud Architechture works well with self-hosting because we get to chose where we draw the line between what we own and what the cloud provider owns.

Owned by User Owned by Cloud Service Provider
Server Computers Public IP Address
Transport Layer Security (TLS) Keys Domain Name & DNS Records
Decrypted TCP Packets Encrypted TLS Packets

In other words, we get the best of both worlds, and we can be flexible on how much work we want to take on ourselves.

We use terraform to manage the cloud resources to make that happen.

How does rootsystem build a terraform project out of this?

Rootsystem analyzes the modules and records the names of the inputs and outputs. Modules with matching input/output names will automatically be wired together. This allows, for example, the user to chose which cloud provider(s) they want to use.

Input names that end in list will match up with any outputs that have a matching prefix. For example:

The two outputs dns_entry_root and dns_entry_www would be wired into entries in a list for a single input called dns_entry_list

When the user creates installation media, they will be prompted to select which modules they want to use via an installation wizard.

Third party Terraform providers used by these modules