Skip to content

Setup

Requirements

Database server

Make sure you have access to a MongoDB database (with a connection string containing a user that have admin permissions).

The MongoDB server can run:

  • On a machine from binaries
  • On multiple machines binaries
  • In a container
  • In a Kubernetes cluster
  • In MongoDB Atlas (free tier available!)

Warning

Double check any network/security restrictions such as MongoDB IP access list as the application needs to access the MongoDB server

Database indexes

Add indexes for optimal performances:

MONGODB_URI=mongodb://<myserver>:27017/<mydb>
curl -O https://raw.githubusercontent.com/devpro/terraform-backend-mongodb/refs/heads/main/scripts/tfbeadm
tfbeadm create-indexes

Warning

mongosh or Docker packages must be available on the machine running the commands

Installation

Kubernetes

Use the official Helm chart:

# adds the chart repository
helm repo add devpro https://devpro.github.io/helm-charts
helm repo update

# installs the chart
helm upgrade --install tfbackend devpro/terraform-backend-mongodb [-f values.yaml] --create-namespace --namespace tfbackend

Values file examples:

mongodb:
  enabled: true
  auth:
    rootPassword: admin
webapi:
  db:
    connectionString: mongodb://root:admin@tfbackend-mongodb:27017/terraform_backend_beta?authSource=admin
    databaseName: terraform_backend_beta
webapi:
  host: tfbackend.mydomain
ingress:
  enabled: true
  className: traefik
  annotations:
    cert-manager.io/cluster-issuer: letsencrypt-prod
dotnet:
  environment: Development
  enableSwagger: true
  enableOpenTelemetry: false