Skip to main content
env zero works with any repository structure you currently use. This page covers the key structural decisions that affect how you configure templates.

Monorepo considerations

If multiple templates or environments share a single repository, configure each template in env zero to target the specific subdirectory for that stack. Use the file filter pattern in continuous deployment settings to trigger each environment only when its subdirectory changes, not on every commit to the repo. If your monorepo includes shared modules alongside root modules, configure the file filter to include both the root module path and the shared module path so that changes to either trigger a plan.

Module source patterns

Local modules

For modules sourced from the same repository (source = "../modules/vpc"), env zero can monitor both the root module directory and the module directory. Configure the file filter pattern to include both paths so that a change to the shared module triggers plans across all environments that use it.

Git-sourced modules

For modules sourced via HTTPS (source = "git::https://...") or SSH (source = "git::ssh://..."):
  • HTTPS: requires a token. Pass it via a custom flow that configures git credentials before init.
  • SSH: attach an SSH key to your template or environment.

Terraform Registry modules

Modules from the public Terraform Registry or a private registry work the same way in env zero as they do locally. Combine registry modules with drift detection to catch when a new module version makes your deployed infrastructure stale.

Self-hosted Git servers

If your infrastructure code is in a self-hosted VCS (GitHub Enterprise Server, Bitbucket Data Center, GitLab on-prem), env zero requires the self-hosted agent to reach your network. Each self-hosted VCS instance needs its own agent. See Using self-hosted VCS for connection setup.

Next steps