This commit is contained in:
2026-01-10 03:26:17 +01:00
parent bceac40518
commit 8de9a0dd87
20 changed files with 179 additions and 1636 deletions

View File

@@ -1,7 +1,9 @@
package main
import (
"embed"
"fmt"
"io/fs"
"log"
"net/http"
"os"
@@ -13,6 +15,9 @@ import (
"git.rouggy.com/rouggy/ShackMaster/internal/config"
)
//go:embed web/dist
var webFS embed.FS
func main() {
log.Println("Starting ShackMaster server...")
@@ -39,10 +44,17 @@ func main() {
log.Fatalf("Failed to start device manager: %v", err)
}
// Create HTTP server
// Create HTTP server with embedded files
server := api.NewServer(deviceManager, hub, cfg)
mux := server.SetupRoutes()
// Serve embedded static files
distFS, err := fs.Sub(webFS, "web/dist")
if err != nil {
log.Fatalf("Failed to access embedded files: %v", err)
}
mux.Handle("/", http.FileServer(http.FS(distFS)))
// Setup HTTP server
addr := fmt.Sprintf("%s:%d", cfg.Server.Host, cfg.Server.Port)
httpServer := &http.Server{

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

16
cmd/server/web/dist/index.html vendored Normal file
View File

@@ -0,0 +1,16 @@
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>ShackMaster - F4BPO Shack</title>
<link rel="preconnect" href="https://fonts.googleapis.com">
<link rel="preconnect" href="https://fonts.gstatic.com" crossorigin>
<link href="https://fonts.googleapis.com/css2?family=Roboto:wght@300;400;500;700&display=swap" rel="stylesheet">
<script type="module" crossorigin src="/assets/index-DY7RBkJT.js"></script>
<link rel="stylesheet" crossorigin href="/assets/index-PFp0U9rZ.css">
</head>
<body>
<div id="app"></div>
</body>