How to run a project from GitHub locally
Tags: github, npm
Published: 2020-12-14 19:58:56

---
title: How to run a project from GitHub locally
published: true
description: Learn how to run a project cloned from GitHub locally by installing dependencies and starting a development server
tags: GitHub, npm
cover_image: https://dev-to-uploads.s3.amazonaws.com/i/kthz3qpcbgqlzd5gnoy8.jpg
---

First, you’ll need to [clone the repo to your machine](https://dev.to/ceceliacreates/how-to-clone-a-github-repository-59hg). If you haven’t already, you can follow the instructions here. This guide is written from the perspective of a JavaScript developer, but the GitHub aspects apply to any type of project.

## Install Dependencies

So, we’ve cloned the project repository to our local machine, but we don’t have everything we need yet to run the project locally. It is a best practice that `node_modules` folders (which contain all the package dependencies for the project) NOT be included in the project repository. Because of this, we will need to install dependencies using either NPM or yarn.

`npm install`

`yarn install`

Now we will be able to run a development version of the project on our computer, which is helpful for seeing and testing our changes.


## Update configurations (optional)

If the project needs any specific environment variables to run properly, you’ll need to set these up on your machine.

One example would be if you use a package like [dotenv](https://www.npmjs.com/package/dotenv) to store sensitive data like API keys locally without checking the data into GitHub where it can be accessed publicly.

You may also need to provide authentication credentials and port information for a local database or API. These are often managed in a configuration file in the root of your project directory.

Additionally, while the majority of dependencies will be managed by a package manager like yarn or npm, there may be additional dependencies needed on your machine to run your code. In many cases, after some initial setup and if you are working primarily in one language or framework,  projects can be  up and running with a simple `npm install` and `npm start`, but check the requirements and README for more information.

It’s key to remember that a repository only contains the code and related information. It is up to you to ensure that your machine is actually able to execute.


## Start any dependent applications

Once you have configured your project to connect to any databases or APIs, you need to make sure those are up and running. You may also prefer to only start parts of the application to develop or test independently. Keep in mind that if your front end requires access to the API or database to render properly, you may need to start up both to run correctly in a development environment.


## Start development server

Finally, you can start your application development server! A development server is one that runs your application while you are developing. For frameworks with hot reloading, you can typically see changes update on your local server once they are saved in your codebase. Running the application locally can also be helpful for testing or to demonstrate the project before it is ready to be deployed in production.

Most projects will have instructions for starting the dev server in the README, but you can also check the scripts section of the package.json. There will likely be a `start`, `dev`, or `serve` script that will run the application locally.

For example, here is a `package.json` from a Vue CLI project that uses the command `serve` to start a local server.

```
"scripts": {

    "serve": "vue-cli-service serve",

    "build": "vue-cli-service build",

    "lint": "vue-cli-service lint",

    "api": "node server.js",

    "cypress:open": "cypress open"

  }
```

Note that `build` is not a command to run the site locally, but rather build a production-ready version of your application to be deployed.

Once the application is running locally, you can make and see changes as you are developing!

If you use GitHub frequently, check out my post on [automatically creating GitHub issues with Node.js and the GitHub API](https://dev.to/ceceliacreates/create-multiple-github-issues-automatically-from-json-with-node-and-the-github-api-2g1j).