Environment Variables
What Are Environment Variables?
Environment variables are a set of key-value pairs used in software development to manage and configure elements of your application outside of your code. They are particularly useful for:
- Security: Keeping sensitive data like passwords and API keys out of your source code.
- Flexibility: Allowing different settings for development, testing, and production environments without changing the code.
- Convenience: Enabling easy changes to configuration without the need for code modifications.
In your project, these variables play a vital role in configuring the application's behavior based on the environment it's running in (like local development, staging, or production).
Materialize comes with support for environment variables, which allows you to use .env
to load the environment variables.
We recommend you to read the official guide given by Next.js for using environment variables.
Environment variables used in the template
To configure your environment variables, follow these steps:
- Copy the
.env.example
file and rename it to.env
. - Fill in the required values in the
.env
file. - Make sure to mention your
NEXTAUTH_SECRET
in the.env
file. You may generate your secret by referring to this link. - If you are using google authentication, make sure to mention your
GOOGLE_CLIENT_ID
andGOOGLE_CLIENT_SECRET
in the.env
file. - If you want to include the
.env
file in your repository, remove the.env
statement from the.gitignore
file.
By following these steps, you can set up and manage your environment variables effectively.
We have use the fake-db
and fake-db API calls are not supported to access the environment variables. Hence, we have used NEXT_PUBLIC
prefix with our environment variables. You can find the environment variables' file .env
in the root of the project. The environment variables that we have used in the .env
file are as follows:
BASEPATH=
API_URL=http://localhost:3000${BASEPATH}/api
NEXT_PUBLIC_APP_URL=http://localhost:3000${BASEPATH}
Authentication
Authentication variables in the .env file are used to configure authentication settings for your application. These variables are specific to the authentication library you are using, such as NextAuth.js.
NEXTAUTH_URL
- This variable specifies the URL of your application. It is used by NextAuth.js to generate callback URLs and handle authentication redirects.NEXTAUTH_SECRET
- This variable is used to encrypt cookies and tokens. It is used by NextAuth.js to encrypt and decrypt cookies and tokens.GOOGLE_CLIENT_ID
- This variable is used to configure the Google OAuth 2.0 client ID. It is used by NextAuth.js to authenticate users using Google.GOOGLE_CLIENT_SECRET
- This variable is used to configure the Google OAuth 2.0 client secret. It is used by NextAuth.js to authenticate users using Google.
We have used the NextAuth.js library for authentication. You may refer to the environment variables used in the NextAuth.js library here.
# NextAuth Configuration
NEXTAUTH_BASEPATH=${BASEPATH}/api/auth
NEXTAUTH_URL=http://localhost:3000${BASEPATH}/api/auth
NEXTAUTH_SECRET=
# Google OAuth 2.0 Credentials
GOOGLE_CLIENT_ID=
GOOGLE_CLIENT_SECRET=
Database
Database variables in the .env file are used to configure database settings for your application. These variables are specific to the database you are using, such as MongoDB.
DATABASE_URL
- This variable is used to configure the database connection string or file path. It is used by the database client to connect to the database.
# Database Configuration
DATABASE_URL=file:./dev.db
Make sure to replace the NEXTAUTH_SECRET
and GOOGLE_CLIENT_ID
with your actual values and it's advisable to remove the NEXT_PUBLIC
prefix if you are using the Next.js data fetching method or API routes.
Private Variables
Having access to the NODE_ENV
is also useful for performing actions conditionally:
if (process.env.NODE_ENV === 'production') {
analytics.disable()
}