Skip to content

docs(deployment): instructions to deploy on gcloud app engine standard edition #2742

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

Merged
merged 13 commits into from
Jul 8, 2018
73 changes: 73 additions & 0 deletions docs/content/deployment/gcloud-deployment.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,73 @@

The following are the instructions to deploy the angular-fullstack app to Google Cloud App Engine Standard Environment

# Prequsites
## 1. Google Cloud SDK
Download and install [Google Cloud SDK](https://cloud.google.com/sdk/)
## 2. Create GCP Project
```bash
gcloud projects create [PROJECT_ID]
```
```[PROJECT_ID]``` ID for the project you want to create.

## 3. Enable Billing
You need to enable billing for your project before you begin using App Engine
```bash
gcloud alpha billing projects link my-project \
--billing-account 0X0X0X-0X0X0X-0X0X0X
```
[gcloud alpha billing projects link](https://cloud.google.com/sdk/gcloud/reference/alpha/billing/projects/link)

## 4. Create a MongoDB database
Create a MongoDB instance and obtain the uri and credentials. There are multiple options for creating a new MongoDB database.
- Create a Google Compute Engine virtual machine with [MongoDB pre-installed](https://cloud.google.com/launcher/?q=mongodb).
- Create a MongoDB instance with [MongoDB Atlas on GCP](https://www.mongodb.com/cloud/atlas/mongodb-google-cloud).
- Use [mLab](https://mlab.com/google) to create a free MongoDB deployment on Google Cloud Platform.


# Deployment Setup
## 1. Set Node / NPM versions
GCloud App Engine supports only the newest version of Node.js 8
```javascript
"engines": {
"node": ">=8.0",
"npm": "^5.1.1"
},
```

## 2. Create Application configuration file (app.yaml)
A Node.js app in App Engine is configured through a file named app.yaml, that contains runtime, handlers,
scaling, and other general settings including environment variables.

2.1 create a 'app.yaml' file with the following contents

```yaml

env: standard

runtime: nodejs8

env_variables:
MONGODB_URI: "mongodb://<dbuser :<dbpassword @<environment_URI/deployment_name"

```

2.2 Add app.yaml to .gitignore

# Deployment Steps
## 1. Build the app
```bash
gulp build
```
## 2. Copy app.yaml to dist
```bash
cp app.yaml dist
```
## 3. Change to build directory
```bash
cd dist
```
## 4. Deploy
```bash
gcloud app deploy
```
2 changes: 2 additions & 0 deletions docs/content/deployment/index.md
Original file line number Diff line number Diff line change
Expand Up @@ -22,3 +22,5 @@ $ cd myproj
5. ```
$ NODE_ENV=production node ./server
```

## [Gcloud App Engine (Standard Environment)](gcloud-deployment.md)