Some outages scream.
Some fail silently.
This one did both and taught me a lesson I won’t forget.
We were migrating Redis. Nothing fancy.
New instance, better specs, same data.
I updated my local .env.
Updated staging.
Tests passed. Everything looked fine.
Then I deleted the old Redis instance.
Production was still pointing to it.
The worst part?
The app didn’t completely go down.
It was slow. Random errors. Inconsistent behavior.
Users started complaining, but nothing was obviously broken.
When I finally checked the production config, I saw it.
Old Redis URL.
Deleted server.
Live production.
What followed was three hours of pure operational pain:
- manually editing
.envfiles - restarting services one by one
- praying I don’t make it worse
We fixed it. Production came back.
But something else broke—my confidence in how we handled environment variables.
One question kept looping in my head:
Why do we version control code so well, but treat environment variables like tribal knowledge?
That’s where ENVECL started.
Not as a startup idea as frustration.
The Bulb Moment
The real problem wasn’t Redis.
It was config chaos.
Environment variables were everywhere:
- some in
.envfiles - some in Slack
- some in Google Docs
- some only in one person’s head
There was no single source of truth.
No history. No visibility.
Ask, “What’s the current production Redis URL?”
You’d get three confident answers all wrong.
With code, Git solves this.
With configs, we were guessing.
ENVECL Is Not a Secrets Manager
I didn’t want to replace secrets management.
I wanted control.
That’s why ENVECL sits on top of HashiCorp Vault.
Vault already does the hard stuff:
- encryption
- secure storage
- access control
- audit logs
ENVECL’s job is to make Vault usable for real teams without turning everyone into a Vault expert.
Think of it as the missing layer between:
- humans
- applications
- and Vault
How ENVECL Works (Simple on Purpose)
Vault Is the Source of Truth
All environment variables live in Vault KV v2:
secret/
└── project/
└── service/
└── environment
Clear structure.
Every change creates a new version automatically.
That alone would’ve saved my Redis incident.
Thin, Boring Backend (By Design)
The FastAPI backend:
- authenticates users
- enforces RBAC
- talks to Vault
It never stores secrets.
If Vault is down, ENVECL is down and that’s okay.
Vault should be the source of truth.
RBAC That Actually Makes Sense
- admins manage everything
- developers see only what they need
- production access is restricted and auditable
No more “Who changed this?” calls.
Versioning the Thing That Hurt
Every env change:
- creates a version
- keeps metadata
This feature exists only because of that outage.
Why I Open Sourced It
This problem isn’t unique to me.
If you’re:
- too big for
.envchaos - too small for enterprise security teams
You’re probably living in the same uncomfortable middle ground.
ENVECL is my attempt to fix that using tools we already trust, wrapped in a workflow that actually works.
👉 Repo: https://github.com/Harivelu0/envecl.git




Top comments (0)