7 min read • 1,536 words
How to Create Environment Variables for Development Projects
Understanding how to create environment variables is essential for any developer looking to streamline their workflow and enhance security in their projects. Environment variables allow you to manage configuration settings without hardcoding them into your codebase, making your applications more flexible and easier to maintain. This practice is particularly important when dealing with sensitive information, such as API keys and database credentials, which should never be exposed in your source code.
In this article, you will learn the best practices for creating and managing environment variables, including the use of a .env file, which is a common approach for local development. We will explore how to access these variables in various programming languages through built-in libraries, as well as how to set them in the terminal or through configuration files, depending on your operating system. By the end of this guide, you will have a solid understanding of how to implement environment variables effectively in your development projects.
Step-by-Step Tutorial

Step 1: Identify Your Environment Variables
Identifying the environment variables necessary for your development project is a crucial first step. These variables often hold configuration settings that your application needs to function correctly. Here’s how to systematically identify them:
-
Review Your Project Requirements: Start by examining your project’s requirements. Identify any settings that are likely to change between development, testing, and production environments. Common variables include:
DATABASE_URL– The connection string for your database.API_KEY– Keys for third-party APIs.SECRET_KEY– A secret key for session management or encryption.DEBUG– A flag to enable or disable debug mode.
- Consult Documentation: If you are using third-party services, review their documentation. They often specify which environment variables are necessary for integration. For instance, cloud services like AWS or Firebase have specific keys and configurations that must be set.
-
Establish a Naming Convention: To maintain clarity, consider adopting a consistent naming convention for your environment variables. This could involve prefixing variables with your project name or using uppercase letters with underscores, such as
MYPROJECT_DATABASE_URL. -
Be Cautious with Sensitive Information: Always remember to avoid including sensitive information in public repositories. Use a .gitignore file to exclude files that contain environment variables, and consider using tools like
dotenvto manage them securely.
By following these steps, you will create a clear list of environment variables that are essential for your project, ensuring a smoother development process.

Step 2: Choose a Method for Storing Variables
When it comes to storing environment variables for your development projects, you have several options. Each method has its advantages and is suitable for different scenarios. Here are three common methods to consider:
-
.env File: This is one of the most popular methods for local development. To use a .env file, create a new file named
.envin the root of your project directory. Inside this file, you can define your variables in the formatKEY=VALUE. For example:DATABASE_URL=postgres://user:password@localhost:5432/mydatabaseMake sure to add the
.envfile to your.gitignoreto prevent it from being pushed to version control. -
System Environment Variables: For a more secure approach, especially in production, you can set environment variables directly in your operating system. On Unix-based systems, you can set a variable using:
export DATABASE_URL=postgres://user:password@localhost:5432/mydatabaseThis method keeps sensitive information out of your codebase but can be less convenient for local development.
- Configuration Management Tools: For larger applications, consider using configuration management tools like Ansible, Chef, or Puppet. These tools allow you to manage environment variables across multiple servers and environments securely. You can define your variables in a configuration file and deploy them as needed.
Whichever method you choose, ensure that you avoid hardcoding sensitive information directly into your code. This practice can lead to security vulnerabilities and should be avoided at all costs.

