Tạo file .env và .env.example nhanh chóng
# Add environment variables
# Add environment variables
Công cụ tạo file .env và .env.example online miễn phí của Tấn Phát Digital dành cho developers. Tạo environment variables cho Next.js, Node.js, React, Vue, Laravel, Django, Rails, và mọi framework. 10+ presets có sẵn với các biến phổ biến: DATABASE_URL, API_KEY, JWT_SECRET, AWS credentials, SMTP config. Thêm biến thủ công với key-value pairs. Tự động format key name (UPPER_SNAKE_CASE). Generate .env với values thật và .env.example với placeholders. Copy hoặc download file trực tiếp. Hỗ trợ comments và multiline values. Không lưu trữ data - xử lý hoàn toàn trên browser.
Environment variables là cách chuẩn để quản lý configuration trong software development. File .env lưu trữ các biến môi trường như: Secrets: API keys, JWT secrets, encryption keys. Database: Connection strings, credentials. Third-party services: AWS, Stripe, SendGrid, Firebase. App config: PORT, NODE_ENV, DEBUG mode. Tại sao dùng .env? Security: Không hardcode secrets trong code. Flexibility: Dễ thay đổi config giữa environments (dev, staging, prod). Best practice: 12-Factor App methodology. Tại sao cần Generator? Tiết kiệm thời gian setup project mới. Không quên biến quan trọng với presets. Tạo .env.example chuẩn để share với team. Format đúng convention (UPPER_SNAKE_CASE).
.env: File chính chứa values thật. KHÔNG commit lên git (thêm vào .gitignore). Mỗi developer/environment có file riêng. .env.example: Template chỉ chứa key names và placeholder values. COMMIT lên git để team biết cần config gì. Không chứa secrets thật. .env.local: Override .env cho local development. Ưu tiên cao hơn .env. Không commit. .env.development / .env.production: Config riêng cho từng environment. Next.js, Create React App hỗ trợ tự động load theo NODE_ENV.
Naming convention: UPPER_SNAKE_CASE (DATABASE_URL, API_KEY). Prefix theo framework: NEXT_PUBLIC_* (Next.js public), REACT_APP_* (CRA). Không commit secrets: Thêm .env vào .gitignore ngay từ đầu. Validate required vars: Check biến required khi app start, fail fast nếu thiếu. Use .env.example: Luôn maintain .env.example để onboarding dễ dàng. Rotate secrets: Đổi API keys, passwords định kỳ. Different values per env: Dev dùng test API keys, prod dùng production keys. Encrypt in CI/CD: Dùng secrets management (GitHub Secrets, AWS Secrets Manager).
.env: Chứa values THẬT (API keys, passwords, connection strings). KHÔNG commit lên git vì chứa secrets. Mỗi developer có file riêng với values của họ. .env.example: Chứa KEY NAMES và placeholder values (your_api_key_here). COMMIT lên git để team biết cần config những gì. Khi clone repo, developer copy .env.example thành .env rồi điền values thật.
Đây là convention phổ biến (UPPER_SNAKE_CASE) vì: Dễ phân biệt với biến thường trong code (camelCase, snake_case). Nổi bật khi đọc code: process.env.DATABASE_URL rõ ràng là env var. Consistent với Unix/Linux environment variables. Hầu hết frameworks và tools expect format này. Tool này tự động convert input sang UPPER_SNAKE_CASE.
Thêm .env vào .gitignore NGAY khi tạo repo. Không share .env qua chat, email (dùng password manager). Dùng different values cho dev/staging/prod. Rotate secrets định kỳ. Trong CI/CD, dùng secrets management: GitHub Secrets, GitLab CI Variables, AWS Secrets Manager, HashiCorp Vault. Không log env vars trong application logs.
Next.js chỉ expose env vars có prefix NEXT_PUBLIC_ cho browser (client-side). Vars không có prefix chỉ available trên server. Ví dụ: NEXT_PUBLIC_API_URL - accessible trong browser code. DATABASE_URL - chỉ accessible trong API routes, getServerSideProps. Lý do: Bảo vệ secrets khỏi bị expose trong browser bundle. Tương tự: REACT_APP_* trong Create React App, VITE_* trong Vite.
CÓ THỂ nhưng KHÔNG KHUYẾN KHÍCH cho secrets quan trọng. Vấn đề: File .env có thể bị đọc nếu server bị compromise. Khó rotate secrets (cần redeploy). Khó audit ai access secrets. Best practice cho production: Dùng platform secrets: Vercel Environment Variables, Heroku Config Vars. Dùng secrets manager: AWS Secrets Manager, HashiCorp Vault. Dùng CI/CD secrets: GitHub Secrets, GitLab CI Variables. .env OK cho: Non-sensitive config, development, small projects.
Node.js: dotenv package - require('dotenv').config(). Python: python-dotenv - from dotenv import load_dotenv. PHP/Laravel: Built-in support với vlucas/phpdotenv. Ruby/Rails: dotenv-rails gem. Go: godotenv package. Java: java-dotenv library. Hầu hết frameworks hiện đại đã built-in support hoặc có official package.
Có 2 cách: Quotes: KEY='line1\nline2\nline3' hoặc KEY="line1\nline2". Actual newlines (một số parsers hỗ trợ): KEY='line1 (enter) line2 (enter) line3'. Lưu ý: Không phải tất cả .env parsers đều hỗ trợ multiline giống nhau. Test với parser của framework bạn dùng. Với certificates hoặc JSON, consider base64 encode.
KHÔNG. Toàn bộ xử lý diễn ra 100% trên browser của bạn bằng JavaScript. Không có data nào được gửi lên server. Bạn có thể verify bằng Network tab trong DevTools - không có request gửi data. Khi bạn đóng tab, tất cả data biến mất. An toàn để tạo .env với secrets thật.
Chúng tôi không chỉ thiết kế website, mà còn giúp doanh nghiệp xây dựng thương hiệu số mạnh mẽ. Cung cấp dịch vụ thiết kế website trọn gói từ thiết kế đến tối ưu SEO. Hãy liên hệ ngay với Tấn Phát Digital để cùng tạo nên những giải pháp công nghệ đột phá, hiệu quả và bền vững cho doanh nghiệp của bạn tại Hồ Chí Minh.