Skip to content

Commit 92147eb

Browse files
authored
Merge pull request #2893 from DMaxter/main
app: fix headless mode not running
2 parents 25372f6 + e67da12 commit 92147eb

File tree

2 files changed

+25
-3
lines changed

2 files changed

+25
-3
lines changed

app/electron/main.ts

+8-3
Original file line numberDiff line numberDiff line change
@@ -1398,9 +1398,14 @@ function attachServerEventHandlers(serverProcess: ChildProcessWithoutNullStreams
13981398
}
13991399

14001400
if (isHeadlessMode) {
1401-
serverProcess = startServer(['-html-static-dir', path.join(process.resourcesPath, './frontend')]);
1402-
attachServerEventHandlers(serverProcess);
1403-
shell.openExternal(`http://localhost:${defaultPort}`);
1401+
startServer(['-html-static-dir', path.join(process.resourcesPath, './frontend')]).then(
1402+
serverProcess => {
1403+
attachServerEventHandlers(serverProcess);
1404+
1405+
// Give 1s for backend to start
1406+
setTimeout(() => shell.openExternal(`http://localhost:${defaultPort}`), 1000);
1407+
}
1408+
);
14041409
} else {
14051410
startElecron();
14061411
}

backend/cmd/headlamp.go

+17
Original file line numberDiff line numberDiff line change
@@ -930,6 +930,23 @@ func (c *HeadlampConfig) OIDCTokenRefreshMiddleware(next http.Handler) http.Hand
930930
}
931931

932932
func StartHeadlampServer(config *HeadlampConfig) {
933+
// Copy static files as squashFS is read-only (AppImage)
934+
if config.staticDir != "" {
935+
dir, err := os.MkdirTemp(os.TempDir(), ".headlamp")
936+
if err != nil {
937+
logger.Log(logger.LevelError, nil, err, "Failed to create static dir")
938+
os.Exit(1)
939+
}
940+
941+
err = os.CopyFS(dir, os.DirFS(config.staticDir))
942+
if err != nil {
943+
logger.Log(logger.LevelError, nil, err, "Failed to copy files from static dir")
944+
os.Exit(1)
945+
}
946+
947+
config.staticDir = dir
948+
}
949+
933950
handler := createHeadlampHandler(config)
934951

935952
handler = config.OIDCTokenRefreshMiddleware(handler)

0 commit comments

Comments
 (0)