Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Update "Deploying with Now" Guide #10390

Merged
merged 8 commits into from
Dec 10, 2018
Merged
Changes from 2 commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
56 changes: 41 additions & 15 deletions docs/docs/deploying-to-now.md
Original file line number Diff line number Diff line change
Expand Up @@ -2,36 +2,62 @@
title: Deploying to Now
---

In order to deploy your Gatsby project using [Now](https://zeit.co/now), you can do the following:
[ZEIT Now](https://zeit.co/now) is a [cloud platform for serverless deployment](https://zeit.co/docs/v2/getting-started/introduction-to-now/) that you can use to deploy your Gatsby projects and [alias them](https://zeit.co/docs/v2/domains-and-aliases/aliasing-a-deployment/) to your domain or a free `.now.sh` suffixed URL.
timothyis marked this conversation as resolved.
Show resolved Hide resolved

1. Install the Now CLI
This guide will show you how to get started in a few quick steps:

`npm install -g now`
## Step 1: Getting Started with Gatsby
If you haven't already [set up a Gatsby project](https://www.gatsbyjs.org/docs/quick-start) you can do so by using npm's `npx` command in your terminal:

2. Run `gatsby build` at the root of your project.
```shell
npx gatsby new <your project name>
timothyis marked this conversation as resolved.
Show resolved Hide resolved
```

3. Run `now` inside `public/`. This will upload your project to the cloud.
## Step 2: Getting Now

For large project sizes, it is better to install a Node server package (such as `serve`, or `http-server`):
If you're not acquainted with Now, it is an easy-to-use cloud platform for serverless deployments that you can use from [the command-line](https://zeit.co/docs/v2/getting-started/installation/#now-cli) or [the desktop app](https://zeit.co/docs/v2/getting-started/installation/#now-desktop)
timothyis marked this conversation as resolved.
Show resolved Hide resolved

1. Install a Node server package
We recommend that you download and [install Now Desktop](https://zeit.co/download) which installs Now CLI and keeps it up-to-date automatically.

To install Now CLI quickly, use the following:
jgierer12 marked this conversation as resolved.
Show resolved Hide resolved
```shell
npm install -g now
```

`npm install --save serve`
## Step 3: Preparing to Deploy

2. Add a `start` script to your `package.json` file. This is what Now will use to run your application:
With Now CLI installed, we can go on to deploy our previously setup Gatsby project by first creating a `now.json` file with the following contents:

```json:title=now.json
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

is this at the root of the project?

{
"version": 2,
"name": "my-gatsby-project",
"builds": [
{ "src": "package.json", "use": "@now/static-build", "config": {"distDir": "public"} }
]
}
```

This will allow Now to understand that we want to use the [latest Now 2.0 version](https://zeit.co/blog/now-2) of [the platform](https://zeit.co/docs/v2/platform/overview/), to set the project name to be `my-gatsby-project`, and to use the [@now/static-build builder](https://zeit.co/docs/v2/deployments/official-builders/static-build-now-static-build/) to take the `package.json` file as an entrypoint and use the `public` directory as the directory our final content will end up at.
timothyis marked this conversation as resolved.
Show resolved Hide resolved

The final setup step is to add a script to the `package.json` which will build our application:
timothyis marked this conversation as resolved.
Show resolved Hide resolved
```json:title=package.json
{
"scripts": {
"start": "serve public/"
...
"now-build": "npm run build"
jgierer12 marked this conversation as resolved.
Show resolved Hide resolved
}
}
```

3. Run `now` at the root of your Gatsby project, this will upload your project, run the `build` script, and then your `start` script.
## Step 4: Deploying

You can deploy your application by running the following in the root of the project directory, where the `now.json` is:
`now`
timothyis marked this conversation as resolved.
Show resolved Hide resolved

That's all! Your application will now deploy, and you will receive a link similar to the following: https://my-gatsby-project-fhcc9hnqc.now.sh/

## References:
- [Deploying Gatsby with Now](https://zeit.co/examples/gatsby/)

timothyis marked this conversation as resolved.
Show resolved Hide resolved
To deploy a custom path, run `now` as:

```shell
$ now /usr/src/project
```