- Initialize module git.georgsen.dk/hwlab with Go 1.23
- Install chi v5.2.5, go-redis v9.18.0, viper v1.21.0, godotenv v1.5.1, uuid v1.6.0, go-netbox v4.3.0
- Create health handler GET /api/health returning {status:ok, version:0.1.0}
- Create chi router with Logger/Recoverer/RealIP middleware and SPA fallback
- Embed web/dist via assets.go at module root (go:embed cannot use .. paths)
- Create stub web/dist/index.html with ClickHouse dark theme
- TestHealth passes
31 lines
597 B
Go
31 lines
597 B
Go
package main
|
|
|
|
import (
|
|
"fmt"
|
|
"io/fs"
|
|
"log"
|
|
"net/http"
|
|
|
|
hwlab "git.georgsen.dk/hwlab"
|
|
"git.georgsen.dk/hwlab/internal/api"
|
|
"git.georgsen.dk/hwlab/internal/config"
|
|
)
|
|
|
|
func main() {
|
|
cfg, err := config.Load()
|
|
if err != nil {
|
|
log.Fatalf("config: %v", err)
|
|
}
|
|
|
|
staticFS, err := fs.Sub(hwlab.StaticFiles, "web/dist")
|
|
if err != nil {
|
|
log.Fatalf("embed: %v", err)
|
|
}
|
|
|
|
router := api.NewRouter(staticFS)
|
|
addr := fmt.Sprintf("%s:%d", cfg.Host, cfg.Port)
|
|
log.Printf("HWLab starting on %s", addr)
|
|
if err := http.ListenAndServe(addr, router); err != nil {
|
|
log.Fatalf("server: %v", err)
|
|
}
|
|
}
|