@@ -3,14 +3,30 @@ package swiftwave
33import (
44 "fmt"
55 "github.com/labstack/echo/v4"
6+ "github.com/labstack/echo/v4/middleware"
67 "github.com/swiftwave-org/swiftwave/swiftwave_service/core"
78 "github.com/swiftwave-org/swiftwave/swiftwave_service/graphql"
89 "github.com/swiftwave-org/swiftwave/swiftwave_service/rest"
910 "github.com/swiftwave-org/swiftwave/swiftwave_service/worker"
1011 "github.com/swiftwave-org/swiftwave/system_config"
12+ "golang.org/x/crypto/acme/autocert"
1113)
1214
13- func StartServer (config * system_config.Config , manager * core.ServiceManager , echoServer * echo.Echo , workerManager * worker.Manager , migrateDatabase bool ) {
15+ func StartServer (config * system_config.Config , manager * core.ServiceManager , workerManager * worker.Manager , migrateDatabase bool ) {
16+ // Create Echo Server
17+ echoServer := echo .New ()
18+ echoServer .Pre (middleware .RemoveTrailingSlash ())
19+ echoServer .Use (middleware .Recover ())
20+ echoServer .Use (middleware .Logger ())
21+ echoServer .Use (middleware .CORS ())
22+ // enable host whitelist if not all domains are allowed
23+ if ! config .ServiceConfig .IsAllDomainsAllowed () {
24+ echoServer .AutoTLSManager .HostPolicy = autocert .HostWhitelist (config .ServiceConfig .WhiteListedDomains ... )
25+ }
26+ // Configure Auto TLS
27+ if config .ServiceConfig .AutoTLS {
28+ echoServer .AutoTLSManager .HostPolicy = autocert .HostWhitelist (config .ServiceConfig .NetworkName )
29+ }
1430 // Create Rest Server
1531 restServer := rest.Server {
1632 EchoServer : echoServer ,
@@ -35,5 +51,9 @@ func StartServer(config *system_config.Config, manager *core.ServiceManager, ech
3551 }
3652 // Start the server
3753 address := fmt .Sprintf ("%s:%d" , config .ServiceConfig .BindAddress , config .ServiceConfig .BindPort )
38- echoServer .Logger .Fatal (echoServer .Start (address ))
54+ if config .ServiceConfig .AutoTLS {
55+ echoServer .Logger .Fatal (echoServer .StartAutoTLS (address ))
56+ } else {
57+ echoServer .Logger .Fatal (echoServer .Start (address ))
58+ }
3959}
0 commit comments