Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
54 commits
Select commit Hold shift + click to select a range
80372ff
Add files via upload
HuguesDePayens Oct 17, 2025
2285720
renowngame.ini
HuguesDePayens Mar 26, 2026
5984a06
renownconfig.json
HuguesDePayens Mar 26, 2026
09a4889
renownconfig.json
HuguesDePayens Mar 27, 2026
907532f
renowngame.ini
HuguesDePayens Mar 27, 2026
62e034c
renownconfig.json
HuguesDePayens Mar 27, 2026
32390c9
renownconfig.json
HuguesDePayens Mar 27, 2026
308e863
Merge branch 'CubeCoders:main' into main
HuguesDePayens Apr 18, 2026
048a98d
Revert kvp changes and JSON spacing
IceOfWraith Aug 4, 2026
b096873
More space reverting
IceOfWraith Aug 4, 2026
1391c7f
Remove AI comments
IceOfWraith Aug 4, 2026
74a3f26
Match Wiki settings
IceOfWraith Aug 4, 2026
231d729
Further cleanup
IceOfWraith Aug 4, 2026
d997f55
Merge branch 'CubeCoders:main' into main
HuguesDePayens Aug 7, 2026
94bd6d0
Add files via upload
HuguesDePayens Aug 7, 2026
b59918d
Add files via upload
HuguesDePayens Aug 7, 2026
58f85e2
Add files via upload
HuguesDePayens Aug 7, 2026
c9e6aab
Add files via upload
HuguesDePayens Aug 8, 2026
95fcac3
Add files via upload
HuguesDePayens Aug 8, 2026
896d610
Add files via upload
HuguesDePayens Aug 11, 2026
5173ae5
Delete nimbus-proxystart.json
HuguesDePayens Aug 11, 2026
9e520cd
Add files via upload
HuguesDePayens Aug 11, 2026
ef762e5
Delete nimbus-proxymetaconfig.json
HuguesDePayens Aug 11, 2026
77aaf40
Delete nimbus-registrymetaconfig.json
HuguesDePayens Aug 11, 2026
4b121ec
Delete vintage-story-stratumstart.json
HuguesDePayens Aug 11, 2026
ba070c0
Add files via upload
HuguesDePayens Aug 11, 2026
8e67f93
Add files via upload
HuguesDePayens Aug 11, 2026
c77a569
Add files via upload
HuguesDePayens Aug 11, 2026
2239e7c
Add files via upload
HuguesDePayens Aug 12, 2026
b35feae
Add files via upload
HuguesDePayens Aug 13, 2026
10e69f0
Add files via upload
HuguesDePayens Aug 13, 2026
abc90d3
Delete stratum-nimbus.kvp
HuguesDePayens Aug 13, 2026
0921acd
Delete stratum-nimbusports.json
HuguesDePayens Aug 13, 2026
7ec300f
Delete stratum-nimbusconfig.json
HuguesDePayens Aug 13, 2026
e1e621c
Delete stratum-nimbusupdates.json
HuguesDePayens Aug 13, 2026
ed75cf5
Delete stratum-nimbusmetaconfig.json
HuguesDePayens Aug 13, 2026
5cde06c
Delete stratum-nimbus.kvp
HuguesDePayens Aug 13, 2026
2bd38c2
Delete stratum-nimbusports.json
HuguesDePayens Aug 13, 2026
0b58b9a
Delete stratum-nimbusconfig.json
HuguesDePayens Aug 13, 2026
19ede49
Delete stratum-nimbusupdates.json
HuguesDePayens Aug 13, 2026
47625ab
Delete stratum-nimbusmetaconfig.json
HuguesDePayens Aug 13, 2026
58e0c03
Delete vintage-story-stratumstart.json
HuguesDePayens Aug 13, 2026
8b5281d
Merge pull request #1 from HuguesDePayens/dev
HuguesDePayens Aug 15, 2026
8a4a4b8
Merge branch 'CubeCoders:main' into main
HuguesDePayens Aug 15, 2026
53e03da
Delete renown.kvp
HuguesDePayens Aug 16, 2026
c498115
Delete renownconfig.json
HuguesDePayens Aug 16, 2026
a337839
Delete renowngame.ini
HuguesDePayens Aug 16, 2026
583cbf7
Delete renownengine.ini
HuguesDePayens Aug 16, 2026
3b0d47c
Delete renownports.json
HuguesDePayens Aug 16, 2026
f708b50
Delete renownupdates.json
HuguesDePayens Aug 16, 2026
5b6922d
Delete renownmetaconfig.json
HuguesDePayens Aug 16, 2026
6980635
Delete renowngameusersettings.ini
HuguesDePayens Aug 16, 2026
1c14287
Add files via upload
HuguesDePayens Aug 16, 2026
a836e10
Add files via upload
HuguesDePayens Aug 18, 2026
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
96 changes: 96 additions & 0 deletions nimbus-proxy.kvp
Original file line number Diff line number Diff line change
@@ -0,0 +1,96 @@
Meta.DisplayName=Nimbus Proxy
Meta.Description=Player-facing Nimbus proxy with an embedded Registry by default
Meta.OS=Windows, Linux
Meta.AarchSupport=None
Meta.Arch=x86_64
Meta.Author=HuguesDePayens
Meta.URL=https://github.com/StratumServer/Nimbus
Meta.DisplayImageSource=url:https://wiki.vintagestory.at/images/thumb/8/8a/Gamelogo-vintagestory.png/340px-Gamelogo-vintagestory.png
Meta.EndpointURIFormat=
Meta.ConfigManifest=nimbus-proxyconfig.json
Meta.MetaConfigManifest=
Meta.ConfigRoot=nimbus-proxy.kvp
Meta.MinAMPVersion=2.4.6.0
Meta.SpecificDockerImage=cubecoders/ampbase:debian
Meta.DockerRequired=False
Meta.ContainerPolicy=Supported
Meta.ExtraContainerPackages=["jq","unzip","curl","ca-certificates"]
Meta.Prerequisites=[]
Meta.ConfigReleaseState=NotSpecified
Meta.NoCommercialUsage=False
Meta.ConfigVersion=1
Meta.AppConfigId=6ce2a583-1448-46f5-9f9d-b505d5eab311
Meta.AppIsMultiIPAware=True
Meta.ResourceUsageInfo=Lightweight network service; size the backend servers separately
Meta.ImportableExtensions=[]
App.DisplayName=Nimbus Proxy
App.RootDir=./nimbus/
App.BaseDirectory=./nimbus/
App.ExecutableLinux=dotnet/dotnet
App.ExecutableWin=dotnet\dotnet.exe
App.WorkingDir=Nimbus
App.LinuxCommandLineArgs="{{$FullRootDir}}Nimbus/Nimbus.Proxy.dll"
App.WindowsCommandLineArgs="{{$FullRootDir}}Nimbus\Nimbus.Proxy.dll"
App.CommandLineArgs={{$PlatformArgs}}
App.UseLinuxIOREDIR=False
App.AppSettings={}
App.EnvironmentVariables={"DOTNET_ROOT":"{{$FullRootDir}}dotnet","DOTNET_CLI_TELEMETRY_OPTOUT":"1","DOTNET_NOLOGO":"1"}
App.CommandLineParameterFormat={0} {1}
App.CommandLineParameterDelimiter=
App.ExitMethod=OS_CLOSE
App.ExitTimeout=30
App.ExitString=
App.ExitFile=
App.HasWriteableConsole=False
App.HasReadableConsole=True
App.SupportsLiveSettingsChanges=False
App.LiveSettingChangeCommandFormat=
App.ApplicationIPBinding=0.0.0.0
App.Ports=@IncludeJson[nimbus-proxyports.json]
App.AdminPortRef=AdminPort
App.PrimaryApplicationPortRef=ServerPort
App.UniversalSleepApplicationUDPPortRef=ServerPort
App.UniversalSleepSteamQueryPortRef=ServerPort
App.MaxUsers={{$MaxUsers}}
App.UseRandomAdminPassword=False
App.RemoteAdminPassword=
App.AdminMethod=STDIO
App.AdminLoginTransform=None
App.RCONConnectDelaySeconds=5
App.RCONConnectRetrySeconds=5
App.RCONHeartbeatMinutes=0
App.RCONHeartbeatCommand=
App.TelnetLoginFormat={0}
App.PreStartStages=@IncludeJson[nimbus-proxystart.json]
App.UpdateSources=@IncludeJson[nimbus-proxyupdates.json]
App.Compatibility=None
App.SteamUpdateAnonymousLogin=True
App.SteamForceLoginPrompt=False
App.RapidStartup=False
App.SmartExcludeSupported=True
App.SmartExcludeExemptions=["*.toml","*.json","plugins/*"]
App.MonitorChildProcess=True
App.MonitorChildProcessWaitMs=100
App.MonitorChildProcessName=
App.SupportsUniversalSleep=False
App.WakeupMode=Any
App.ApplicationReadyMode=RegexMatch
App.StripANSIControlCodes=True
Console.FilterMatchRegex=
Console.FilterMatchReplacement=
Console.ThrowawayMessageRegex=
Console.AppReadyRegex=^[\d:]+ \[nimbus\] listening on .+ -> (?:pool of \d+ backend\(s\)|backend .+)$
Console.UserJoinRegex=
Console.UserLeaveRegex=
Console.UserChatRegex=
Console.UpdateAvailableRegex=
Console.MetricsRegex=
Console.SuppressLogAtStart=False
Console.ActivateLogRegex=
Console.UserActions={}
Limits.SleepMode=False
Limits.SleepOnStart=False
Limits.SleepDelayMinutes=5
Limits.DozeDelay=2
Limits.AutoRetryCount=2
Limits.SleepStartThresholdSeconds=25
20 changes: 20 additions & 0 deletions nimbus-proxyconfig.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,20 @@
[
{"DisplayName":"Player Port","Category":"Network:share","Subcategory":"Ports:dns:1","Description":"Public player-facing Vintage Story port.","Keywords":"player,port","FieldName":"$ServerPort","InputType":"number","Hidden":true,"ParamFieldName":"ServerPort","IncludeInCommandLine":false,"DefaultValue":"42420","MinValue":1,"MaxValue":65535,"EnumValues":{}},
{"DisplayName":"Registry Port","Category":"Network:share","Subcategory":"Ports:dns:1","Description":"Embedded Registry HTTP port used by backends.","Keywords":"registry,port","FieldName":"$RegistryPort","InputType":"number","Hidden":true,"ParamFieldName":"RegistryPort","IncludeInCommandLine":false,"DefaultValue":"8765","MinValue":1,"MaxValue":65535,"EnumValues":{}},
{"DisplayName":"Admin Port","Category":"Network:share","Subcategory":"Ports:dns:1","Description":"Loopback administration port.","Keywords":"admin,port","FieldName":"$AdminPort","InputType":"number","Hidden":true,"ParamFieldName":"AdminPort","IncludeInCommandLine":false,"DefaultValue":"42499","MinValue":1,"MaxValue":65535,"EnumValues":{}},
{"DisplayName":"Metrics Port","Category":"Network:share","Subcategory":"Ports:dns:1","Description":"Loopback metrics and status API port.","Keywords":"metrics,status,port","FieldName":"$MetricsPort","InputType":"number","Hidden":true,"ParamFieldName":"MetricsPort","IncludeInCommandLine":false,"DefaultValue":"42500","MinValue":1,"MaxValue":65535,"EnumValues":{}},
{"DisplayName":"Nimbus Release Tag","Category":"Updates:update","Subcategory":"Version:verified_user:1","Description":"Optional exact Nimbus release tag. Leave blank for the latest stable release.","Keywords":"nimbus,version","FieldName":"NimbusVersionTag","InputType":"text","ParamFieldName":"NimbusVersionTag","IncludeInCommandLine":false,"DefaultValue":"","Placeholder":"v0.5.0","EnumValues":{}},
{"DisplayName":"Backend Servers","Category":"Routing:swap_horiz","Subcategory":"Backends:dns:1","Description":"Semicolon-separated id=host:port map. Each ID must match that backend's Nimbus Server ID.","Keywords":"backend,servers,map","FieldName":"ProxyServers","InputType":"text","ParamFieldName":"ProxyServers","IncludeInCommandLine":false,"Required":true,"DefaultValue":"hub=127.0.0.1:42421","Placeholder":"hub=127.0.0.1:42421;survival=127.0.0.1:42422","EnumValues":{}},
{"DisplayName":"Try Order","Category":"Routing:swap_horiz","Subcategory":"Backends:dns:1","Description":"Comma-separated backend IDs tried for a new connection.","Keywords":"backend,order","FieldName":"ProxyTryList","InputType":"text","ParamFieldName":"ProxyTryList","IncludeInCommandLine":false,"Required":true,"DefaultValue":"hub","EnumValues":{}},
{"DisplayName":"Registry Mode","Category":"Registry:hub","Subcategory":"Topology:account_tree:1","Description":"Embedded is recommended for one Proxy. Remote uses the optional standalone Registry.","Keywords":"registry,mode","FieldName":"ProxyRegistryMode","InputType":"enum","ParamFieldName":"ProxyRegistryMode","IncludeInCommandLine":false,"DefaultValue":"embedded","EnumValues":{"embedded":"Embedded (recommended)","remote":"Remote standalone Registry"}},
{"DisplayName":"Embedded Registry Access","Category":"Registry:hub","Subcategory":"Topology:account_tree:1","Description":"Same host binds Registry to loopback. Other hosts exposes it on all instance interfaces.","Keywords":"registry,access","FieldName":"ProxyRegistryAccess","InputType":"enum","ParamFieldName":"ProxyRegistryAccess","IncludeInCommandLine":false,"DefaultValue":"same-host","EnumValues":{"same-host":"Backends on same host","other-hosts":"Backends on other hosts"}},
{"DisplayName":"Remote Registry URL","Category":"Registry:hub","Subcategory":"Topology:account_tree:1","Description":"Required only in remote mode, for example http://registry-host:8765.","Keywords":"registry,url","FieldName":"ProxyRegistryUrl","InputType":"text","ParamFieldName":"ProxyRegistryUrl","IncludeInCommandLine":false,"DefaultValue":"","Placeholder":"http://registry-host:8765","EnumValues":{}},
{"DisplayName":"Registry Shared Secret","Category":"Registry:hub","Subcategory":"Security:lock:2","Description":"Blank generates and then preserves a secret in embedded mode. Remote mode requires the standalone Registry secret.","Keywords":"registry,secret","FieldName":"ProxySharedSecret","InputType":"password","ParamFieldName":"ProxySharedSecret","IncludeInCommandLine":false,"DefaultValue":"","EnumValues":{}},
{"DisplayName":"Proxy ID","Category":"Registry:hub","Subcategory":"Topology:account_tree:1","Description":"Stable identifier for this Proxy in the Registry.","Keywords":"proxy,id","FieldName":"ProxyId","InputType":"text","ParamFieldName":"ProxyId","IncludeInCommandLine":false,"Required":true,"DefaultValue":"nimbus-proxy","EnumValues":{}},
{"DisplayName":"Network Name","Category":"Status:info","Subcategory":"Server List:list:1","Description":"Name returned by the Proxy status response.","Keywords":"status,name","FieldName":"ProxyStatusName","InputType":"text","ParamFieldName":"ProxyStatusName","IncludeInCommandLine":false,"DefaultValue":"Nimbus","EnumValues":{}},
{"DisplayName":"Network Message","Category":"Status:info","Subcategory":"Server List:list:1","Description":"Message returned by the Proxy status response.","Keywords":"status,motd","FieldName":"ProxyStatusMotd","InputType":"text","ParamFieldName":"ProxyStatusMotd","IncludeInCommandLine":false,"DefaultValue":"Vintage Story proxy","EnumValues":{}},
{"DisplayName":"Player Limit","Category":"Status:info","Subcategory":"Server List:list:1","Description":"Maximum player count reported by the Proxy.","Keywords":"players,limit","FieldName":"$MaxUsers","InputType":"number","ParamFieldName":"MaxUsers","IncludeInCommandLine":false,"DefaultValue":"100","MinValue":1,"MaxValue":65535,"EnumValues":{}},
{"DisplayName":"Network Whitelist","Category":"Access:lock","Subcategory":"Whitelist:verified_user:1","Description":"Require Registry-synchronized whitelist access across the network.","Keywords":"network,whitelist","FieldName":"ProxyWhitelistNetwork","InputType":"checkbox","ParamFieldName":"ProxyWhitelistNetwork","IncludeInCommandLine":false,"DefaultValue":"false","EnumValues":{"True":"true","False":"false"}},
{"DisplayName":"Whitelisted Backends","Category":"Access:lock","Subcategory":"Whitelist:verified_user:1","Description":"Optional comma-separated backend IDs subject to the network whitelist.","Keywords":"backend,whitelist","FieldName":"ProxyWhitelistServers","InputType":"text","ParamFieldName":"ProxyWhitelistServers","IncludeInCommandLine":false,"DefaultValue":"","EnumValues":{}},
{"DisplayName":"Verbose Logging","Category":"Logging:description","Subcategory":"Detail:manage_search:1","Description":"Enable extra Nimbus diagnostic messages. Packet sniffing and traffic-byte logs remain off.","Keywords":"verbose,logging","FieldName":"ProxyVerboseLogging","InputType":"checkbox","ParamFieldName":"ProxyVerboseLogging","IncludeInCommandLine":false,"DefaultValue":"false","EnumValues":{"True":"true","False":"false"}}
]
6 changes: 6 additions & 0 deletions nimbus-proxyports.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
[
{"Protocol":"Both","Name":"Player Port","Description":"Public Vintage Story port players connect to","Port":42420,"Ref":"ServerPort"},
{"Protocol":"TCP","Name":"Registry Port","Description":"Embedded Registry HTTP endpoint used by backends","Port":8765,"Ref":"RegistryPort"},
{"Protocol":"TCP","Name":"Admin Port","Description":"Loopback Nimbus administration endpoint","Port":42499,"Ref":"AdminPort"},
{"Protocol":"TCP","Name":"Metrics and Status Port","Description":"Loopback metrics and status endpoint","Port":42500,"Ref":"MetricsPort"}
]
18 changes: 18 additions & 0 deletions nimbus-proxystart.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,18 @@
[
{
"UpdateStageName":"Render Nimbus Proxy configuration",
"UpdateSourcePlatform":"Linux",
"UpdateSource":"Executable",
"UpdateSourceData":"/bin/bash",
"UpdateSourceArgs":"-c \"NP_BIND_ADDRESS='{{$ApplicationIPBinding}}' NP_SERVER_PORT='{{$ServerPort}}' NP_REGISTRY_PORT='{{$RegistryPort}}' NP_ADMIN_PORT='{{$AdminPort}}' NP_METRICS_PORT='{{$MetricsPort}}' NP_SERVERS='{{ProxyServers}}' NP_TRY='{{ProxyTryList}}' NP_REGISTRY_MODE='{{ProxyRegistryMode}}' NP_REGISTRY_ACCESS='{{ProxyRegistryAccess}}' NP_REGISTRY_URL='{{ProxyRegistryUrl}}' NP_SHARED_SECRET='{{ProxySharedSecret}}' NP_PROXY_ID='{{ProxyId}}' NP_STATUS_NAME='{{ProxyStatusName}}' NP_STATUS_MOTD='{{ProxyStatusMotd}}' NP_MAX_USERS='{{$MaxUsers}}' NP_WHITELIST_NETWORK='{{ProxyWhitelistNetwork}}' NP_WHITELIST_SERVERS='{{ProxyWhitelistServers}}' NP_VERBOSE='{{ProxyVerboseLogging}}' bash '{{$FullRootDir}}scripts/write-proxy-toml.sh' '{{$FullRootDir}}Nimbus/nimbus.proxy.toml'\"",
"SkipOnFailure":false
},
{
"UpdateStageName":"Render Nimbus Proxy configuration",
"UpdateSourcePlatform":"Windows",
"UpdateSource":"Executable",
"UpdateSourceData":"powershell.exe",
"UpdateSourceArgs":"-NoProfile -ExecutionPolicy Bypass -Command \"$env:NP_BIND_ADDRESS='{{$ApplicationIPBinding}}'; $env:NP_SERVER_PORT='{{$ServerPort}}'; $env:NP_REGISTRY_PORT='{{$RegistryPort}}'; $env:NP_ADMIN_PORT='{{$AdminPort}}'; $env:NP_METRICS_PORT='{{$MetricsPort}}'; $env:NP_SERVERS='{{ProxyServers}}'; $env:NP_TRY='{{ProxyTryList}}'; $env:NP_REGISTRY_MODE='{{ProxyRegistryMode}}'; $env:NP_REGISTRY_ACCESS='{{ProxyRegistryAccess}}'; $env:NP_REGISTRY_URL='{{ProxyRegistryUrl}}'; $env:NP_SHARED_SECRET='{{ProxySharedSecret}}'; $env:NP_PROXY_ID='{{ProxyId}}'; $env:NP_STATUS_NAME='{{ProxyStatusName}}'; $env:NP_STATUS_MOTD='{{ProxyStatusMotd}}'; $env:NP_MAX_USERS='{{$MaxUsers}}'; $env:NP_WHITELIST_NETWORK='{{ProxyWhitelistNetwork}}'; $env:NP_WHITELIST_SERVERS='{{ProxyWhitelistServers}}'; $env:NP_VERBOSE='{{ProxyVerboseLogging}}'; & '{{$FullRootDir}}scripts\\write-proxy-toml.ps1' '{{$FullRootDir}}Nimbus\\nimbus.proxy.toml'\"",
"SkipOnFailure":false
}
]
Loading