The installation wizard
The first time GrandNode starts without a database, every request is redirected to /install. The installation wizard is a single page: you fill it in once, press Install, and GrandNode creates the database, the administrator account, the default store and — if you want — a complete demo shop. This article goes through every field.
Before you start
- MongoDB is running and reachable from the application (see System requirements).
- You know the server address, and the user name and password if your MongoDB requires authentication — or you have a full connection string, for example from MongoDB Atlas.
- The database you will name is empty or does not exist yet. The wizard stops with “This database already exists and has GrandNode installed on it. Choose different database.” otherwise.
The page, top to bottom
The page is titled grandnode installation. In the top right corner there is a language selector: it changes the language of the wizard itself (English and Polish are shipped; the browser language is picked by default). It does not decide the languages of your store.
Company information
| Field | What it does |
|---|---|
| Company name | Saved on the default store as the company name, used on invoices and in emails. Optional. |
| Company address | Saved on the default store. Optional. |
| Company phone number | Saved on the default store. Optional. |
| Company email | Saved on the default store. Optional. |
All four can be changed later under Configuration → Stores.
Store information
| Field | What it does |
|---|---|
| Admin user email | The email of the first administrator; you sign in with it. Prefilled with admin@yourstore.com — change it to a real address. Required, must be a valid email. |
| Admin user password | The administrator's password. Required. |
| Confirm the password | Must match the password, otherwise the wizard shows “Passwords must be equals”. |
Data provider
Choose MongoDB (the default), CosmosDB, DocumentDB or LiteDB. Choosing CosmosDB or DocumentDB switches the form to the connection string field, because those services are reached with a connection string. LiteDB needs no connection details, but it works only when Database:UseLiteDb is set to true in App_Data/appsettings.json; the database file is then the one named in Database:LiteDbConnectionString. Mixing them up is caught: installing MongoDB while UseLiteDb is on (or LiteDB while it is off) stops with a message telling you which setting to change.
Create sample data
Tick Create sample data to install a demo shop: categories, brands, collections, products with pictures and attributes, a vendor, warehouses, pickup points, discounts, blog posts, news, knowledgebase articles, checkout attributes, affiliates and order tags. With sample data the storefront uses the Nordic theme; without it the Default theme and an empty catalog. Sample data is ideal for evaluation and training. For a production store leave it unticked — removing hundreds of demo products later is more work than adding your own.
Some things are installed in both cases: the store, English language, currencies (US Dollar is primary, Euro is published, several more unpublished), countries and states, measures, tax categories, the shipping methods Ground, Next Day Air and 2nd Day Air, message templates, a sample email account, landing pages, layouts, schedule tasks, merchandise return reasons, order statuses and permissions.
Database information
| Field | What it does |
|---|---|
| MongoDB Server name | Host name and optional port, for example localhost, localhost:27017 or mongo in the Docker setup. Required. |
| Database name | The database GrandNode creates and uses, for example grandnode. Required. |
| Collation | The language rules MongoDB uses to compare and sort text (see below). |
| MongoDB Server Username | Only when your server requires authentication. |
| MongoDB Server Password | Only when your server requires authentication. |
Instead of the separate fields you can tick Connection string and paste a full MongoDB connection string, for example mongodb+srv://user:password@cluster0.abc.mongodb.net/grandnode?retryWrites=true&w=majority. Include the database name in the connection string.
Collation
The collation list contains over a hundred languages plus -None-. When you pick one, GrandNode creates every collection with that MongoDB collation, so names are compared and sorted by the rules of that language (accented letters, alphabetical order). The entry matching the wizard's language is preselected. Pick the main language of your catalog; choose -None- to keep MongoDB's default binary comparison. The collation is fixed when the collections are created, so decide before you install.
Installing
- Fill in the fields and press Install. An overlay with “Installing grandnode...” appears; with sample data this takes a minute or two.
- If something is wrong — the server cannot be reached, a required field is empty, the database already holds GrandNode — the page comes back with the error at the top. Fix it and press Install again.
- On success the page shows “Application has been installed successfully. Please restart the application.” Restart the application (stop and start the process,
docker restart, or restart the service). - Open the store address. The storefront appears; the Admin panel is at
/admin.
During installation GrandNode writes the database connection to App_Data/Settings.cfg (unless you supplied it in appsettings.json) and installs every plugin present in the Plugins folder. The default store is named “Your store name” and its URL is taken from the address you used to open the wizard.
The Restart installation button clears the wizard's cached values by stopping the application; your hosting (IIS, systemd, Docker with a restart policy) starts it again.
After installation
- The success message recommends switching the installer off: set
"Grand.Module.Installer": falseunderFeatureManagementinApp_Data/appsettings.json. An installed site already redirects/installto the home page, but a module that is not loaded cannot be misused. - Back up
App_Data/Settings.cfgtogether with your database. - To install again from scratch, delete
Settings.cfg, restart, and use a new database name.
Related
Question not answered here? Ask the community on GitHub Discussions ↗