Step 3: Create a .env File (if applicable)
Creating a .env file is a crucial step in managing environment variables for your development projects. Follow these sub-steps to ensure you set it up correctly:
-
Navigate to Your Project Directory: Open your terminal or command prompt and change to your project’s root directory. Use the following command:
cd /path/to/your/project -
Create the .env File: In the root directory, create a new file named ‘.env’. You can do this using the command:
touch .env -
Add Environment Variables: Open the .env file in your preferred text editor. Add your environment variables in the format:
VARIABLE_NAME=value
For example:
DATABASE_URL=mysql://user:password@localhost/dbname
You can also include comments to describe each variable’s purpose by starting the line with a hash (#):# Database connection URL DATABASE_URL=mysql://user:password@localhost/dbname - Organize Your Variables: Keep your .env file organized. Group related variables together and leave blank lines between different sections for better readability.
-
Update .gitignore: Ensure your .env file is included in your .gitignore file to prevent it from being tracked by Git. Open your .gitignore file and add the following line:
.env
By following these steps, you will have a well-structured .env file that keeps your sensitive information secure and organized.

Step 4: Load Environment Variables in Your Application
To effectively utilize the environment variables you have created, you need to load them into your application. This process can vary depending on the programming language and framework you are using. Below are the detailed sub-steps to load environment variables in a Node.js application using the ‘dotenv’ package.
-
Install the ‘dotenv’ package: Begin by installing the ‘dotenv’ package, which will allow you to load environment variables from a .env file into your application. Run the following command in your terminal:
npm install dotenv -
Create a .env file: In the root directory of your project, create a file named .env. This file will contain your environment variables in the format
KEY=VALUE. For example:DATABASE_URL=mongodb://localhost:27017/mydatabase -
Load the environment variables: At the very top of your main application file (e.g.,
app.js), require the ‘dotenv’ package and call theconfigmethod to load the variables:require('dotenv').config(); -
Access the variables in your code: You can now access your environment variables using
process.env.VARIABLE_NAME. For example:const dbUrl = process.env.DATABASE_URL; -
Test your setup: Before deploying your application, ensure that the environment variables are loaded correctly by logging their values:
console.log(dbUrl);
By following these steps, you can ensure that your application can access the necessary environment variables, enhancing its configurability and security. Always remember to test your setup in a development environment before moving to production.

Step 5: Access Environment Variables in Your Code
Accessing environment variables in your application code is crucial for maintaining configuration settings without hardcoding sensitive information. Follow these sub-steps to successfully retrieve and utilize environment variables in your projects.
1. **Identify Your Programming Language**: Different programming languages have different methods for accessing environment variables. Determine which language you are using for your project, as this will dictate the approach you take.
2. **Accessing Variables in Node.js**: If you’re using Node.js, you can access environment variables using the `process.env` object. For example, to retrieve a variable named `DATABASE_URL`, you would use the following code:
const dbUrl = process.env.DATABASE_URL;
3. **Setting Default Values**: It’s a good practice to set default values in case the environment variable is not defined. You can achieve this using the logical OR operator. For instance:
const dbUrl = process.env.DATABASE_URL || 'default_value';
4. **Using Environment Variables in Other Languages**: If you are using Python, you can access environment variables using the `os` module:
import os
db_url = os.getenv('DATABASE_URL', 'default_value')
5. **Client-Side Considerations**: Be cautious when using environment variables in client-side code, as this can expose sensitive information. Always ensure that sensitive variables are only accessed in server-side code.
By following these steps, you can effectively manage your application’s configuration through environment variables, ensuring a secure and flexible development process.

Step 6: Test Your Configuration
To ensure that your environment variables are correctly configured and your application behaves as expected, follow these sub-steps:
1. **Set Up a Staging Environment**: Before running your application, create a staging environment that closely mirrors your production setup. This will help you identify any potential issues without affecting your live application. You can set up a staging environment using tools like Docker or by duplicating your production server settings.
2. **Load Environment Variables**: Depending on your operating system, you can load your environment variables using the following commands. For Linux or macOS, use:
source .env
For Windows, use:
set -o allexport; source .env; set +o allexport
3. **Run Your Application**: Start your application to see if it loads the environment variables correctly. Use the command appropriate for your application framework. For example, if you are using Node.js, you might run:
node app.js
If you are using a Python application, you might run:
python app.py
4. **Check for Errors**: Monitor the console output for any error messages. If your application fails to start or behaves unexpectedly, log the errors for further investigation.
5. **Debugging**: If you encounter issues, review your environment variable settings and ensure they match the expected values. You can log configuration errors by adding logging statements in your application code.
6. **Final Verification**: Once you