System requirements
GrandNode is a single ASP.NET Core application with a MongoDB database. It runs on Windows, Linux and macOS, on a developer laptop, a virtual machine, a container platform or a managed cloud service. This article lists what you need for each way of running it, so you can prepare the machine before you install.
Summary
| Component | Version | Needed for |
|---|---|---|
| .NET SDK | 10.0 — the exact SDK is pinned in global.json (currently 10.0.301, later 10.0.3xx patches also work) | Building from source or from the release package |
| ASP.NET Core Runtime | 10.0 | Running a published build (the SDK includes it) |
| MongoDB | 4.0 or newer | The database. A local server, a Docker container or a MongoDB Atlas cluster |
| Docker | Any current version | Only if you install with the Docker image |
| Node.js + npm | 20 LTS or newer (20.19+ for the admin panels) | Only when you change the storefront or panel frontend sources |
| IDE | Visual Studio, JetBrains Rider or VS Code with .NET 10 support | Optional, for development |
.NET
GrandNode targets .NET 10. To build it you need the .NET 10 SDK. The repository contains a global.json file that pins the SDK version with rollForward: latestPatch: any patch of the same feature band is accepted, an older one is not. If dotnet build reports that the requested SDK was not found, install the version named in global.json from the .NET download page.
A server that only runs a build you published elsewhere needs just the ASP.NET Core 10 runtime. The official Docker image already contains it.
MongoDB
MongoDB 4.0 or newer is required. The installation wizard accepts either a server name with a database name (and optional user name and password) or a full connection string, so all of these work:
- a MongoDB Community server on the same machine (
localhost:27017); - the
mongoDocker image; - MongoDB Atlas or another hosted MongoDB, using a
mongodb+srv://connection string.
The wizard also lists Azure Cosmos DB and Amazon DocumentDB as data providers; both are used through their MongoDB-compatible APIs and a connection string. For very small or test setups GrandNode can also run on LiteDB, an embedded file database — this requires setting Database:UseLiteDb to true in App_Data/appsettings.json before installing. MongoDB is the recommended choice for anything that goes live.
Create a separate database for each installation. The wizard refuses to install into a database that already contains GrandNode.
Operating system and hosting
- Windows — run with Kestrel directly or behind IIS.
- Linux — run as a systemd service behind nginx (or another reverse proxy). When a proxy terminates HTTPS, set
Security:UseForwardedHeaderstotrueinappsettings.jsonso GrandNode sees the original scheme and host. - Containers — the
grandnode/grandnode2image listens on port 8080 and keeps uploaded images andApp_Datain volumes.
The application process needs write access to App_Data (it writes Settings.cfg with the database connection during installation), wwwroot (uploaded images) and Plugins (uploaded plugins).
Hardware
There is no fixed minimum; a small store with a few thousand products runs comfortably on 2 CPU cores and 2–4 GB of RAM for the application, with MongoDB on the same machine or separately. Give MongoDB its own resources as the catalog and order history grow. Several application instances can share one database; for that, GrandNode can synchronise its memory cache through Redis (the Redis section in appsettings.json).
Node.js — only for frontend work
The built JavaScript and CSS bundles of the storefront and the panels are committed to the repository. You do not need Node.js to build, run or deploy GrandNode. You need it only if you change files under src/Web/Grand.Web/vueapp, the theme stylesheets or the admin frontend sources, and then you must rebuild the bundles with npm run build.
Related
Question not answered here? Ask the community on GitHub Discussions ↗