Configuration options
This page lists the Nexus server options that can be set in settings.json, an INI file, environment variables, or command-line arguments.
Nexus uses the ASP.NET Core configuration system. Nested configuration sections are written with : in JSON paths and with double underscores in environment variables.
For example, the JSON setting:
{
"Paths": {
"Config": "/var/lib/nexus/config"
}
}
is the same as this environment variable:
NEXUS_PATHS__CONFIG=/var/lib/nexus/config
Loading order
Configuration is loaded in this order. Later sources override earlier sources:
appsettings.jsonappsettings.{ASPNETCORE_ENVIRONMENT}.json- optional settings file selected by
NEXUS_PATHS__SETTINGS - environment variables prefixed with
NEXUS_ - command-line arguments
If NEXUS_PATHS__SETTINGS is not set, Nexus uses the platform-specific default settings file:
- Linux:
~/.local/share/nexus/settings.json - Windows:
%LOCALAPPDATA%/nexus/settings.json
This means that on a default Linux installation, users can put their settings.json at:
/home/<user>/.local/share/nexus/settings.json
On Windows, users can put their settings.json at:
%LOCALAPPDATA%\nexus\settings.json
The settings file can be JSON or INI. The file extension decides which parser is used.
Environment variable naming
Use these rules:
- prefix Nexus options with
NEXUS_, - replace
:with__for nested sections, - use the same option names as in JSON.
Examples:
NEXUS_GENERAL__APPLICATIONNAME="Production Nexus"
NEXUS_PATHS__CONFIG=/var/lib/nexus/config
NEXUS_DATA__VISUALIZATION__ENABLESERVERSIDEDECIMATION=true
NEXUS_GIT__REMOTEURL=https://example.invalid/nexus-config.git
NEXUS_SECURITY__ADMINISTRATORGROUP=nexus-admins
Example settings.json
{
"General": {
"ApplicationName": "Production Nexus",
"HelpLink": "https://example.org/nexus-help",
"DisableSampleCatalog": true
},
"Paths": {
"Config": "/var/lib/nexus/config",
"Cache": "/var/cache/nexus",
"Catalogs": "/var/lib/nexus/catalogs",
"Artifacts": "/var/lib/nexus/artifacts",
"Packages": "/var/lib/nexus/packages"
},
"Data": {
"TotalBufferMemoryConsumption": 1073741824,
"AggregationNaNThreshold": 0.99,
"Visualization": {
"EnableServerSideDecimation": true,
"MaxConcurrentReads": 8,
"MaxComputeWorkers": 2,
"MaxConcurrentRequests": 4,
"MaxAggregatePoints": 262144,
"MaxDatasetCacheBytes": 1073741824,
"MaxTotalCacheBytes": 1073741824,
"CacheTtl": "00:10:00"
}
},
"Git": {
"Branch": "main",
"CommitThrottleSeconds": 300,
"RemoteUrl": "https://example.invalid/nexus-config.git",
"CommitAuthorName": "Nexus",
"CommitAuthorEmail": "nexus@localhost"
},
"Security": {
"UserHeader": "X-Forwarded-User",
"NameHeader": "X-Forwarded-Preferred-Username",
"GroupsHeader": "X-Forwarded-Groups",
"AdministratorGroup": "admins"
}
}
General
Options under General control basic UI and sample-catalog behavior.
| JSON path | Environment variable | Type | Default | Description |
|---|---|---|---|---|
General:ApplicationName |
NEXUS_GENERAL__APPLICATIONNAME |
string | empty | Optional application name shown by the server/UI. |
General:HelpLink |
NEXUS_GENERAL__HELPLINK |
string | empty | Optional help/documentation link exposed by the server/UI. |
General:DisableSampleCatalog |
NEXUS_GENERAL__DISABLESAMPLECATALOG |
boolean | false |
Disables the built-in sample catalog. |
Paths
Options under Paths control where Nexus stores configuration, caches, catalog attachments, export artifacts, and restored extension packages.
The defaults are based on a platform-specific Nexus root:
- Linux root:
~/.local/share/nexus - Windows root:
%LOCALAPPDATA%/nexus
| JSON path | Environment variable | Type | Default | Description |
|---|---|---|---|---|
Paths:Config |
NEXUS_PATHS__CONFIG |
string | {root}/config |
Administrative configuration directory. This is the directory tracked by Git history. |
Paths:Cache |
NEXUS_PATHS__CACHE |
string | {root}/cache |
Cache directory. |
Paths:Catalogs |
NEXUS_PATHS__CATALOGS |
string | {root}/catalogs |
Directory for catalog-related stored files. |
Paths:Artifacts |
NEXUS_PATHS__ARTIFACTS |
string | {root}/artifacts |
Directory for generated export artifacts. |
Paths:Packages |
NEXUS_PATHS__PACKAGES |
string | {root}/packages |
Directory for restored extension packages. |
| special: settings file path | NEXUS_PATHS__SETTINGS |
string | platform default settings path | Selects the optional JSON or INI settings file loaded before environment variables. This is read before Paths is bound and is not stored as a normal Paths option. |
Data
Options under Data control data reading, aggregation, cache behavior, and visualization-related memory limits.
| JSON path | Environment variable | Type | Default | Description |
|---|---|---|---|---|
Data:CachePattern |
NEXUS_DATA__CACHEPATTERN |
string | empty | Optional cache pattern used by data/cache services. |
Data:TotalBufferMemoryConsumption |
NEXUS_DATA__TOTALBUFFERMEMORYCONSUMPTION |
integer bytes | 1073741824 |
Total buffer memory budget, default 1 GiB. |
Data:AggregationNaNThreshold |
NEXUS_DATA__AGGREGATIONNANTHRESHOLD |
number | 0.99 |
Threshold used when aggregating data with missing/invalid values. |
Data visualization
Options under Data:Visualization control server-side visualization decimation and its cache/scheduling limits.
| JSON path | Environment variable | Type | Default | Description |
|---|---|---|---|---|
Data:Visualization:EnableServerSideDecimation |
NEXUS_DATA__VISUALIZATION__ENABLESERVERSIDEDECIMATION |
boolean | false |
Enables server-side visualization decimation and exposes the UI option to use it. |
Data:Visualization:MaxConcurrentReads |
NEXUS_DATA__VISUALIZATION__MAXCONCURRENTREADS |
integer | 8 |
Maximum number of source-read workers used by one visualization scan. |
Data:Visualization:MaxComputeWorkers |
NEXUS_DATA__VISUALIZATION__MAXCOMPUTEWORKERS |
integer | 2 |
Maximum number of CPU workers used for summary reduction, parent construction, and view projection. |
Data:Visualization:MaxConcurrentRequests |
NEXUS_DATA__VISUALIZATION__MAXCONCURRENTREQUESTS |
integer | 4 |
Maximum number of visualization requests admitted concurrently. |
Data:Visualization:MaxAggregatePoints |
NEXUS_DATA__VISUALIZATION__MAXAGGREGATEPOINTS |
integer | 262144 |
Maximum total number of projected visualization points accepted across all views and resources in one request. |
Data:Visualization:MaxDatasetCacheBytes |
NEXUS_DATA__VISUALIZATION__MAXDATASETCACHEBYTES |
integer bytes | 1073741824 |
Maximum retained visualization cache bytes for one dataset, including summaries and raw detail. |
Data:Visualization:MaxTotalCacheBytes |
NEXUS_DATA__VISUALIZATION__MAXTOTALCACHEBYTES |
integer bytes | 1073741824 |
Maximum retained visualization cache bytes shared by all datasets in this server process. |
Data:Visualization:CacheTtl |
NEXUS_DATA__VISUALIZATION__CACHETTL |
duration | 00:10:00 |
Time after last use before a visualization cache entry is eligible for expiration. |
Durations are parsed by .NET. In JSON, use strings such as "00:10:00" for ten minutes or "1.00:00:00" for one day.
Git
Options under Git control Git-backed configuration history. See also Git-backed configuration history.
| JSON path | Environment variable | Type | Default | Description |
|---|---|---|---|---|
Git:Branch |
NEXUS_GIT__BRANCH |
string | main |
Branch used for the configuration repository. |
Git:CommitThrottleSeconds |
NEXUS_GIT__COMMITTHROTTLESECONDS |
integer seconds | 300 |
Delay used to group rapid configuration changes into one commit. |
Git:RemoteUrl |
NEXUS_GIT__REMOTEURL |
string | empty | Optional remote repository URL for pushing configuration history. |
Git:Username |
NEXUS_GIT__USERNAME |
string | empty | Optional username for remote authentication. |
Git:Token |
NEXUS_GIT__TOKEN |
string | empty | Optional token/password for remote authentication. Treat this as a secret. |
Git:SshPrivateKey |
NEXUS_GIT__SSHPRIVATEKEY |
string | empty | Optional SSH private key for remote authentication. Treat this as a secret. |
Git:CommitAuthorName |
NEXUS_GIT__COMMITAUTHORNAME |
string | Nexus |
Author name used for automatic commits. |
Git:CommitAuthorEmail |
NEXUS_GIT__COMMITAUTHOREMAIL |
string | nexus@localhost |
Author email used for automatic commits. |
Security
Options under Security define which reverse-proxy headers Nexus reads for user identity, groups, and catalog permissions.
| JSON path | Environment variable | Type | Default | Description |
|---|---|---|---|---|
Security:UserHeader |
NEXUS_SECURITY__USERHEADER |
string | X-Forwarded-User |
Header containing the authenticated user identifier. |
Security:NameHeader |
NEXUS_SECURITY__NAMEHEADER |
string | X-Forwarded-Preferred-Username |
Header containing the display/preferred user name. |
Security:GroupsHeader |
NEXUS_SECURITY__GROUPSHEADER |
string | X-Forwarded-Groups |
Header containing user groups. |
Security:AdministratorGroup |
NEXUS_SECURITY__ADMINISTRATORGROUP |
string | admins |
Group whose members receive administrator permissions. |
Security:EnabledCatalogsPattern |
NEXUS_SECURITY__ENABLEDCATALOGSPATTERN |
string | empty | Default enabled-catalogs pattern. Empty means all catalogs. |
Security:EnabledCatalogsPatternHeader |
NEXUS_SECURITY__ENABLEDCATALOGSPATTERNHEADER |
string | X-Forwarded-EnabledCatalogsPattern |
Header that can provide the enabled-catalogs pattern for a request. |
Security:CanReadCatalogHeader |
NEXUS_SECURITY__CANREADCATALOGHEADER |
string | X-Forwarded-CanReadCatalog |
Header used for per-catalog read permissions. |
Security:CanWriteCatalogHeader |
NEXUS_SECURITY__CANWRITECATALOGHEADER |
string | X-Forwarded-CanWriteCatalog |
Header used for per-catalog write permissions. |
Security:CanReadCatalogGroupHeader |
NEXUS_SECURITY__CANREADCATALOGGROUPHEADER |
string | X-Forwarded-CanReadCatalogGroup |
Header used for group-based catalog read permissions. |
Security:CanWriteCatalogGroupHeader |
NEXUS_SECURITY__CANWRITECATALOGGROUPHEADER |
string | X-Forwarded-CanWriteCatalogGroup |
Header used for group-based catalog write permissions. |
Security:LogoutUrl |
NEXUS_SECURITY__LOGOUTURL |
string | empty | Optional logout URL used by the UI. |
Other application configuration
The same configuration system also sees standard ASP.NET Core and Serilog settings, such as AllowedHosts and Serilog. Those settings are not Nexus-specific options, but they can be provided in the same files or through environment variables according to the normal ASP.NET Core rules.