GCP Cloud Run

This tutorial will walk you through how to create an example Form.io deployment environment on GCP Cloud Run. This tutorial assumes you have prior knowledge of of Form.io and GCP Cloud Run.

Mongo DB

MongoDB Atlas

Before we start our deployment, we will first need to create a Database to store all of our Forms and Submissions within our Form.io deployment. MongoDB Atlas is a NoSQL database solution that we will run within GCP to store projects, forms, and submissions.

Within your GCP console, type MongoDB and click on the link that says MongoDB Atlas

On the next page, click on the button that says MANAGE ON PROVIDER

After clicking the link, a new tab should open and navigate to cloud.mongodb.com. Sign in or create an account and create a project.

After creating a project, create a deployment.

Follow the steps to select a configuration template. Give your database a name. Select Google Cloud as the provider and select your desired region. When finished click Create Deployment.

Specify the IP addresses or range of IP addresses that will be allowed to access the new database. Afterwards, provide the desired username and password. Once that's completed click Create Database User.

After adding IP addresses and creating a database user, click Choose a connection method.

NOTE: If the desired IP address or range is not known. Selected the default to complete the configuration. Later, once the IP addresses have been acquired, navigate to Network Access for the created database and add or remove IP addresses as needed. For this tutorial, we will set the IP address range to allow any IP address to connect to the database.

After clicking Choose a connection method, click the Drivers option under the Connect to your application section.

Make sure Node.js driver is selected and copy the connection string. This string will be used later as an environment variable within GCP.

The database should be configured and ready to use.

Cloud File Storage Using Google Storage

In the GCP Console, type in Google Storage in the search bar.

Create a bucket.

After creating a bucket, a Public Access prompt will display. Click confirm.

The bucket should now be created.

Next, navigate to the INTEROPERABILITY tab in Settings and create an access key if one has not been created. Copy the Access key, Secret, and Storage URI, as they will be needed later.

GCP Cloud Run

In the GCP Console, type in Cloud Run in the search bar.

You may need to enable the Cloud Run Admin API. If so, click ENABLE.

If Cloud Run is enabled, select CREATE SERVICE.

This will display the service configuration screen.

First, we will create and deploy Form.io Enterprise Server.

Enter or select the following:

For this tutorial, we use the Form.io version 8.5.0 image. For the latest version, replace with docker.io/formio/formio-enterprise:latest

We recommend setting the number of instances to a minimum of 1.

Next, set the port to 3000.

Enter the environment variables.

  • For the MONGO variable, copy and paste the connection string from the database configuration. But modify the string to include the name of the database. In our case, our database name is formio. See below:

Setting

Description

Example

MONGO

The MongoDB connection string to connect to your remote database. This is the value we copied before.

mongodb+srv://formio:PASSWORD@formio.s8hvqhf.mongodb.net/formio?retryWrites=true&w=majority&appName=formio

LICENSE_KEY

The license key for your deployment. You will get this when you upgrade a project to Enterprise.

<—YOUR LICENSE—>

DEBUG

Application Logging Settings.

*.*

PORTAL_ENABLED

Used to enable the Self-Hosted Portal

1

ADMIN_EMAIL

An admin account you would like to use as the first Admin user.

admin@example.com

ADMIN_PASS

A password for the first Admin user.

CHANGEME

DB_SECRET

A secure secret that you will pick that is used to encrypt the project settings.

CHANGEME

JWT_SECRET

A secure secret that you will pick that is used to establish secure JWT tokens.

CHANGEME

For this tutorial we set Maximum number of instances to 3.

After entering the fields click DEPLOY.

The screen should navigate to a progress screen showing the service being deployed.

Once completed, the service will be deployed and will show a green checkmark.

Next, we will create and deploy Form.io PDF Server

Enter or select the following:

Enter the environment variables.

  • For the MONGO variable, copy and paste the connection string from the database configuration. But modify the string to include the name of the database. In our case, our database name is formio.

  • For the FORMIO_S3 variables, enter the information from the Google Storage account created earlier. See below:

SettingDescriptionExample

DEBUG

Application Logging Settings.

*.*

MONGO

The MongoDB connection string to connect to your remote database. This is the value we copied before.

mongodb+srv://formio:PASSWORD@formio.s8hvqhf.mongodb.net/formio?retryWrites=true&w=majority&appName=formio

LICENSE_KEY

The license key for your deployment. You will get this when you upgrade a project to Enterprise.

<—YOUR LICENSE—>

FORMIO_S3_SERVER

http://storage.googleapis.com

FORMIO_S3_BUCKET

formio-pdf-server

FORMIO_S3_KEY

GOOGAUMK5DAG72QXAFCIGJ3Q

FORMIO_S3_SECRET

yskmS+qhoEz0Km+9vDw9pSOtjp+L+xjKfBQcZDNS

FORMIO_S3_REGION

us-central-1

Click the URL link to view the app. This should open a new tab and show the Form.io login screen.

Login using the username and password specified in the environment variables and begin creating a project.

Last updated