Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
52 commits
Select commit Hold shift + click to select a range
08e5ae1
add renovate configuration
1Solon Sep 16, 2025
d051aa8
remove empty line from renovate.json
JacksonTheMaster Sep 17, 2025
31c82fd
Update renovate.json
1Solon Sep 18, 2025
da0b87e
Removes automerge and adds
1Solon Sep 18, 2025
365a938
Add mitoskalandiel to reviewers in renovate.json
1Solon Sep 18, 2025
b2f6793
Add baseBranches configuration to renovate.json
1Solon Sep 18, 2025
601ed47
Merge pull request #83 from SteamServerUI/feat-rennovate
JacksonTheMaster Sep 18, 2025
b97863e
Add game version extraction functionality to detection manager and st…
JacksonTheMaster Sep 18, 2025
8172cfd
fix wiki link
JacksonTheMaster Sep 19, 2025
5227a64
Added a check to prevent a world name with spaces
Sep 19, 2025
d135908
Revert version number change for nightly
Sep 19, 2025
0fde131
Update UIMod/onboard_bundled/twoboxform/twoboxform.js
akirilov Sep 19, 2025
05bd745
Added working directory setup for Linux to handle symlink issues.
Sep 18, 2025
ab99e81
Merge pull request #88 from fix-world-name-spaces
JacksonTheMaster Sep 19, 2025
31899f9
adjusted logging and comments for SetupWorkingDir.
JacksonTheMaster Sep 19, 2025
7c7151b
fix linter warn in terminalmsg
JacksonTheMaster Sep 19, 2025
a72c779
removed redundant Init of bundled assets
JacksonTheMaster Sep 19, 2025
542f22a
moved SetupWorkingDir from loder to loader helpers
JacksonTheMaster Sep 19, 2025
83d52f1
Add Docker entrypoint script and update Dockerfile
1Solon Sep 19, 2025
fbcb70a
Move docker related stuff to .docker
1Solon Sep 19, 2025
f143e4b
Update build context to use .docker directory for nightly and release…
1Solon Sep 19, 2025
1d11e1a
Fix pathing across the board
1Solon Sep 19, 2025
9fe613b
set a "fake" HOME env var when running steamcmd on linux to make it n…
JacksonTheMaster Sep 19, 2025
d9dcf77
Makes container rooted
1Solon Sep 19, 2025
e83216d
Merge remote-tracking branch 'origin' into fix-docker-permissions
1Solon Sep 19, 2025
f27ff5c
Revert "Update LICENSE"
1Solon Sep 19, 2025
1e6e365
Apply suggestion from @Copilot
1Solon Sep 19, 2025
44cea60
Apply suggestion from @Copilot
1Solon Sep 19, 2025
ae1269f
added a sanity check to startup, fails gracefully if run as root or c…
JacksonTheMaster Sep 20, 2025
a978ef4
added a -SkipSteamCMD (-nosteam) arg
JacksonTheMaster Sep 20, 2025
aa8f230
added new Steam "home" to gitignore
JacksonTheMaster Sep 20, 2025
4c1def9
combined SetupWorkingDir and SanityCheck, fixed go builds in /tmp usi…
JacksonTheMaster Sep 20, 2025
6581708
updated getAppInfo to use the new "fake" home in the SSUI dir too
JacksonTheMaster Sep 20, 2025
682feb5
Update LICENSE
JacksonTheMaster Sep 18, 2025
bbd632e
- added entrypoint script to copy executable from /opt/SSUIBuildFiles…
JacksonTheMaster Sep 21, 2025
ca92d62
Merge pull request #89 from fix-docker-permissions
JacksonTheMaster Sep 21, 2025
70bca7e
added IsDockerContainer config var and used it in sanitycheck to all…
JacksonTheMaster Sep 21, 2025
362993c
increment wait group to fix panic
JacksonTheMaster Sep 21, 2025
db1cbd7
Merge pull request #91 from SteamServerUI/steamcmd-and-sanitycheck
JacksonTheMaster Sep 21, 2025
56a866b
improved sanitycheck with steamcmd check and better logging
JacksonTheMaster Sep 21, 2025
1291737
- added NoSanityCheck flag
JacksonTheMaster Sep 21, 2025
7bbfdf0
fixed indent in terminalmsg (again)
JacksonTheMaster Sep 21, 2025
e0f5637
Improved loglevels of prints during startup
JacksonTheMaster Sep 21, 2025
35394ea
Merge pull request #92 from SteamServerUI/feat-sanitycheck-cmdflag-im…
JacksonTheMaster Sep 21, 2025
0a8d9bf
the transition notice (SteamServerUi) is now hidden again
JacksonTheMaster Sep 21, 2025
6d66276
Remove sensitive information from support package configuration
JacksonTheMaster Sep 22, 2025
08544a0
Merge pull request #93 from SteamServerUI/nightly-general-updates
mitoskalandiel Sep 22, 2025
c44be33
revert misnamed docker tag
JacksonTheMaster Sep 22, 2025
2cabf6a
improve container check logic
JacksonTheMaster Sep 22, 2025
43d117b
bumped version
JacksonTheMaster Sep 22, 2025
3f11efb
disable renovate dashboard
JacksonTheMaster Sep 22, 2025
f379443
Delete renovate.json
mitoskalandiel Sep 22, 2025
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
20 changes: 9 additions & 11 deletions Dockerfile → .docker/Dockerfile
Original file line number Diff line number Diff line change
Expand Up @@ -29,7 +29,7 @@ COPY . ./
COPY --from=frontend-builder /src/UIMod /src/UIMod

