UmbHost.GreenStack.Umbraco.Configuration 1.1.0

Prefix Reserved
dotnet add package UmbHost.GreenStack.Umbraco.Configuration --version 1.1.0
                    
NuGet\Install-Package UmbHost.GreenStack.Umbraco.Configuration -Version 1.1.0
                    
This command is intended to be used within the Package Manager Console in Visual Studio, as it uses the NuGet module's version of Install-Package.
<PackageReference Include="UmbHost.GreenStack.Umbraco.Configuration" Version="1.1.0" />
                    
For projects that support PackageReference, copy this XML node into the project file to reference the package.
<PackageVersion Include="UmbHost.GreenStack.Umbraco.Configuration" Version="1.1.0" />
                    
Directory.Packages.props
<PackageReference Include="UmbHost.GreenStack.Umbraco.Configuration" />
                    
Project file
For projects that support Central Package Management (CPM), copy this XML node into the solution Directory.Packages.props file to version the package.
paket add UmbHost.GreenStack.Umbraco.Configuration --version 1.1.0
                    
#r "nuget: UmbHost.GreenStack.Umbraco.Configuration, 1.1.0"
                    
#r directive can be used in F# Interactive and Polyglot Notebooks. Copy this into the interactive tool or source code of the script to reference the package.
#:package UmbHost.GreenStack.Umbraco.Configuration@1.1.0
                    
#:package directive can be used in C# file-based apps starting in .NET 10 preview 4. Copy this into a .cs file before any lines of code to reference the package.
#addin nuget:?package=UmbHost.GreenStack.Umbraco.Configuration&version=1.1.0
                    
Install as a Cake Addin
#tool nuget:?package=UmbHost.GreenStack.Umbraco.Configuration&version=1.1.0
                    
Install as a Cake Tool

UmbHost GreenStack for Umbraco

Configures an Umbraco site to run correctly on UmbHost GreenStack. Install it and redeploy; there is nothing to call from Program.cs.

dotnet add package UmbHost.GreenStack.Umbraco.Configuration

Supports Umbraco 13 (.NET 8) and Umbraco 17 (.NET 10). NuGet picks the right build for your site.

When it applies

The package switches itself on inside a container (DOTNET_RUNNING_IN_CONTAINER=true, which the official .NET images set) and stays off when you run the site from your IDE. Force it either way with GreenStack__Enabled=true|false.

What it configures

What Why
Forwarded headers Trusts X-Forwarded-For / X-Forwarded-Proto from any peer, first in the pipeline TLS terminates at the Cloudflare edge; without this Umbraco sees plain HTTP and the wrong client IP
HTTPS health checks Disables the "HTTPS Configuration" and HSTS health checks HTTPS and HSTS are enforced at the edge, so the container can't pass them
HTTPS runtime validator Removes UseHttpsValidator Production runtime mode otherwise refuses to boot while Global:UseHttps is false (the Umbraco 13 default)
Data Protection Persists keys to /app/keys (not in Development) GreenStack mounts it on storage shared by every replica, so logins and antiforgery tokens survive redeploys and work on every replica
Single instance Global:DisableElectionForSingleServer = true on a single-replica service, unless you set it No server-role election when there is only one server
SignalR backplane (Umbraco 17) Uses the site's own SQL database as the SignalR backplane on a service with 2 or more replicas A load-balanced Umbraco 17 backoffice otherwise throws "No connection with that ID"
Server role (Umbraco 17) Makes every replica a SchedulingPublisher on a service with 2 or more replicas Under automatic election the other replicas become subscribers, which never save a published page's URL: the page routes until the next restart and then 404s. Umbraco's recurring jobs take a database lock, so every replica can run them
Isolated caches (Umbraco 17) LoadBalanceIsolatedCaches() on a service with 2 or more replicas Keeps the backoffice's repository caches in step between replicas
Temporary file uploads (Umbraco 17) Hosting:TemporaryFileUploadLocation = umbraco/Data/TemporaryFileUploads on a service with 2 or more replicas, unless you set it The default lives under umbraco/Data/TEMP, which is node-local on GreenStack, so an upload received by one replica can't be saved by another
Umbraco Forms views Copies Views/Partials/Forms to the publish output View precompilation doesn't carry them, so forms render blank
Razor sources CopyRazorGenerateFilesToPublishDirectory = true unless you set it Packages that resolve views from disk still find them
Build warning GREENSTACK001 Warns when RazorCompileOnBuild / RazorCompileOnPublish is false Production runtime mode needs precompiled views, otherwise every template 404s
Startup warnings Logs a warning when the site isn't in Production runtime mode, when an appsettings file sets something GreenStack injects (application URL, backoffice host, MainDom lock, Examine directory factory, connection string), disables election on a load-balanced site, or (Umbraco 17) runs a load-balanced replica in a role other than SchedulingPublisher Those values come from UmbPanel for each environment; a connection string in a file is a secret baked into your image

