Add SPA static file serving from backend

Backend (Server.hs):
- serveStaticOrSpa: serves static files from --static-dir
- SPA fallback: extensionless paths serve index.html
- MIME type mapping for html/css/js/png/svg/ico/woff2

Frontend:
- ES module imports with import map for Mithril CDN
- Build script: tsc + copy index.html + static assets

CLI:
- --static-dir flag (default: frontend/dist)
- scripts/run passes through extra args
- Dockerfile CMD points at /usr/local/share/sis/static
This commit is contained in:
2026-07-15 14:59:31 -04:00
parent 5075ef2718
commit 72b1ee1d3d
12 changed files with 1297 additions and 114 deletions
+5 -5
View File
@@ -1,5 +1,4 @@
{- | Test entry point for sis-server.
-}
-- | Test entry point for sis-server.
module Main (main) where
import Test.Hspec (Spec, describe, hspec, it, shouldBe)
@@ -8,6 +7,7 @@ main :: IO ()
main = hspec spec
spec :: Spec
spec = describe "Sis.Server" $
it "health check returns ok" $
True `shouldBe` True
spec =
describe "Sis.Server" $
it "health check returns ok" $
True `shouldBe` True