Skip to content

Commit e67da12

Browse files
committed
backend: Fix headless mode
For AppImage format or if package is installed system-wide, the actions to patch the frontend cannot be performed, so we need to serve content in a temporary folder Signed-off-by: DMaxter <[email protected]>
1 parent 12be0d7 commit e67da12

File tree

1 file changed

+17
-0
lines changed

1 file changed

+17
-0
lines changed

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)