Skip to content

macalbert/envilder

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

πŸ—οΈ Envilder ☁️

Envilder

Automate .env and secret management with Envilder
Streamline your environment setup with AWS Parameter Store

npm version npm downloads CI Tests Coverage Report Known Vulnerabilities MIT License

Why centralize environment variables?

Envilder is a CLI tool for .env automation, AWS SSM secrets management, and secure environment variable sync. Generating and maintaining consistent .env files is a real pain point for any development team. From outdated secrets to insecure practices, the risks are tangible. Envilder eliminates these pitfalls by centralizing and automating secret management across real-world environments (dev, test, production) in a simple, secure, and efficient way. Use Envilder to automate .env files, sync secrets with AWS Parameter Store, and streamline onboarding and CI/CD workflows.


❗ What Envilder solves

  • Desync between environments (dev, prod)
  • Secrets not properly propagated across team members
  • CI/CD pipeline failures due to outdated or missing .env files
  • Slow and manual onboarding processes
  • Security risks from sharing secrets via Slack, email, or other channels
  • Insecure .env practices and manual secret sharing

βœ… How Envilder makes life easier

  • πŸ›‘οΈ Centralizes secrets in AWS Parameter Store
  • βš™οΈ Generates .env files automatically for every environment
  • πŸ”„ Applies changes idempotently and instantly
  • πŸ” Improves security: no need to share secrets manually; everything is managed via AWS SSM
  • πŸ‘₯ Simplifies onboarding and internal rotations
  • πŸš€ Enables cloud-native, infrastructure-as-code secret management
  • πŸ€– Perfect for DevOps, CI/CD, and team sync

πŸ“š Table of Contents


βš™οΈ Features

  • πŸ”’ Strict access control β€” IAM policies define access to secrets across stages (dev, staging, prod)
  • πŸ“Š Auditable β€” All reads/writes are logged in AWS CloudTrail
  • 🧩 Single source of truth β€” No more Notion, emails or copy/paste of envs
  • πŸ” Idempotent sync β€” Only what’s in your map gets updated. Nothing else is touched
  • 🧱 Zero infrastructure β€” Fully based on native AWS SSM. No Lambdas, no servers, no fuss

🧱 Feature Status

  • πŸ€– GitHub Action β€” Integrate directly in CI/CD workflows
  • πŸ“€ Push & Pull β€” Bidirectional sync between local .env and AWS SSM
  • 🎯 AWS Profile support β€” Use --profile flag for multi-account setups

πŸ’Ύ Installation

πŸ›  Requirements:

  • Node.js v20+ (cloud-native compatible)
  • AWS CLI installed and configured
  • IAM user/role with ssm:GetParameter, ssm:PutParameter
pnpm add -g envilder

πŸ’‘ New to AWS SSM? AWS Systems Manager Parameter Store provides secure storage for configuration data and secrets:

πŸ€– GitHub Action

Use Envilder directly in your CI/CD workflows with our official GitHub Action:

- name: Configure AWS Credentials
  uses: aws-actions/configure-aws-credentials@v5
  with:
    role-to-assume: ${{ secrets.AWS_ROLE_TO_ASSUME }}
    aws-region: us-east-1

- name: Pull secrets from AWS SSM
  uses: macalbert/envilder/github-action@v0.7.2
  with:
    map-file: param-map.json
    env-file: .env

πŸ“– View full GitHub Action documentation


πŸš€ Quick Start

πŸŽ₯ Video Demonstration

Watch how easy it is to automate your .env management in less than 1 minute:

Watch the video

🏁 Get Started (3 steps)

After configuring the AWS CLI and ensuring you have the necessary permissions to create SSM parameters, you can begin pushing your first environment variables.

  1. Create a mapping file:

    {
      "DB_PASSWORD": "/my-app/db/password"
    }
  2. Push a secret to AWS SSM:

    envilder --push --key=DB_PASSWORD --value=12345 --ssm-path=/my-app/db/password

Once your secrets are stored in AWS, you can easily generate or synchronize your local .env files:

  1. Generate your .env file from AWS SSM:

    envilder --map=param-map.json --envfile=.env

Your secrets are now managed and versioned from AWS SSM. Add .env to your .gitignore for security. Envilder is designed for automation, onboarding, and secure cloud-native workflows.

πŸ“š Quick Links


πŸ› οΈ How it works

graph LR
    A["Mapping File<br/>(param-map.json)"] --> B[Envilder]:::core
    C["Environment File<br/> '.env' or --key"] --> B
    D["AWS Credentials"]:::aws --> B
    E["AWS SSM"]:::aws --> B
    B --> F["Pull/Push Secrets πŸ’Ύ"]

    classDef aws fill:#ffcc66,color:#000000,stroke:#333,stroke-width:1.5px;
    classDef core fill:#1f3b57,color:#fff,stroke:#ccc,stroke-width:2px;
Loading
  1. Create a new .env file like 'ENV_VAR=12345'
  2. Define mappings in a JSON file : {"ENV_VAR": "ssm/path"}
  3. Run Envilder: --push to upload, or --map + --envfile to generate
  4. Envilder syncs secrets securely with AWS SSM Parameter Store using your AWS credentials
  5. Result: your secrets are always up-to-date, secure, and ready for any environment

Frequently Asked Questions (FAQ)

Q: What is Envilder?
A: Envilder is a CLI tool for automating .env and secret management using AWS SSM Parameter Store.

Q: How does Envilder improve security?
A: Secrets are never stored in code or shared via chat/email. All secrets are managed and synced securely via AWS SSM.

Q: Can I use Envilder in CI/CD pipelines?
A: Yes! Envilder is designed for automation and works seamlessly in CI/CD workflows.

Q: Does Envilder support multiple AWS profiles?
A: Yes, you can use the --profile flag to select different AWS credentials.

Q: What environments does Envilder support?
A: Any environment supported by AWS SSMβ€”dev, test, staging, production, etc.

Q: Is Envilder open source?
A: Yes, licensed under MIT.


🏁 Roadmap

We're continuously improving Envilder based on community feedback. Upcoming features include:

  • πŸ”Œ Multi-backend support (Azure Key Vault, HashiCorp Vault, etc.)
  • πŸ” Check/sync mode for drift detection
  • 🧠 Auto-discovery for bulk parameter fetching

πŸ‘‰ View full roadmap with priorities


🀝 Contributing

All help is welcome β€” PRs, issues, ideas!


πŸ“œ License

MIT Β© MarΓ§al Albert
See LICENSE | CHANGELOG | Security Policy