# Build the server (embed will include UIMod/* at build time)
RUN CGO_ENABLED=0 go build -ldflags="-s -w" -o /out/StationeersServerControl ./server.go
RUN CGO_ENABLED=0 go build -ldflags="-s -w" -o /out/StationeersServerUI ./server.go

############
# Runtime
Expand All @@ -47,20 +47,18 @@ RUN dpkg --add-architecture i386 \
ca-certificates \
locales \
lib32gcc-s1 \
file \
file \
&& rm -rf /var/lib/apt/lists/*

RUN useradd -m -d /app -s /bin/sh app

# Copy compiled binary and license
COPY --from=go-builder /out/StationeersServerControl /usr/local/bin/StationeersServerControl
COPY ./LICENSE /app/LICENSE
RUN chmod +x /usr/local/bin/StationeersServerControl

RUN chown -R app:app /app
RUN mkdir -p /opt/SSUIBuildFiles
COPY --from=go-builder /out/StationeersServerUI /opt/SSUIBuildFiles/StationeersServerUI
COPY ./LICENSE /opt/SSUIBuildFiles/LICENSE
COPY ./.docker/entrypoint.sh /entrypoint.sh
RUN chmod +x /opt/SSUIBuildFiles/StationeersServerUI
RUN chmod +x /entrypoint.sh

USER app

EXPOSE 8443/tcp 27016/udp 27015/udp

ENTRYPOINT ["/usr/local/bin/StationeersServerControl"]
ENTRYPOINT ["/entrypoint.sh"]
12 changes: 6 additions & 6 deletions compose.yml → .docker/compose.yml
Original file line number Diff line number Diff line change
@@ -1,8 +1,12 @@
services:
stationeers-server:
container_name: stationeers-server
build : .
build:
context: ..
dockerfile: ./.docker/Dockerfile
image: stationeers-server-ui:latest
stdin_open: true
tty: true
deploy:
resources:
limits:
Expand All @@ -18,14 +22,10 @@ services:
- "27015:27015/udp"
- "27015:27015/tcp"
volumes:
# Persist app data between container restarts
- app-data:/app
# Mount saves and config for easy access/editing outside the container
- ./saves:/app/saves:rw
- ./UIMod/config:/app/UIMod/config:rw
- ./UIMod/tls:/app/UIMod/tls:rw
- ./UIMod:/app/UIMod:rw
restart: unless-stopped
command: []

volumes:
app-data:
6 changes: 6 additions & 0 deletions .docker/entrypoint.sh
Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
#!/usr/bin/env sh

cp /opt/SSUIBuildFiles/StationeersServerUI /app/StationeersServerUI
cp /opt/SSUIBuildFiles/LICENSE /app/LICENSE
chmod +x /app/StationeersServerUI
exec /app/StationeersServerUI "$@"
1 change: 1 addition & 0 deletions .github/workflows/ghcr-build-nightly.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -51,6 +51,7 @@ jobs:
uses: docker/build-push-action@v6
with:
context: .
file: ./.docker/Dockerfile
platforms: linux/amd64
push: true
tags: ${{ steps.meta.outputs.tags }}
Expand Down
1 change: 1 addition & 0 deletions .github/workflows/ghcr-build-release.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -50,6 +50,7 @@ jobs:
uses: docker/build-push-action@v6
with:
context: .
file: ./.docker/Dockerfile
platforms: linux/amd64
push: true
tags: ${{ steps.meta.outputs.tags }}
Expand Down
1 change: 1 addition & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -24,6 +24,7 @@ UIMod/tls/cert.pem
UIMod/tls/key.pem
steamapps/**
steamcmd/**
Steam/**
rocketstation_BurstDebugInformation_DoNotShip/**
StationeersServerControlv*
UnityPlayer.so
Expand Down
10 changes: 10 additions & 0 deletions .vscode/launch.json
Original file line number Diff line number Diff line change
Expand Up @@ -19,6 +19,16 @@
"program": "${workspaceFolder}/server.go",
"console": "integratedTerminal",
"showLog": false, // Hides some Go Debugger(Delve) log stuff that is not useful for debugging atm
},
{
"name": "Debug Go Server noSteamCMD noSvelte",
"type": "go",
"request": "launch",
"mode": "debug",
"program": "${workspaceFolder}/server.go",
"console": "integratedTerminal",
"showLog": false, // Hides some Go Debugger(Delve) log stuff that is not useful for debugging atm
"args": ["--NoSteamCMD"]
}
]
}
6 changes: 6 additions & 0 deletions UIMod/onboard_bundled/twoboxform/twoboxform.js
Original file line number Diff line number Diff line change
Expand Up @@ -138,6 +138,12 @@ document.addEventListener('DOMContentLoaded', () => {

} else if (configField === "SaveInfo") {
const primaryValue = document.getElementById('primary-field').value.trim();
// If the world name contains a space, it's invalid
if (primaryValue.includes(' ')) {
showNotification('The world name cannot contain spaces!', 'error');
Comment thread
mitoskalandiel marked this conversation as resolved.
hidePreloader();
return; // Prevent submission
}
const secondaryValue = document.getElementById('secondary-field').value.trim();
if (secondaryValue === '' || secondaryValue === document.getElementById('secondary-field').placeholder) {
showNotification('Please select a world type!', 'error');
Expand Down
2 changes: 1 addition & 1 deletion UIMod/onboard_bundled/ui/index.html
Original file line number Diff line number Diff line change
Expand Up @@ -107,7 +107,7 @@ <h3>
<p>signature sentence</p>
<p>JacksonTheMaster</p>
</div>
<div class="info-notice">
<div class="info-notice" style="display: none;">
<h3>
<span class="notice-icon">ℹ️</span>
Transitioning to SteamServerUI (click to expand)
Expand Down
10 changes: 7 additions & 3 deletions server.go
Original file line number Diff line number Diff line change
Expand Up @@ -37,13 +37,17 @@ var v1uiFS embed.FS
func main() {
var wg sync.WaitGroup
logger.ConfigureConsole()
loader.ParseFlags()
loader.HandleSanityCheckFlag()
loader.SanityCheck(&wg)
wg.Wait()
logger.Main.Info("Initializing resources...")
loader.InitVirtFS(v1uiFS)
logger.Install.Info("Starting setup...")
loader.ReloadConfig() // Load the config file before starting the setup process
loader.LoadCmdArgs()
loader.HandleFlags()
setup.Install(&wg)
wg.Wait()
logger.Main.Debug("Initializing resources...")
loader.InitVirtFS(v1uiFS)
logger.Main.Debug("Initializing Backend...")
loader.InitBackend(&wg)
wg.Wait()
Expand Down
2 changes: 2 additions & 0 deletions src/cli/runtimecommands.go
Original file line number Diff line number Diff line change
Expand Up @@ -273,6 +273,8 @@ func supportPackage() {
delete(configMap, "users")
delete(configMap, "JwtKey")
delete(configMap, "AdminPassword")
delete(configMap, "ServerAuthSecret")
delete(configMap, "ServerPassword")
sanitizedConfig, err := json.MarshalIndent(configMap, "", " ")
if err != nil {
logger.Core.Error("Failed to marshal sanitized config into support package")
Expand Down
2 changes: 1 addition & 1 deletion src/config/config.go
Original file line number Diff line number Diff line change
Expand Up @@ -11,7 +11,7 @@ import (

var (
// All configuration variables can be found in vars.go
Version = "5.6.5"
Version = "5.6.6"
Branch = "release"
)

Expand Down
24 changes: 24 additions & 0 deletions src/config/getters.go
Original file line number Diff line number Diff line change
Expand Up @@ -487,3 +487,27 @@ func GetAllowAutoGameServerUpdates() bool {
defer ConfigMu.RUnlock()
return AllowAutoGameServerUpdates
}

func GetExtractedGameVersion() string {
ConfigMu.RLock()
defer ConfigMu.RUnlock()
return ExtractedGameVersion
}

func GetSkipSteamCMD() bool {
ConfigMu.RLock()
defer ConfigMu.RUnlock()
return SkipSteamCMD
}

func GetNoSanityCheck() bool {
ConfigMu.RLock()
defer ConfigMu.RUnlock()
return NoSanityCheck
}

func GetIsDockerContainer() bool {
ConfigMu.RLock()
defer ConfigMu.RUnlock()
return IsDockerContainer
}
32 changes: 32 additions & 0 deletions src/config/setters.go
Original file line number Diff line number Diff line change
Expand Up @@ -38,6 +38,38 @@ func SetCurrentBranchBuildID(value string) error {
return nil
}

func SetExtractedGameVersion(value string) error {
ConfigMu.Lock()
defer ConfigMu.Unlock()

ExtractedGameVersion = value
return nil
}

func SetSkipSteamCMD(value bool) error {
ConfigMu.Lock()
defer ConfigMu.Unlock()

SkipSteamCMD = value
return nil
}

func SetIsDockerContainer(value bool) error {
ConfigMu.Lock()
defer ConfigMu.Unlock()

IsDockerContainer = value
return nil
}

func SetNoSanityCheck(value bool) error {
ConfigMu.Lock()
defer ConfigMu.Unlock()

NoSanityCheck = value
return nil
}

// ALL SETTERS BELOW THIS LINE ARE UNUSED AT THE MOMENT
// ALL SETTERS BELOW THIS LINE ARE UNUSED AT THE MOMENT
// ALL SETTERS BELOW THIS LINE ARE UNUSED AT THE MOMENT
Expand Down
11 changes: 10 additions & 1 deletion src/config/vars.go
Original file line number Diff line number Diff line change
Expand Up @@ -61,7 +61,16 @@ var (
LanguageSetting string
AutoStartServerOnStartup bool
SSUIIdentifier string
CurrentBranchBuildID string // ONLY RUNTIME
)

// Runtime only variables

var (
CurrentBranchBuildID string // ONLY RUNTIME
ExtractedGameVersion string // ONLY RUNTIME
SkipSteamCMD bool // ONLY RUNTIME
IsDockerContainer bool // ONLY RUNTIME
NoSanityCheck bool // ONLY RUNTIME
)

// Discord integration
Expand Down
Loading
Loading