
Using envconsul with Windows
Managing environment variables dynamically is a critical requirement in many modern applications. Envconsul, a tool from HashiCorp, provides a seamless way to populate environment variables from Consul and Vault. While it is widely used in Unix-based systems, getting it to work effectively on Windows can be a challenge. This article explores how to install, configure, and use envconsul on Windows, ensuring secure and efficient management of environment variables.
Why Use Envconsul?
Before diving into the setup process, it is essential to understand why envconsul is valuable:
- Dynamic Configuration: Loads environment variables on application start-up without hardcoding them.
- Security: Can fetch secrets securely from HashiCorp Vault.
- Integration with Consul: Retrieves values directly from Consul key-value storage.
- Automation: Reduces manual intervention by updating environment variables automatically.
Installing Envconsul on Windows
Unlike Unix-based systems where package managers like brew or apt make installations straightforward, Windows requires manual steps to set up envconsul.
- Download the latest envconsul binary for Windows from HashiCorp’s official website or directly from their GitHub releases.
- Extract the downloaded
.zip
file and place the binary in a directory such asC:\envconsul
. - Add the directory containing the binary to the system’s PATH variable to allow global execution.
To verify the installation, open a command prompt and run:
envconsul --version
If the installation was successful, it should return the installed version of envconsul.

Configuring Envconsul
Once installed, envconsul must be configured to connect to Consul or Vault. A common approach is to create a configuration file.
Basic Configuration File
Create a file named config.hcl
in the installation directory:
consul = {
address = "http://127.0.0.1:8500"
}
vault = {
address = "http://127.0.0.1:8200"
}
env = [
"DATABASE_URL",
"API_KEY"
]
Ensure that Consul and/or Vault are running and accessible. The sample configuration fetches the DATABASE_URL
and API_KEY
environment variables from configured services.
Running Envconsul with a Windows Application
Once the configuration is in place, run envconsul within a Windows environment using:
envconsul -config="C:\envconsul\config.hcl" -- myapplication.exe
This command launches myapplication.exe
with dynamically injected environment variables. Replace myapplication.exe with your actual executable.
Handling Authentication
If you are fetching variables from HashiCorp Vault, authentication is required. Typical authentication methods include tokens or AppRoles.
Using Tokens
If using a Vault token, set an environment variable before running envconsul:
set VAULT_TOKEN=my-secret-token
Using AppRole Authentication
For higher security, AppRole authentication can be configured through:
vault = {
address = "http://127.0.0.1:8200"
auth = "approle"
role_id_file_path = "C:\envconsul\role_id"
secret_id_file_path = "C:\envconsul\secret_id"
}

Running Envconsul as a Windows Service
For applications that need to run continuously, register envconsul as a Windows service using nssm (Non-Sucking Service Manager):
- Download nssm from its official site and extract it.
- Run the following command to create the service:
nssm install EnvconsulService "C:\envconsul\envconsul.exe" -config="C:\envconsul\config.hcl" -- myapplication.exe
Start the service using:
nssm start EnvconsulService
This approach ensures that envconsul runs persistently without requiring manual execution.
Troubleshooting Common Issues
Here are common issues users face and ways to resolve them:
- Envconsul command not found: Ensure the installation directory is correctly added to the PATH variable.
- Connection errors: Verify that Consul and Vault services are running and accessible.
- Permission denied: Run the command prompt as an administrator.
Conclusion
Using Envconsul on Windows provides a robust way to manage environment variables dynamically and securely. By integrating with Consul and Vault, applications can fetch configurations on startup without risks related to hardcoding sensitive information. Whether running it manually or as a Windows service, envconsul enhances automation and security in configuration management.
By following the installation and configuration steps outlined in this guide, Windows users can successfully leverage envconsul to streamline their application deployment processes.