Find code examples for this guide on GitHub (Next.js and Astro).
Initial setup
npx create-next-app@latest --example hello-world .
[[plugins]]
package = "@netlify/plugin-nextjs"
[build]
command = "npm run build"
publish = ".next"
npx netlify-cli@latest deploy --build --prod
Run dotenvx
npm install @dotenvx/dotenvx --save
Preload scripts with dotenvx so environment variables inject ahead of build, start, or dev.
"scripts": {
"dotenvx": "dotenvx",
"dev": "dotenvx run -- next dev --turbo",
"build": "dotenvx run -- next build",
"start": "dotenvx run -- next start"
}
Encrypt production
# .env.production
HELLO="production"
npm run dotenvx -- set HELLO production -f .env.production
Commit .env.production. Do not commit .env.keys.
Set decryption key
npx netlify-cli@latest env:set DOTENV_PRIVATE_KEY_PRODUCTION "your-private-key"
npx netlify-cli@latest deploy --build --prod
Your build injects env from the encrypted .env.production file.