TECHDEV · Công cụ open-source
env-doctor
Kiểm tra file .env trước khi nó cắn bạn. Drift, trùng lặp, placeholder, secret rủi ro, biến chết — trong một lệnh, zero dependencies.
Python · Chỉ stdlib · MIT · Không dependency, không mạng, không telemetry.
Nó kiểm tra gì
| Kiểm tra | Phát hiện |
|---|---|
| Drift | Key có trong .env.example nhưng thiếu trong .env, và ngược lại |
| Trùng lặp | Cùng key định nghĩa 2 lần |
| Placeholder | Giá trị rỗng, changeme, your-api-key, TODO, xxx, … |
| Secret rủi ro | Tiền tố quen thuộc (ghp_, sk-, AKIA, …) hoặc giá trị dài entropy cao |
| Biến không dùng | Key không được code tham chiếu (--scan .) |
| Dòng sai | Dòng không có =, tên key sai |
Exit code 0 = không lỗi, 1 = có lỗi. Warning không tự làm fail.
Cài đặt (3 bước)
git clone https://github.com/techdevfun/env-doctor.git
cd env-doctor
# Không cần cài dependency (chỉ Python 3.9+ stdlib).
# Tuỳ chọn: cài lệnh env-doctor
pip install -e .
# Chạy
python -m env_doctor check --env .env --example .env.exampleLệnh copy đúng từ README của env-doctor. Đừng dùng pip install env-doctor — README không nói có cài qua PyPI.
Chạy check từ thư mục DỰ ÁN của bạn với file của dự án, không phải từ thư mục env-doctor. Nếu bạn đã cài bằng pip install -e ., lệnh dùng được từ mọi thư mục.
Ví dụ
# Setup sạch — nên pass
python -m env_doctor check --env examples/basic/.env --example examples/basic/.env.example
# Drift + placeholder — nên fail với 2 lỗi
python -m env_doctor check --env examples/drift/.env --example examples/drift/.env.example || true
# Output JSON cho CI / script
python -m env_doctor check --env examples/drift/.env --example examples/drift/.env.example --format json
# Gắn cờ biến không được code dùng tới
python -m env_doctor check --env .env --example .env.example --scan .Output mẫu (từ ví dụ drift trong README)
[ERROR] duplicate-key: Duplicate key 'DATABASE_URL' (line 3)
[ERROR] missing-in-env: 'NEW_API_URL' is in .env.example but missing in .env
[WARN ] placeholder-value: 'STRIPE_KEY' still looks like a placeholder value
[WARN ] missing-in-example: 'OLD_FLAG' is in .env but missing in .env.example
Summary: 2 error(s), 2 warning(s), 3 key(s).CI
- name: Audit .env drift
run: python -m env_doctor check --env .env --example .env.example --format textRepo chạy check này trong CI trên Python 3.9, 3.11 và 3.12. Giấy phép: MIT.
Giới hạn
- env-doctor tìm secret trông rủi ro — không sửa secret đã bị lộ. Nếu secret thật đã bị commit, hãy xoay (rotate) nó.
- Phát hiện biến không dùng phụ thuộc vào code bạn quét với --scan.
- Warning là heuristic — hãy xem xét, đừng xóa biến mù quáng.
Công cụ liên quan
Các công cụ mã nguồn mở khác của TECHDEV: sessguard, runverdict, gheist-guard, vetgate, context-diet, ci-failure-detective, agent-seatbelt, devsecops-os, skill-audit, logtrim, testguard, breakcheck, keymap, memgraph, ggufit, leaseguard, factfence, jsonfold
Đóng góp ý kiến
Bình chọn cho công cụ này, đề xuất tính năng, hoặc thảo luận với các vận hành khác trên bảng cộng đồng.