# Set up your server

For the purposes of this tutorial, we're going to use a local server to receive messages from EverTransit. For this, we will use `NodeJS` and `express` to create our local development environment, and `ngrok` to expose our local development environment to the internet.

{% hint style="info" %}
**Note:** You can download the complete source code for this project [from the EverTransit-webhooks-example repo](https://github.com/Dashride/EverTransit-webhooks-example).
{% endhint %}

### Creating our local development environment

First of all, we need to have NodeJS installed. If you don't have it installed, you can install it from [here](https://nodejs.org/en/download/package-manager/).

Next, we create our little NodeJS project and install the necessary dependencies.

```
mkdir evertransit-webhooks && cd evertransit-webhooks && touch index.js
```

```
npm init --yes
```

```
npm install express
```

### Expose local development to the internet

We'll use `ngrok` to do this. `ngrok` is available, free of charge, for all major operating systems. For more information, see [the `ngrok` download page](https://ngrok.com/download).

After installing `ngrok`, you can expose your localhost by running `ngrok http 3000` on the command line. 3000 is the port number on which our server will listen for messages. You should see a line that looks something like this:

![](https://401638202-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FncBJGr7LibzayGdNpU4o%2Fuploads%2FGrhTln9unZgu95yjWAfo%2FScreen%20Shot%202022-05-05%20at%2011.56.16%20AM.png?alt=media\&token=e34ada61-d5d6-47f5-806a-7d226f294181)

Make a note of the `https://*.ngrok.io` URL. We'll use it to set up our webhook.\
