Terraform Support For Your Crowdbotics Apps

Change the backend of your app really fast. Terraform files are now automatically included with all new Crowdbotics web apps.

Today we’re excited to announce Terraform support has been added to the Crowdbotics platform.

By default, Crowdbotics web apps are hosted with Herkou, but you can now change the backend of your app really fast — to AWS, Google Cloud, Azure, DigitalOcean, Alicloud, and beyond — by changing a single Terraform file included in your application.

Terraform is a tool that makes managing infrastructure easier, such as the server your app runs on and its database. Using Terraform’s configuration files you can change server settings, add additional services, or run your app on a different platform.

Terraform also makes development easier. Launching an environment that’s identical to production is as easy as running a few terraform commands:

$ terraform init
Initializing the backend...
Initializing provider plugins...
Terraform has been successfully initialized!
You may now begin working with Terraform. Try running "terraform plan" to see any changes that are required for your infrastructure. All Terraform commands should now work.
If you ever set or change modules or backend configuration for Terraform, rerun this command to reinitialize your working directory. If you forget, other commands will detect it and remind you to do so if necessary.
$ terraform apply
heroku_pipeline.pipeline: Creating...
  name: "" => "dancrowdboticscom-dan-55"
heroku_app.production: Creating...
  all_config_vars.%: "" => "<computed>"
  config_vars.#:     "" => "<computed>"
  git_url:           "" => "<computed>"
  heroku_hostname:   "" => "<computed>"
  internal_routing:  "" => "<computed>"
  name:              "" => "dancrowdboticscom-dan-55-prod"
  region:            "" => "us"
  stack:             "" => "container"
  uuid:              "" => "<computed>"
  web_url:           "" => "<computed>"
heroku_pipeline.pipeline: Creation complete after 1s (ID: 6c974e18-ef79-4198-9e07-7d94b466312e)
heroku_app.production: Creation complete after 6s (ID: dancrowdboticscom-dan-55-prod)
heroku_addon.sendgrid_production: Creating...
  app:           "" => "dancrowdboticscom-dan-55-prod"
  config_vars.#: "" => "<computed>"
  name:          "" => "<computed>"
  plan:          "" => "sendgrid:starter"
  provider_id:   "" => "<computed>"
heroku_addon.database_production: Creating...
  app:           "" => "dancrowdboticscom-dan-55-prod"
  config_vars.#: "" => "<computed>"
  name:          "" => "<computed>"
  plan:          "" => "heroku-postgresql:hobby-dev"
  provider_id:   "" => "<computed>"
heroku_pipeline_coupling.production: Creating...
  app:      "" => "dancrowdboticscom-dan-55-prod"
  app_id:   "" => "<computed>"
  pipeline: "" => "6c974e18-ef79-4198-9e07-7d94b466312e"
  stage:    "" => "production"
heroku_domain.cb_domain: Creating...
  app:      "" => "dancrowdboticscom-dan-55-prod"
  cname:    "" => "<computed>"
  hostname: "" => "dancrowdboticscom-dan-55.botics.co"
heroku_pipeline_coupling.production: Creation complete after 2s (ID: f30f52ac-6d63-4000-89ed-5b6c2fda0a25)
heroku_addon.sendgrid_production: Creation complete after 5s (ID: 565bb794-df40-482d-b35b-09af2c193f7d)
heroku_domain.cb_domain: Creation complete after 6s (ID: e4a76c5a-2645-4c32-8b9f-58934ceb360c)
cloudflare_record.cb_domain_record: Creating...
  created_on:  "" => "<computed>"
  domain:      "" => "botics.co"
  hostname:    "" => "<computed>"
  metadata.%:  "" => "<computed>"
  modified_on: "" => "<computed>"
  name:        "" => "dancrowdboticscom-dan-55"
  proxiable:   "" => "<computed>"
  proxied:     "" => "false"
  ttl:         "" => "1"
  type:        "" => "CNAME"
  value:       "" => "elementary-bayou-wqna4k8105fy6lqjvm5p99if.herokudns.com"
  zone_id:     "" => "<computed>"
heroku_addon.database_production: Creation complete after 6s (ID: 2ddd4e5c-6311-4464-923b-81d2266d2226)
cloudflare_record.cb_domain_record: Creation complete after 1s (ID: 56db1fe59247e955fb609828693ad438)
Apply complete! Resources: 7 added, 0 changed, 0 destroyed.
Outputs:
app_id = 24b4fc99-7008-49d0-9b91-153aaf39a0db
app_name = dancrowdboticscom-dan-55-prod
web_url = https://dancrowdboticscom-dan-55-prod.herokuapp.com/

Terraform files are now automatically included with all new Crowdbotics web apps.

Originally published:

April 12, 2019