Install GlobalForms on a Windows server and run it as a Windows service. Setup downloads the current release, connects to MongoDB, creates the first administrator account and starts the service. You can run setup from the GlobalForms Installer, a settings window that also installs Node.js if needed, or from the command line.
This page applies to GlobalForms 10.7.1 and later. Installations of earlier versions used a different installer.
Never run production workloads over HTTP. A new installation answers over HTTP until you add a certificate. Configure HTTPS before anyone uses the server, and give users only the https:// address. See Configuring HTTPS.
Before you begin
-
Confirm the server meets the System Requirements.
-
Install Node.js 24 or later, or let the GlobalForms Installer install it for you. To check an existing installation, run
node --versionin a new Command Prompt. -
Install GlobalCapture first. GlobalForms uses the MongoDB server that GlobalCapture installs. Know that server's host name and port and, if used, the MongoDB username and password. GlobalForms creates its own database on it (
GlobalFormsby default). See System Requirements. -
Decide on the external URL users will use to reach GlobalForms, for example
https://forms.example.com. Users should always reach GlobalForms over HTTPS; see Configuring HTTPS. -
Sign in to the server with an account that has local administrator rights.
Install with the GlobalForms Installer (recommended)
The GlobalForms Installer runs the same setup as the command-line steps, from one settings window. It installs Node.js if it's missing or too old, checks your settings before anything is changed, and upgrades an existing installation in the same way.
Get the installer
Request the GlobalForms Installer from Square 9 Fulfillment at fulfillment@square-9.com. You receive a zip file containing Install-GlobalForms.cmd and Install-GlobalForms.ps1. Extract the whole zip to a folder on the server; both files must stay in the same folder.
Run the installer
-
Sign in to the server with a local administrator account and double-click Install-GlobalForms.cmd to start the install. Do not run
Install-GlobalForms.ps1yourself; the CMD file starts it with the right settings. When Windows asks whether to allow the app to make changes, select Yes. A command window opens and shows the progress. -
If Node.js 24 or later isn't installed, the installer offers to install the latest Node.js 24 from nodejs.org. Select Yes. It checks the download's SHA-256 checksum before installing it.
-
The installer checks that the server can reach
update.square9.cloud. If it can't, it stops before changing anything. -
In the Install GlobalForms window, enter the settings (see the table below) and select Install.
-
The installer checks your entries, then tries to reach the MongoDB host and port. If MongoDB can't be reached, it asks whether to continue anyway; setup fails if MongoDB is still unreachable.
-
It downloads the current installer and runs setup without prompts, using your settings. This takes a few minutes.
-
When setup finishes, the installer shows the status of the GlobalForms service and opens the Forms URL in your browser. Sign in with the admin username, not the email address.
-
Press any key to close the command window.
Settings
|
Setting |
What to enter |
Default |
|---|---|---|
|
Install folder |
The folder to install GlobalForms into. Select Browse to pick one. |
|
|
Forms URL |
The address users will use to reach GlobalForms, for example |
|
|
MongoDB Host, Port, Database |
Your MongoDB server, its port, and the database name for GlobalForms |
|
|
MongoDB Username, Password |
The MongoDB account, if authentication is enabled. Leave blank otherwise. |
(blank) |
|
Root admin Username |
The first GlobalForms administrator. Enter |
|
|
Root admin Email |
The administrator's email address. Required. |
(blank) |
|
Root admin Password, Confirm password |
At least 8 characters, with an uppercase letter, a lowercase letter, a number and one of |
(required) |
Select Show advanced settings for these:
|
Setting |
What to enter |
Default |
|---|---|---|
|
Mongo authSource |
The database that holds the MongoDB user |
|
|
Use TLS for MongoDB |
Select if your MongoDB server requires encrypted connections |
Off |
|
Windows service name |
The name of the GlobalForms Windows service |
|
|
SSL cert path, SSL key path, SSL cert password |
Optional. Your certificate and private key files for HTTPS. The files must exist. You can add these later; see Configuring HTTPS. |
(blank) |
|
Release channel |
|
|
No setting can start with -- or contain a double quote (").
Upgrade or reinstall with the installer
If the install folder already contains GlobalForms, the window says an existing installation was found, fills in its settings (Forms URL, MongoDB connection, service name, HTTPS certificate settings and release channel), and the button reads Upgrade. The installer replaces the program files and the GlobalForms service, and keeps your settings in config\local.json.
Enter the root admin username, email and password each time. If an administrator with that username already exists, its email and password are set to the values you enter.
Pre-fill the settings (optional)
To prepare the installer for a particular server, add a file named install-defaults.json to the installer folder. Any of these settings pre-fill the window: installPath, domain, mongoHost, mongoPort, mongoDb, mongoUser, mongoPassword, mongoAuthSource, mongoTls, adminName, adminEmail, serviceName, sslCertPath, sslKeyPath, sslCertPassword and channel.
{
"installPath": "C:\\GlobalForms",
"domain": "https://forms.example.com",
"mongoHost": "db-server",
"mongoPort": "27017",
"mongoDb": "GlobalForms",
"adminEmail": "admin@example.com"
}
Settings found in an existing installation take priority over this file.
If install-defaults.json contains a MongoDB or certificate password, delete the file once GlobalForms is installed.
Install from the command line
-
Open PowerShell as administrator (right-click PowerShell and select Run as administrator).
-
Go to a working folder, for example:
PowerShellmkdir C:\Temp\GlobalFormsSetup cd C:\Temp\GlobalFormsSetup -
Download the installer:
PowerShellInvoke-WebRequest "https://update.square9.cloud/globalforms/releases/bootstrap-installer.js" -OutFile ".\bootstrap-installer.js" -
Run the installer:
PowerShellnode .\bootstrap-installer.jsThe installer downloads the current Stable release and starts setup.
-
Answer the setup prompts. Press Enter to accept a default value.
Setup prompts
|
Prompt |
What to enter |
Default |
|---|---|---|
|
Install path |
The folder to install GlobalForms into |
|
|
External domain URL |
The address users will use to reach GlobalForms, for example |
|
|
Mongo host / port / database |
Your MongoDB server, port and the database name for GlobalForms |
|
|
Mongo username / password |
The MongoDB account, if authentication is enabled. Leave blank otherwise. |
(blank) |
|
Mongo authSource |
The database that holds the MongoDB user |
|
|
Enable Mongo TLS? |
Yes if your MongoDB server requires encrypted connections |
No |
|
Root admin name / email |
The first GlobalForms administrator account. Enter |
|
|
Root admin password |
At least 8 characters, with an uppercase letter, a lowercase letter, a number and a symbol |
(required) |
|
Windows service name / display name |
The name of the Windows service |
|
|
SSL cert path / key path / cert password |
Optional. Your certificate and private key files for HTTPS. You can add these later. |
(blank) |
|
Download NSSM automatically if missing? |
Yes. GlobalForms uses the NSSM service manager to run as a Windows service. |
Yes |
Setup checks the MongoDB connection, copies the files, installs required components, writes your settings to config\local.json, creates the administrator account and starts the GlobalForms service. When it finishes, it displays GlobalForms setup completed successfully.
Verify the installation
-
Confirm the service is running:
PowerShellsc.exe query GlobalFormsThe STATE should be
RUNNING. You can also check Services for GlobalForms Forms Server. -
On the server, open
http://localhost:3001/in a browser. Until HTTPS is configured, GlobalForms answers over HTTP on port 3001; once it is, users reach it at itshttps://address. See Configuring HTTPS. -
Sign in as
gfadminwith the password you entered during setup.
Install without prompts (unattended)
To install from a script, pass the settings as options and add --silent:
node .\bootstrap-installer.js `
--silent `
--installPath "C:\GlobalForms" `
--domain "https://forms.example.com" `
--mongoHost "db-server" `
--mongoPort 27017 `
--mongoDb "GlobalForms" `
--mongoUser "<MongoDB user>" `
--mongoPassword "<MongoDB password>" `
--mongoAuthSource "admin" `
--adminName "gfadmin" `
--adminEmail "admin@example.com" `
--adminPassword "<Admin password>" `
--sslCertPath "C:\GlobalForms\ssl\forms.example.com.crt" `
--sslKeyPath "C:\GlobalForms\ssl\forms.example.com.key" `
--downloadNssm true
|
Option |
Purpose |
|---|---|
|
|
Run without prompts. Any option you leave out uses its default. |
|
|
Same as the matching setup prompts |
|
|
Required in silent mode to install over an existing installation |
|
|
Required in silent mode to replace an existing GlobalForms service |
|
|
Install the latest Canary (early access) release instead of Stable |
If you leave out --adminPassword in silent mode, setup generates a strong password and saves it to generated_password.txt in the install folder. Sign in, change the password, then delete that file.
Reinstalling over an existing installation
If setup finds GlobalForms already installed in the chosen folder, it loads the existing settings as defaults and asks before it overwrites files. Your existing settings are kept in config\local.json. If a GlobalForms service already exists, setup asks whether to replace it.
What gets installed
|
Location (in the install folder) |
Contents |
|---|---|
|
|
Your server settings. See Configuration Files. |
|
|
Service and update logs, including |
|
|
Default location for HTTPS certificate files |
|
|
Uploaded file attachments |
|
|
Copies of the previous version, kept by automatic updates |
|
|
A record of the installed version and settings (no passwords) |
The GlobalForms Windows service starts automatically when the server starts.
Troubleshooting
|
Message or symptom |
Cause and fix |
|---|---|
|
|
An older Node.js version is installed. Install Node.js 24 or later, open a new PowerShell window and run setup again. |
|
|
Node.js is not on the |
|
Setup fails while contacting |
The server cannot reach the update site. Allow outbound HTTPS to |
|
Setup fails while connecting to MongoDB |
Check the host, port, credentials and authSource, and that a firewall is not blocking the MongoDB port. |
|
|
Enter an administrator password that meets the rules shown. |
|
|
Add |
|
|
Add |
|
The service is running but the page does not load |
Check |
GlobalForms Installer messages
|
Message |
Cause and fix |
|---|---|
|
|
The server can't reach the update site. Allow outbound HTTPS to |
|
|
Close the command window and run the installer again. |
|
|
You declined the Node.js installation. Install Node.js 24 or later, or run the installer again and select Yes. |
|
|
Check that MongoDB is running, that the host and port are correct, and that no firewall blocks the port. |
|
|
Enter a password that meets the rules shown under the password field. |
|
|
The certificate or key file path is wrong. Correct it, or clear both fields and configure HTTPS later. |
|
|
Setup failed. The messages above it in the command window say why. Check |