mirror of
https://github.com/Start9Labs/registry.git
synced 2026-03-26 02:11:53 +00:00
fix port
This commit is contained in:
@@ -32,7 +32,7 @@ app-compatibility-path: "_env:APP_COMPATIBILITY_CONFIG:/etc/start9/registry/comp
|
|||||||
resources-path: "_env:RESOURCES_PATH:/var/www/html/resources"
|
resources-path: "_env:RESOURCES_PATH:/var/www/html/resources"
|
||||||
ssl-path: "_env:SSL_PATH:/var/ssl"
|
ssl-path: "_env:SSL_PATH:/var/ssl"
|
||||||
registry-hostname: "_env:REGISTRY_HOSTNAME:registry.start9labs.com"
|
registry-hostname: "_env:REGISTRY_HOSTNAME:registry.start9labs.com"
|
||||||
enable-tor: "false"
|
tor-port: "_env:TOR_PORT:447"
|
||||||
|
|
||||||
database:
|
database:
|
||||||
database: "_env:PG_DATABASE:start9_registry"
|
database: "_env:PG_DATABASE:start9_registry"
|
||||||
|
|||||||
@@ -34,7 +34,7 @@ import Database.Persist.Postgresql (createPostgresqlPool, pg
|
|||||||
import Language.Haskell.TH.Syntax (qLocation)
|
import Language.Haskell.TH.Syntax (qLocation)
|
||||||
import Network.Wai
|
import Network.Wai
|
||||||
import Network.Wai.Handler.Warp (Settings, defaultSettings, defaultShouldDisplayException,
|
import Network.Wai.Handler.Warp (Settings, defaultSettings, defaultShouldDisplayException,
|
||||||
getPort, setHost, setOnException, setPort, run)
|
getPort, setHost, setOnException, setPort, runSettings)
|
||||||
import Network.Wai.Handler.WarpTLS
|
import Network.Wai.Handler.WarpTLS
|
||||||
import Network.Wai.Middleware.AcceptOverride
|
import Network.Wai.Middleware.AcceptOverride
|
||||||
import Network.Wai.Middleware.Autohead
|
import Network.Wai.Middleware.Autohead
|
||||||
@@ -145,9 +145,9 @@ makeAuthWare _ app req res = next
|
|||||||
next = app req res
|
next = app req res
|
||||||
|
|
||||||
-- | Warp settings for the given foundation value.
|
-- | Warp settings for the given foundation value.
|
||||||
warpSettings :: RegistryCtx -> Settings
|
warpSettings :: AppPort -> RegistryCtx -> Settings
|
||||||
warpSettings foundation =
|
warpSettings port foundation =
|
||||||
setPort (fromIntegral . appPort $ appSettings foundation)
|
setPort (fromIntegral port)
|
||||||
$ setHost (appHost $ appSettings foundation)
|
$ setHost (appHost $ appSettings foundation)
|
||||||
$ setOnException (\_req e ->
|
$ setOnException (\_req e ->
|
||||||
when (defaultShouldDisplayException e) $ messageLoggerSource
|
when (defaultShouldDisplayException e) $ messageLoggerSource
|
||||||
@@ -181,7 +181,7 @@ startApp :: RegistryCtx -> IO ()
|
|||||||
startApp foundation = do
|
startApp foundation = do
|
||||||
-- set up ssl certificates
|
-- set up ssl certificates
|
||||||
putStrLn @Text "Setting up SSL"
|
putStrLn @Text "Setting up SSL"
|
||||||
_ <- setupSsl $ appSettings foundation
|
-- _ <- setupSsl $ appSettings foundation
|
||||||
putStrLn @Text "SSL Setup Complete"
|
putStrLn @Text "SSL Setup Complete"
|
||||||
|
|
||||||
-- certbot renew loop
|
-- certbot renew loop
|
||||||
@@ -204,11 +204,11 @@ startWeb foundation = do
|
|||||||
startWeb' app = do
|
startWeb' app = do
|
||||||
let AppSettings{..} = appSettings foundation
|
let AppSettings{..} = appSettings foundation
|
||||||
putStrLn @Text $ "Launching Web Server on port " <> show appPort
|
putStrLn @Text $ "Launching Web Server on port " <> show appPort
|
||||||
torAction <- async $ run (fromIntegral appPort) app
|
torAction <- async $ runSettings (warpSettings torPort foundation) app
|
||||||
action <- async $ runTLS (tlsSettings sslCertLocation sslKeyLocation)
|
action <- async $ runTLS (tlsSettings sslCertLocation sslKeyLocation)
|
||||||
(warpSettings foundation)
|
(warpSettings appPort foundation)
|
||||||
app
|
app
|
||||||
let actions = (,) action torAction
|
let actions = (action, torAction)
|
||||||
|
|
||||||
setWebProcessThreadId (join (***) asyncThreadId actions) foundation
|
setWebProcessThreadId (join (***) asyncThreadId actions) foundation
|
||||||
void $ both waitCatch actions
|
void $ both waitCatch actions
|
||||||
@@ -232,17 +232,16 @@ shutdownAll threadIds = do
|
|||||||
shutdownWeb :: RegistryCtx -> IO ()
|
shutdownWeb :: RegistryCtx -> IO ()
|
||||||
shutdownWeb RegistryCtx{..} = do
|
shutdownWeb RegistryCtx{..} = do
|
||||||
threadIds <- takeMVar appWebServerThreadId
|
threadIds <- takeMVar appWebServerThreadId
|
||||||
_ <- both killThread threadIds
|
void $ both killThread threadIds
|
||||||
pure ()
|
|
||||||
|
|
||||||
--------------------------------------------------------------
|
--------------------------------------------------------------
|
||||||
-- Functions for DevelMain.hs (a way to run the RegistryCtx from GHCi)
|
-- Functions for DevelMain.hs (a way to run the RegistryCtx from GHCi)
|
||||||
--------------------------------------------------------------
|
--------------------------------------------------------------
|
||||||
|
|
||||||
getApplicationRepl :: IO (Int, RegistryCtx, Application)
|
getApplicationRepl :: AppPort -> IO (Int, RegistryCtx, Application)
|
||||||
getApplicationRepl = do
|
getApplicationRepl port = do
|
||||||
foundation <- getAppSettings >>= makeFoundation
|
foundation <- getAppSettings >>= makeFoundation
|
||||||
wsettings <- getDevSettings $ warpSettings foundation
|
wsettings <- getDevSettings $ warpSettings port foundation
|
||||||
app1 <- makeApplication foundation
|
app1 <- makeApplication foundation
|
||||||
return (getPort wsettings, foundation, app1)
|
return (getPort wsettings, foundation, app1)
|
||||||
|
|
||||||
|
|||||||
@@ -31,11 +31,12 @@ import Data.Yaml.Config
|
|||||||
-- | Runtime settings to configure this application. These settings can be
|
-- | Runtime settings to configure this application. These settings can be
|
||||||
-- loaded from various sources: defaults, environment variables, config files,
|
-- loaded from various sources: defaults, environment variables, config files,
|
||||||
-- theoretically even a database.
|
-- theoretically even a database.
|
||||||
|
type AppPort = Word16
|
||||||
data AppSettings = AppSettings
|
data AppSettings = AppSettings
|
||||||
{ appDatabaseConf :: PostgresConf
|
{ appDatabaseConf :: PostgresConf
|
||||||
, appHost :: HostPreference
|
, appHost :: HostPreference
|
||||||
-- ^ Host/interface the server should bind to.
|
-- ^ Host/interface the server should bind to.
|
||||||
, appPort :: Word16
|
, appPort :: AppPort
|
||||||
-- ^ Port to listen on
|
-- ^ Port to listen on
|
||||||
, appIpFromHeader :: Bool
|
, appIpFromHeader :: Bool
|
||||||
-- ^ Get the IP address from the header when logging. Useful when sitting
|
-- ^ Get the IP address from the header when logging. Useful when sitting
|
||||||
@@ -53,6 +54,7 @@ data AppSettings = AppSettings
|
|||||||
, sslKeyLocation :: FilePath
|
, sslKeyLocation :: FilePath
|
||||||
, sslCsrLocation :: FilePath
|
, sslCsrLocation :: FilePath
|
||||||
, sslCertLocation :: FilePath
|
, sslCertLocation :: FilePath
|
||||||
|
, torPort :: AppPort
|
||||||
}
|
}
|
||||||
|
|
||||||
instance FromJSON AppSettings where
|
instance FromJSON AppSettings where
|
||||||
@@ -67,6 +69,7 @@ instance FromJSON AppSettings where
|
|||||||
resourcesDir <- o .: "resources-path"
|
resourcesDir <- o .: "resources-path"
|
||||||
sslPath <- o .: "ssl-path"
|
sslPath <- o .: "ssl-path"
|
||||||
registryHostname <- o .: "registry-hostname"
|
registryHostname <- o .: "registry-hostname"
|
||||||
|
torPort <- o .: "tor-port"
|
||||||
|
|
||||||
let sslKeyLocation = sslPath </> "key.pem"
|
let sslKeyLocation = sslPath </> "key.pem"
|
||||||
let sslCsrLocation = sslPath </> "certificate.csr"
|
let sslCsrLocation = sslPath </> "certificate.csr"
|
||||||
|
|||||||
Reference in New Issue
Block a user