Quotes appear or disappear after editing
Values containing whitespace, `#`, or `"` need double-quoting; the editor adds them automatically.
Fix: Don't try to manually escape — the serializer reapplies quotes deterministically.
Search tools and pages.
Edit .env files in a key/value table with type detection, masked secrets, duplicate-key warnings, and export to JSON, YAML, shell, or docker-compose
sidebar • 160x600
Written by Giorgos Kostas. Last reviewed:
ENV File Editor parses your `.env` content into a row-based table — every variable becomes an editable input, comments and blank lines round-trip unchanged, and a type badge tells you what each value looks like (URL, port, boolean, JSON, secret, list, number).
It is purpose-built for the editor workflow that the existing `.env to JSON` converter doesn't cover: secret masking by key name, duplicate-key warnings (later assignments shadow earlier ones), and one-click export to docker-compose `environment:` blocks, POSIX shell `export` lines, JSON, or YAML.
APP_PORT=3000 DATABASE_URL=postgres://user:[email protected]:5432/app JWT_SECRET="change-me" JWT_SECRET="this-overrides-the-previous"
APP_PORT = 3000 [port] DATABASE_URL = postgres://… [url] JWT_SECRET = ch••••••me [secret] · shadowed JWT_SECRET = th••••••us [secret]
Values containing whitespace, `#`, or `"` need double-quoting; the editor adds them automatically.
Fix: Don't try to manually escape — the serializer reapplies quotes deterministically.
Some shells refuse keys with hyphens or lowercase letters.
Fix: Stick to UPPER_SNAKE_CASE; the editor warns when a key isn't `[A-Za-z_][A-Za-z0-9_]*`.
Two assignments to the same key — the second wins, but the first looks valid.
Fix: Delete the duplicate row, or move the intended value to be the last assignment.
The converter is one-way: paste, get JSON. The editor is interactive: rename keys in place, reorder, mask secrets, see live JSON / YAML / shell / docker-compose exports, and download a properly-quoted `.env` back. Round-trip safety (comments and blank lines preserved) is the bigger differentiator.
No — parsing, validation, and export all happen in the browser. The masking is purely visual; the underlying value is still in the input field, just hidden. Toggle 'Show secrets' to reveal them.
Anything matching the regexes for SECRET, PASSWORD, PASSWD, TOKEN, APIKEY/API_KEY, PRIVATE, KEYSTORE, or CREDENTIAL (case-insensitive). Override by editing the value with the show toggle on, or by renaming the key.
The serializer outputs `\n` inside double-quoted values, but the parser keeps multi-line dotenv values on a single row. Full multi-line block support (the dotenv-vault `"""` syntax) isn't covered yet.
Not yet. Paste an `env_file:` reference contents instead. We're considering importing `environment:` arrays from compose YAML in a future iteration.
It outputs a `services: app: environment: - KEY=value` block, ready to drop into a compose file. Rename the service after pasting.
Pair the editor with related dev / DevOps tools. You can also browse the full DevOps & Infra category for more options.
Convert a .env (dotenv) file into structured JSON with quote, comment, and escape handling
Validate docker-compose.yml against the Compose Spec schema with hand-written lints (port collisions, undefined networks, depends_on cycles)
Format and beautify YAML content online with proper indentation and flow styles. Paste YAML and get clean, readable output instantly.
Validate YAML syntax online and catch indentation and structure errors instantly. Paste YAML config files and get detailed error messages with line numbers.
Format, validate, and beautify JSON online with readable indentation, syntax checking, and copy-ready output for APIs, logs, and config files.
Validate JSON syntax and catch parse errors instantly. Paste JSON and get immediate feedback on structural issues, missing commas, and unquoted keys.
Explore multi-document Kubernetes manifests grouped by kind with a cross-reference graph (Service to Deployment, ConfigMap mounts, Ingress backends)
Generate an nginx upstream + load balancer config with round-robin, least_conn, ip_hash, weights, health checks, and keepalive
Generate a production-ready nginx.conf for reverse proxying with proxy_pass, headers, timeouts, and gzip from a focused form
Generate an HTTPS-ready nginx.conf with SSL certificate paths, modern protocols, ciphers, HSTS, and HTTP-to-HTTPS redirect
Generate an nginx.conf for serving a static site with try_files, SPA fallback, gzip, brotli, and aggressive cache headers
Generate an nginx config for proxying WebSocket connections with Upgrade and Connection headers and long read timeouts
Edit `.env` in a key/value table with type detection, secret masking, and multi-format export. Comments and blank lines round-trip.
# Application APP_ENV=production APP_PORT=3000 APP_URL=https://app.example.com # Database DATABASE_URL=postgres://user:[email protected]:5432/app DATABASE_POOL_MAX=20 REDIS_URL=redis://cache.internal:6379 # Auth (do not commit) JWT_SECRET="change-me-please-its-a-secret" SESSION_COOKIE_SECURE=true [email protected] # Feature flags FEATURE_FLAGS="{\"newCheckout\":true,\"darkMode\":false}" ALLOWED_ORIGINS=https://app.example.com,https://admin.example.com
content bottom • up to 300x250