rib-0.6.0.0: src/Rib/Server.hs
{-# LANGUAGE OverloadedStrings #-}
-- | Serve generated static files with HTTP
module Rib.Server
( serve,
)
where
import Network.Wai.Application.Static (defaultFileServerSettings, ssListing, staticApp)
import qualified Network.Wai.Handler.Warp as Warp
import Relude
import WaiAppStatic.Types (StaticSettings)
-- | WAI Settings suited for serving statically generated websites.
staticSiteServerSettings :: FilePath -> StaticSettings
staticSiteServerSettings root =
defaultSettings
{ ssListing = Nothing -- Disable directory listings
}
where
defaultSettings = defaultFileServerSettings root
-- | Run a HTTP server to serve a directory of static files
serve ::
-- | Port number to bind to
Int ->
-- | Directory to serve.
FilePath ->
IO ()
serve port path = do
putStrLn $ "[Rib] Serving at http://localhost:" <> show port
Warp.run port $ staticApp $ staticSiteServerSettings path