Astroneer: add Linux support (#446)

This commit is contained in:
Greelan 2023-08-22 08:38:57 +10:00 committed by GitHub
parent f6c4f91209
commit 93f1f87dde
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
4 changed files with 246 additions and 216 deletions

View File

@ -1,6 +1,6 @@
Meta.DisplayName=Astroneer Meta.DisplayName=Astroneer
Meta.Description=Astroneer Dedicated Server Meta.Description=Astroneer Dedicated Server
Meta.OS=Windows Meta.OS=Windows, Linux
Meta.AarchSupport=Unknown Meta.AarchSupport=Unknown
Meta.Arch=x86_64 Meta.Arch=x86_64
Meta.Author=Greelan, Tueem Meta.Author=Greelan, Tueem
@ -11,11 +11,11 @@ Meta.ConfigManifest=astroneerconfig.json
Meta.MetaConfigManifest=astroneermetaconfig.json Meta.MetaConfigManifest=astroneermetaconfig.json
Meta.ConfigRoot=astroneer.kvp Meta.ConfigRoot=astroneer.kvp
Meta.MinAMPVersion=2.3.2.0 Meta.MinAMPVersion=2.3.2.0
Meta.SpecificDockerImage= Meta.SpecificDockerImage=cubecoders/ampbase:wine
Meta.DockerRequired=False Meta.DockerRequired=False
Meta.DockerBaseReadOnly=False Meta.DockerBaseReadOnly=False
Meta.ContainerPolicy=NotSupported Meta.ContainerPolicy=SupportedOnWindows, RecommendedOnLinux
Meta.ContainerPolicyReason=Astroneer can currently only run under Wine/Proton on Linux (and therefore in Docker), but to do so requires disabling of encryption on server and clients. The AMP template is therefore not configured for Linux. Meta.ContainerPolicyReason=Astroneer requires Wine to run on Linux. Using a container avoids the need to install this dependency on the host.
Meta.ExtraSetupStepsURI= Meta.ExtraSetupStepsURI=
Meta.Prerequsites=[] Meta.Prerequsites=[]
Meta.ExtraContainerPackages=[] Meta.ExtraContainerPackages=[]
@ -29,14 +29,14 @@ App.RootDir=./astroneer/
App.BaseDirectory=./astroneer/728470/ App.BaseDirectory=./astroneer/728470/
App.SteamWorkshopDownloadLocation= App.SteamWorkshopDownloadLocation=
App.ExecutableWin=728470/Astro/Binaries/Win64/AstroServer-Win64-Shipping.exe App.ExecutableWin=728470/Astro/Binaries/Win64/AstroServer-Win64-Shipping.exe
App.ExecutableLinux= App.ExecutableLinux=/usr/bin/wine
App.WorkingDir=728470/Astro/Binaries/Win64 App.WorkingDir=728470/Astro/Binaries/Win64
App.LinuxCommandLineArgs= App.LinuxCommandLineArgs="./AstroServer-Win64-Shipping.exe" -ini:Engine:[SystemSettings]:net.AllowEncryption=False
App.WindowsCommandLineArgs= App.WindowsCommandLineArgs=
App.CommandLineArgs={{$PlatformArgs}} Port={{$ApplicationPort1}} ConsolePort={{$RemoteAdminPort}} {{$FormattedArgs}} -log App.CommandLineArgs={{$PlatformArgs}} Port={{$ApplicationPort1}} ConsolePort={{$RemoteAdminPort}} {{$FormattedArgs}} -log
App.UseLinuxIOREDIR=False App.UseLinuxIOREDIR=False
App.AppSettings={} App.AppSettings={}
App.EnvironmentVariables={"LD_LIBRARY_PATH":"{{$FullBaseDir}}linux64:%LD_LIBRARY_PATH%","SteamAppId":"361420"} App.EnvironmentVariables={"LD_LIBRARY_PATH":"{{$FullBaseDir}}linux64:%LD_LIBRARY_PATH%","SteamAppId":"361420","WINEPREFIX":"{{$FullRootDir}}.wine","WINEARCH":"win64","WINEDEBUG":"-all"}
App.CommandLineParameterFormat=-{0}={1} App.CommandLineParameterFormat=-{0}={1}
App.CommandLineParameterDelimiter= App.CommandLineParameterDelimiter=
App.ExitMethod=OS_CLOSE App.ExitMethod=OS_CLOSE
@ -65,7 +65,7 @@ App.RCONConnectRetrySeconds=5
App.RCONHeartbeatMinutes=0 App.RCONHeartbeatMinutes=0
App.RCONHeartbeatCommand=ping App.RCONHeartbeatCommand=ping
App.TelnetLoginFormat={0} App.TelnetLoginFormat={0}
App.UpdateSources=[{"UpdateStageName":"SteamCMD Download","UpdateSourcePlatform":"All","UpdateSource":"SteamCMD","UpdateSourceData":"728470","UpdateSourceArgs":"361420","ForceDownloadPlatform":"Windows"}] App.UpdateSources=@IncludeJson[astroneerupdates.json]
App.PreStartStages=[] App.PreStartStages=[]
App.ForceUpdate=False App.ForceUpdate=False
App.ForceUpdateReason= App.ForceUpdateReason=
@ -73,10 +73,10 @@ App.Compatibility=None
App.SteamUpdateAnonymousLogin=True App.SteamUpdateAnonymousLogin=True
App.SteamForceLoginPrompt=False App.SteamForceLoginPrompt=False
App.RapidStartup=False App.RapidStartup=False
App.MonitorChildProcess=False App.MonitorChildProcess=True
App.DumpFullChildProcessTree=False App.DumpFullChildProcessTree=False
App.MonitorChildProcessWaitMs=100 App.MonitorChildProcessWaitMs=100
App.MonitorChildProcessName= App.MonitorChildProcessName=wine64
App.SupportsUniversalSleep=False App.SupportsUniversalSleep=False
App.WakeupMode=Any App.WakeupMode=Any
App.ApplicationReadyMode=Immediate App.ApplicationReadyMode=Immediate

View File

@ -1,186 +1,199 @@
[ [
{ {
"DisplayName":"Public IP", "DisplayName":"Public IP",
"Category":"Server Settings", "Category":"Server Settings",
"Description":"", "Description":"",
"Keywords":"", "Keywords":"",
"FieldName":"$ExternalIP", "FieldName":"$ExternalIP",
"InputType":"text", "InputType":"text",
"Hidden":true, "Hidden":true,
"IsFlagArgument":false, "IsFlagArgument":false,
"ParamFieldName":"/Script/Astro.AstroServerSettings.PublicIP", "ParamFieldName":"/Script/Astro.AstroServerSettings.PublicIP",
"IncludeInCommandLine":false, "IncludeInCommandLine":false,
"EnumValues":{} "EnumValues":{}
}, },
{ {
"DisplayName":"Server Port", "DisplayName":"Server Port",
"Category":"Server Settings", "Category":"Server Settings",
"Description":"", "Description":"",
"Keywords":"", "Keywords":"",
"FieldName":"$ApplicationPort1", "FieldName":"$ApplicationPort1",
"InputType":"number", "InputType":"number",
"Hidden":true, "Hidden":true,
"IsFlagArgument":false, "IsFlagArgument":false,
"ParamFieldName":"URL.Port", "ParamFieldName":"URL.Port",
"IncludeInCommandLine":false, "IncludeInCommandLine":false,
"EnumValues":{} "EnumValues":{}
}, },
{ {
"DisplayName":"Console Port", "DisplayName":"Console Port",
"Category":"Server Settings", "Category":"Server Settings",
"Description":"", "Description":"",
"Keywords":"", "Keywords":"",
"FieldName":"$RemoteAdminPort", "FieldName":"$RemoteAdminPort",
"InputType":"number", "InputType":"number",
"Hidden":true, "Hidden":true,
"IsFlagArgument":false, "IsFlagArgument":false,
"ParamFieldName":"/Script/Astro.AstroServerSettings.ConsolePort", "ParamFieldName":"/Script/Astro.AstroServerSettings.ConsolePort",
"IncludeInCommandLine":false, "IncludeInCommandLine":false,
"EnumValues":{} "EnumValues":{}
}, },
{ {
"DisplayName":"Server Name", "DisplayName":"Linux Server Configuration",
"Category":"Server Settings", "Category":"Server Settings",
"Description":"The name of the server as it appears publicly", "Description":"WARNING: Running Astroneer on Linux requires encryption to be disabled on both server and clients. USE AT YOUR OWN RISK. To disable encryption on a client, add net.AllowEncryption=False under the [SystemSettings] header in %LocalAppData%\\Astro\\Saved\\Config\\WindowsNoEditor\\Engine.ini",
"Keywords":"name,servername", "Keywords":"linux,encryption",
"FieldName":"ServerName", "FieldName":"AllowEncryption",
"InputType":"text", "InputType":"hidden",
"IsFlagArgument":false, "IsFlagArgument":false,
"ParamFieldName":"/Script/Astro.AstroServerSettings.ServerName", "ParamFieldName":"SystemSettings.net.AllowEncryption",
"IncludeInCommandLine":false, "IncludeInCommandLine":false,
"DefaultValue":"Astroneer Server - Powered by AMP", "DefaultValue":"False",
"EnumValues":{} "EnumValues":{}
}, },
{ {
"DisplayName":"Server Password", "DisplayName":"Server Name",
"Category":"Server Settings", "Category":"Server Settings",
"Description":"Password required to connect to the server. Default is no password", "Description":"The name of the server as it appears publicly",
"Keywords":"password,serverpassword", "Keywords":"name,servername",
"FieldName":"ServerPassword", "FieldName":"ServerName",
"InputType":"password", "InputType":"text",
"IsFlagArgument":false, "IsFlagArgument":false,
"ParamFieldName":"/Script/Astro.AstroServerSettings.ServerPassword", "ParamFieldName":"/Script/Astro.AstroServerSettings.ServerName",
"IncludeInCommandLine":false, "IncludeInCommandLine":false,
"DefaultValue":"", "DefaultValue":"Astroneer Server - Powered by AMP",
"EnumValues":{} "EnumValues":{}
}, },
{ {
"DisplayName":"Console Password", "DisplayName":"Server Password",
"Category":"Server Settings", "Category":"Server Settings",
"Description":"Password required to connect to the server's RCON (raw TCP socket). Default is a strong random password", "Description":"Password required to connect to the server. Default is no password",
"Keywords":"console,password,rcon,consolepassword", "Keywords":"password,serverpassword",
"FieldName":"ConsolePassword", "FieldName":"ServerPassword",
"InputType":"password", "InputType":"password",
"IsFlagArgument":false, "IsFlagArgument":false,
"ParamFieldName":"/Script/Astro.AstroServerSettings.ConsolePassword", "ParamFieldName":"/Script/Astro.AstroServerSettings.ServerPassword",
"IncludeInCommandLine":false, "IncludeInCommandLine":false,
"DefaultValue":"{{newguid()}}", "DefaultValue":"",
"EnumValues":{} "EnumValues":{}
}, },
{ {
"DisplayName":"Owner Name", "DisplayName":"Console Password",
"Category":"Server Settings", "Category":"Server Settings",
"Description":"Steam name of the server owner (admin)", "Description":"Password required to connect to the server's RCON (raw TCP socket). Default is a strong random password",
"Keywords":"owner,name,ownername", "Keywords":"console,password,rcon,consolepassword",
"FieldName":"OwnerName", "FieldName":"ConsolePassword",
"InputType":"text", "InputType":"password",
"IsFlagArgument":false, "IsFlagArgument":false,
"ParamFieldName":"/Script/Astro.AstroServerSettings.OwnerName", "ParamFieldName":"/Script/Astro.AstroServerSettings.ConsolePassword",
"IncludeInCommandLine":false, "IncludeInCommandLine":false,
"DefaultValue":"", "DefaultValue":"{{newguid()}}",
"EnumValues":{} "EnumValues":{}
}, },
{ {
"DisplayName":"Player Limit", "DisplayName":"Owner Name",
"Category":"Server Settings", "Category":"Server Settings",
"Description":"Maximum number of players that may connect to the server at one time", "Description":"Steam name of the server owner (admin)",
"Keywords":"players,limit,maxplayers", "Keywords":"owner,name,ownername",
"FieldName":"$MaxUsers", "FieldName":"OwnerName",
"InputType":"number", "InputType":"text",
"MinValue":"2", "IsFlagArgument":false,
"MaxValue":"8", "ParamFieldName":"/Script/Astro.AstroServerSettings.OwnerName",
"IsFlagArgument":false, "IncludeInCommandLine":false,
"ParamFieldName":"/Script/Astro.AstroGameUserSettings.MaxPlayers", "DefaultValue":"",
"IncludeInCommandLine":false, "EnumValues":{}
"DefaultValue":"8", },
"Placeholder":"8", {
"Suffix":"players", "DisplayName":"Player Limit",
"EnumValues":{} "Category":"Server Settings",
}, "Description":"Maximum number of players that may connect to the server at one time",
{ "Keywords":"players,limit,maxplayers",
"DisplayName":"Game Save Interval", "FieldName":"$MaxUsers",
"Category":"Server Settings", "InputType":"number",
"Description":"The interval between automatic server saves", "MinValue":"2",
"Keywords":"autosave,save,interval,autosavegameinterval", "MaxValue":"8",
"FieldName":"AutoSaveGameInterval", "IsFlagArgument":false,
"InputType":"number", "ParamFieldName":"/Script/Astro.AstroGameUserSettings.MaxPlayers",
"IsFlagArgument":false, "IncludeInCommandLine":false,
"ParamFieldName":"/Script/Astro.AstroServerSettings.AutoSaveGameInterval", "DefaultValue":"8",
"IncludeInCommandLine":false, "Placeholder":"8",
"DefaultValue":"900", "Suffix":"players",
"Placeholder":"900", "EnumValues":{}
"Suffix":"seconds", },
"EnumValues":{} {
}, "DisplayName":"Game Save Interval",
{ "Category":"Server Settings",
"DisplayName":"Backup Save Interval", "Description":"The interval between automatic server saves",
"Category":"Server Settings", "Keywords":"autosave,save,interval,autosavegameinterval",
"Description":"The interval between automatic server backups", "FieldName":"AutoSaveGameInterval",
"Keywords":"backup,interval,backupsavegamesinterval", "InputType":"number",
"FieldName":"BackupSaveGamesInterval", "IsFlagArgument":false,
"InputType":"number", "ParamFieldName":"/Script/Astro.AstroServerSettings.AutoSaveGameInterval",
"IsFlagArgument":false, "IncludeInCommandLine":false,
"ParamFieldName":"/Script/Astro.AstroServerSettings.BackupSaveGamesInterval", "DefaultValue":"900",
"IncludeInCommandLine":false, "Placeholder":"900",
"DefaultValue":"7200", "Suffix":"seconds",
"Placeholder":"7200", "EnumValues":{}
"Suffix":"seconds", },
"EnumValues":{} {
}, "DisplayName":"Backup Save Interval",
{ "Category":"Server Settings",
"DisplayName":"Enable Whitelist", "Description":"The interval between automatic server backups",
"Category":"Server Settings", "Keywords":"backup,interval,backupsavegamesinterval",
"Description":"If enabled, unlisted players will not be able to connect", "FieldName":"BackupSaveGamesInterval",
"Keywords":"deny,unlisted,denyunlistedplayers", "InputType":"number",
"FieldName":"DenyUnlistedPlayers", "IsFlagArgument":false,
"InputType":"checkbox", "ParamFieldName":"/Script/Astro.AstroServerSettings.BackupSaveGamesInterval",
"IsFlagArgument":false, "IncludeInCommandLine":false,
"ParamFieldName":"/Script/Astro.AstroServerSettings.DenyUnlistedPlayers", "DefaultValue":"7200",
"IncludeInCommandLine":false, "Placeholder":"7200",
"DefaultValue":"False", "Suffix":"seconds",
"EnumValues":{ "EnumValues":{}
"False":"False", },
"True":"True" {
} "DisplayName":"Enable Whitelist",
}, "Category":"Server Settings",
{ "Description":"If enabled, unlisted players will not be able to connect",
"DisplayName":"Maximum Active Server Framerate", "Keywords":"deny,unlisted,denyunlistedplayers",
"Category":"Server Settings", "FieldName":"DenyUnlistedPlayers",
"Description":"The maximum framerate that the server will allow when active", "InputType":"checkbox",
"Keywords":"fps,framerate,active,maxserverframerate", "IsFlagArgument":false,
"FieldName":"MaxServerFramerate", "ParamFieldName":"/Script/Astro.AstroServerSettings.DenyUnlistedPlayers",
"InputType":"number", "IncludeInCommandLine":false,
"IsFlagArgument":false, "DefaultValue":"False",
"ParamFieldName":"/Script/Astro.AstroServerSettings.MaxServerFramerate", "EnumValues":{
"IncludeInCommandLine":false, "False":"False",
"DefaultValue":"30.000000", "True":"True"
"Placeholder":"30.000000", }
"Suffix":"fps", },
"EnumValues":{} {
}, "DisplayName":"Maximum Active Server Framerate",
{ "Category":"Server Settings",
"DisplayName":"Maximum Idle Server Framerate", "Description":"The maximum framerate that the server will allow when active",
"Category":"Server Settings", "Keywords":"fps,framerate,active,maxserverframerate",
"Description":"The maximum framerate that the server will allow when idle", "FieldName":"MaxServerFramerate",
"Keywords":"fps,framerate,idle,maxserveridleframerate", "InputType":"number",
"FieldName":"MaxServerIdleFramerate", "IsFlagArgument":false,
"InputType":"number", "ParamFieldName":"/Script/Astro.AstroServerSettings.MaxServerFramerate",
"IsFlagArgument":false, "IncludeInCommandLine":false,
"ParamFieldName":"/Script/Astro.AstroServerSettings.MaxServerIdleFramerate", "DefaultValue":"30.000000",
"IncludeInCommandLine":false, "Placeholder":"30.000000",
"DefaultValue":"3.000000", "Suffix":"fps",
"Placeholder":"3.000000", "EnumValues":{}
"Suffix":"fps", },
"EnumValues":{} {
} "DisplayName":"Maximum Idle Server Framerate",
] "Category":"Server Settings",
"Description":"The maximum framerate that the server will allow when idle",
"Keywords":"fps,framerate,idle,maxserveridleframerate",
"FieldName":"MaxServerIdleFramerate",
"InputType":"number",
"IsFlagArgument":false,
"ParamFieldName":"/Script/Astro.AstroServerSettings.MaxServerIdleFramerate",
"IncludeInCommandLine":false,
"DefaultValue":"3.000000",
"Placeholder":"3.000000",
"Suffix":"fps",
"EnumValues":{}
}
]

View File

@ -1,20 +1,20 @@
[ [
{ {
"ConfigFile": "Astro/Saved/Config/WindowsServer/AstroServerSettings.ini", "ConfigFile": "Astro/Saved/Config/WindowsServer/AstroServerSettings.ini",
"AutoMap": true, "AutoMap": true,
"ConfigType": "ini", "ConfigType": "ini",
"ConfigFormatRegex": "^(?<key>.+?)=(?<value>.*?)$" "ConfigFormatRegex": "^(?<key>.+?)=(?<value>.*?)$"
}, },
{ {
"ConfigFile": "Astro/Saved/Config/WindowsServer/GameUserSettings.ini", "ConfigFile": "Astro/Saved/Config/WindowsServer/GameUserSettings.ini",
"AutoMap": true, "AutoMap": true,
"ConfigType": "ini", "ConfigType": "ini",
"ConfigFormatRegex": "^(?<key>.+?)=(?<value>.*?)$" "ConfigFormatRegex": "^(?<key>.+?)=(?<value>.*?)$"
}, },
{ {
"ConfigFile": "Astro/Saved/Config/WindowsServer/Engine.ini", "ConfigFile": "Astro/Saved/Config/WindowsServer/Engine.ini",
"AutoMap": true, "AutoMap": true,
"ConfigType": "ini", "ConfigType": "ini",
"ConfigFormatRegex": "^(?<key>.+?)=(?<value>.*?)$" "ConfigFormatRegex": "^(?<key>.+?)=(?<value>.*?)$"
} }
] ]

17
astroneerupdates.json Normal file
View File

@ -0,0 +1,17 @@
[
{
"UpdateStageName":"SteamCMD Download",
"UpdateSourcePlatform":"All",
"UpdateSource":"SteamCMD",
"UpdateSourceData":"728470",
"UpdateSourceArgs":"361420",
"ForceDownloadPlatform":"Windows"
},
{
"UpdateStageName":"Initialise Wine",
"UpdateSourcePlatform":"Linux",
"UpdateSource":"Executable",
"UpdateSourceData":"/bin/bash",
"UpdateSourceArgs":"-c 'WINEPREFIX=\"{{$FullRootDir}}.wine\" WINEARCH=win64 /usr/bin/wineboot --init --update'"
}
]