Every setting marked "unless you set it" only fills a gap: a value in your own configuration always wins.

Replicas

GreenStack tells the site how many replicas its service runs: UmbPanel sets GreenStack__Replicas from the Docker service on every deploy. Scaling in UmbPanel changes it, which restarts every replica with the new count, so they always agree on single-instance or load-balanced. You don't set it yourself.

Settings

All optional. Set them as environment variables on the service in UmbPanel.

Variable Default Meaning
GreenStack__Enabled on in a container Force the package on or off
GreenStack__DataProtectionKeysPath /app/keys Where Data Protection keys are stored

Set <GreenStackAllowRuntimeRazorCompilation>true</GreenStackAllowRuntimeRazorCompilation> in your .csproj to silence GREENSTACK001 if the site deliberately runs ModelsBuilder in InMemoryAuto mode outside Production runtime mode.

What it doesn't do

These stay in your project, and the GreenStack templates already contain them:

  • Production runtime mode, which GreenStack requires in every environment, staging included: Runtime:Mode = Production, ModelsBuilder:ModelsMode = Nothing (not None), Hosting:Debug = false. appsettings.Production.json is only loaded in Production, so set these where every environment reads them.
  • The Dockerfile: non-root user 1000, EXPOSE 8080, --locked-mode restore.
  • Versioned asset URLs (asp-append-version="true" or a Vite manifest). Cloudflare hard-caches static files and media.
  • Redirects: never redirect *.umbpanel.io (the health check uses it) and don't call UseHttpsRedirection().
  • Path casing: GreenStack runs Linux, so Views/Partials/Forms and views/partials/forms are different folders.

Leave UmbracoApplicationUrl, BackOfficeHost, MainDomLock, the Examine directory factory, the connection string and ASPNETCORE_ENVIRONMENT out of your configuration: GreenStack injects them.

Product Compatible and additional computed target framework versions.
.NET net8.0 is compatible.  net8.0-android was computed.  net8.0-browser was computed.  net8.0-ios was computed.  net8.0-maccatalyst was computed.  net8.0-macos was computed.  net8.0-tvos was computed.  net8.0-windows was computed.  net9.0 was computed.  net9.0-android was computed.  net9.0-browser was computed.  net9.0-ios was computed.  net9.0-maccatalyst was computed.  net9.0-macos was computed.  net9.0-tvos was computed.  net9.0-windows was computed.  net10.0 is compatible.  net10.0-android was computed.  net10.0-browser was computed.  net10.0-ios was computed.  net10.0-maccatalyst was computed.  net10.0-macos was computed.  net10.0-tvos was computed.  net10.0-windows was computed. 
Compatible target framework(s)
Included target framework(s) (in package)
Learn more about Target Frameworks and .NET Standard.

NuGet packages

This package is not used by any NuGet packages.

GitHub repositories

This package is not used by any popular GitHub repositories.

Version Downloads Last Updated
1.1.0 0 11/13/2026
1.0.0 78 11/9/2026