# Dotenvx > [![dotenvx](https://dotenvx.com/banner.png)](https://dotenvx.com) ## Pages - [Dotenvx Documentation](dotenvx-documentation.md): *a secure dotenv*–from the creator of [`dotenv`](https://github.com/motdotla/dotenv). - [run every day at 8am](run-every-day-at-8am.md): 0 8 * * * dotenvx run -- /path/to/myscript.sh - [heroku](heroku.md): heroku buildpacks:add - [docker](docker.md): RUN curl -fsS | sh - [vercel](vercel.md): npm install @dotenvx/dotenvx --save - [alternatively use npx](alternatively-use-npx.md): $ npx @dotenvx/dotenvx run -- node index.js - [use dotenvx with asdf](use-dotenvx-with-asdf.md): $ asdf plugin add dotenvx - [use as a git submodule](use-as-a-git-submodule.md): $ git dotenvx run -- node index.js - [.env](env.md): USERNAME="username" - [.env](env-2.md): DATABASE_URL="postgres://$(whoami)@localhost/my_database" - [.env](env-3.md): USERNAME="username" - [Default value syntax: use value if set, otherwise use default](default-value-syntax-use-value-if-set-otherwise-use-default.md): DATABASE_HOST=${DB_HOST:-localhost} - [Alternative syntax (no colon): use value if set, otherwise use default](alternative-syntax-no-colon-use-value-if-set-otherwise-use-default.md): API_URL=${API_BASE_URL- - [Alternate value syntax: use alternate if set and non-empty, otherwise empty](alternate-value-syntax-use-alternate-if-set-and-non-empty-otherwise-empty.md): DEBUG_MODE=${NODE_ENV:+false} - [Alternative syntax (no colon): use alternate if set, otherwise empty](alternative-syntax-no-colon-use-alternate-if-set-otherwise-empty.md): CACHE_ENABLED=${NODE_ENV+true} - [Default value syntax - use variable if set/non-empty, otherwise use default](default-value-syntax-use-variable-if-setnon-empty-otherwise-use-default.md): TEST1=${DEFINED_VAR:-fallback} # Result: "hello" - [Default value syntax (no colon) - use variable if set, otherwise use default](default-value-syntax-no-colon-use-variable-if-set-otherwise-use-default.md): TEST4=${DEFINED_VAR-fallback} # Result: "hello" - [Alternate value syntax - use alternate if variable is set/non-empty, otherwise empty](alternate-value-syntax-use-alternate-if-variable-is-setnon-empty-otherwise-empty.md): TEST7=${DEFINED_VAR:+alternate} # Result: "alternate" - [Alternate value syntax (no colon) - use alternate if variable is set, otherwise empty](alternate-value-syntax-no-colon-use-alternate-if-variable-is-set-otherwise-empty.md): TEST10=${DEFINED_VAR+alternate} # Result: "alternate" - [.env](env-4.md): DATABASE_URL="postgres://$(whoami)@localhost/my_database" - [.env](env-5.md): MULTILINE_PEM="-----BEGIN PUBLIC KEY----- - [.env.prod contains: MODEL_REGISTRY=registry.company.com/models/v1](envprod-contains-model-registryregistrycompanycommodelsv1.md): $ echo "MODEL_REGISTRY=registry.company.com/models/v1" > .env.prod - [Without environment variable set - uses .env.prod value](without-environment-variable-set-uses-envprod-value.md): $ dotenvx run -f .env.prod -- node app.js - [With environment variable set (e.g., via Azure Container Service) - environment variable takes precedence](with-environment-variable-set-eg-via-azure-container-service-environment-variabl.md): $ MODEL_REGISTRY=registry.azure.com/models/v2 dotenvx run -f .env.prod -- node app.js - [To force .env.prod to override environment variables, use --overload](to-force-envprod-to-override-environment-variables-use-overload.md): $ MODEL_REGISTRY=registry.azure.com/models/v2 dotenvx run -f .env.prod --overload -- node app.js - [check your .env.keys files for your privateKey](check-your-envkeys-files-for-your-privatekey.md): $ DOTENV_PRIVATE_KEY="122...0b8" dotenvx run -- node index.js - [check .env.keys for your privateKey](check-envkeys-for-your-privatekey.md): $ DOTENV_PRIVATE_KEY_PRODUCTION="122...0b8" dotenvx run -- node index.js - [check .env.keys for your privateKey](check-envkeys-for-your-privatekey-2.md): $ DOTENV_PRIVATE_KEY_CI="122...0b8" dotenvx run -- node index.js - [check .env.keys for your privateKeys](check-envkeys-for-your-privatekeys.md): $ DOTENV_PRIVATE_KEY="122...0b8" DOTENV_PRIVATE_KEY_PRODUCTION="122...0b8" dotenvx run -- node index.js - [.env](env-6.md): HELLO="encrypted:BDqDBibm4wsYqMpCjTQ6BsDHmMadg9K3dAt+Z9HPMfLEIRVz50hmLXPXRuDBXaJi/LwWYEVUNiq0HISrslzQPaoyS8Lotg3gFWJT... - [.env](env-7.md): HELLO="World" - [.env](env-8.md): HELLO="encrypted:12345" - [.env.example](envexample.md): HELLO="" - [.env.example](envexample-2.md): HELLO="" - [apps/backend/.env.example](appsbackendenvexample.md): HELLO="" - [Dockerfile](dockerfile.md): RUN curl -fsS | sh - [Dockerfile](dockerfile-2.md): RUN curl -fsS | sh - [.env](env-9.md): HELLO="World" - [.env](env-10.md): HELLO="World" - [.env](env-11.md): HELLO="World" - [.env](env-12.md): HELLO="World" - [.env](env-13.md): HELLO="World" - [.env](env-14.md): HELLO="World" - [.env](env-15.md): HELLO="World" - [Setup environment files](setup-environment-files.md): $ echo "HELLO=development local" > .env.development.local - [from this:](from-this.md): ./node_modules/.bin/dotenvx run --env-file .env -- yourcommand - [to this:](to-this.md): ./node_modules/.bin/dotenvx run -f .env -- yourcommand