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.
Last updated
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.
Last updated
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.
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.
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:
NOTE: the FORMIO_S3_PORT variable is set to 9000 by default by the application. So in this example where we specify FORMIO_S3_SERVER to https://storage.googleapis.com, we need to set the FORMIO_S3_PORT environment variable to an empty value. See below:
Setting | Description | Example |
---|---|---|
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 | https://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 | |
FORMIO_S3_PORT |
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.