Portfolio/app/Main.hs
tombdf 3066e3f2ed
feat: update README and change default port
* Add table of contents to improve README navigation
* Update About section to reflect migration from static site to Haskell
  project
* Change default fallback port from 3000 to 8080 when PORT env var is
  not set
2025-03-23 00:27:15 +01:00

27 lines
750 B
Haskell

{-# LANGUAGE OverloadedStrings #-}
{-# LANGUAGE ScopedTypeVariables #-}
module Main where
import Web.Scotty
import Network.Wai.Middleware.Static
import Network.Wai.Middleware.RequestLogger
import Control.Monad.IO.Class
import Data.Text.Lazy (pack)
import System.Environment (getEnv)
import Control.Exception (catch)
import qualified Routes
main :: IO ()
main = do
port <- read <$> getEnv "PORT" `catch` \(_ :: IOError) -> return "8080"
putStrLn $ "Starting server on port " ++ show port
scotty port $ do
middleware logStdoutDev
middleware $ staticPolicy (addBase "static")
-- Routes
get "/" $ Routes.indexHandler
get "/api/command/:cmd" $ Routes.commandHandler
get "/api/language/:lang" $ Routes.languageHandler