Environment variables
Learn how to configure environment variables.
Environment variables are defined in the .env
file in the root of the repository and in the root of the apps/web
package.
- Shared environment variables: Defined in the root
.env
file. These are shared between environments (e.g., development, staging, production) and apps (e.g., web, mobile). - Environment-specific variables: Defined in
.env.development
and.env.production
files. These are specific to the development and production environments. - App-specific variables: Defined in the app-specific directory (e.g.,
apps/web
). These are specific to the app and are not shared between apps. - Secret keys: Not stored in the
.env
file. Instead, they are stored in the environment variables of the CI/CD system. - Local secret keys: If you need to use secret keys locally, you can store them in the
.env.local
file. This file is not committed to Git, making it safe for sensitive information.
Shared variables
Here you can add all the environment variables that are shared across all the apps. This file should be located in the root of the project.
To override these variables in a specific environment, please add them to the specific environment file (e.g. .env.development
, .env.production
).
App-specific variables
Here you can add all the environment variables that are specific to the app (e.g. apps/web
).
You can also override the shared variables defined in the root .env
file.
NEXT_PUBLIC_ prefix
To make environment variables available in the Next.js client-side app code, you need to prefix them with NEXT_PUBLIC_
. They will be injected to the code during the build process.
Only environment variables prefixed with NEXT_PUBLIC_
will be injected, so don't use this prefix for environment variables that should be used only in the server-side code.
Secret keys
Secret keys and sensitive information are to be never stored in the .env
file. Instead, they are stored in the environment variables of the CI/CD system.
What does this mean?
It means that you will need to add the secret keys to the environment variables of your CI/CD system (e.g., GitHub Actions, Vercel, Cloudflare, your VPS, Netlify, etc.). This is not a TurboStarter-specific requirement, but a best practice for security for any application. Ultimately, it's your choice.
Below is some examples of "what is a secret key?" in practice.
Secrets used locally
If you need to use secret keys locally, you can store them in the .env.local
file. This file is not committed to Git, therefore it is safe to store
sensitive information in it.
Last updated on