Skip to content
Snippets Groups Projects
main.go 1.42 KiB
Newer Older
  • Learn to ignore specific revisions
  • Rémi PAILHAREY's avatar
    Rémi PAILHAREY committed
    package main
    
    import (
    
    	"fmt"
    
    Rémi PAILHAREY's avatar
    Rémi PAILHAREY committed
    	"net/http"
    
    	"strconv"
    
    	"log"
    
    Rémi PAILHAREY's avatar
    Rémi PAILHAREY committed
    
    
    	"forge.grandlyon.com/web-et-numerique/llle_project/backoffice-server/internal/common"
    	"forge.grandlyon.com/web-et-numerique/llle_project/backoffice-server/internal/mocks"
    
    Rémi PAILHAREY's avatar
    Rémi PAILHAREY committed
    	"forge.grandlyon.com/web-et-numerique/llle_project/backoffice-server/internal/rootmux"
    
    	"forge.grandlyon.com/web-et-numerique/llle_project/backoffice-server/internal/tokens"
    
    Rémi PAILHAREY's avatar
    Rémi PAILHAREY committed
    )
    
    
    	httpsPort  = common.IntValueFromEnv("HTTPS_PORT", 443)     // HTTPS port to serve on
    	debugMode  = common.BoolValueFromEnv("DEBUG_MODE", false)  // Debug mode, disable Secure attribute for cookies
    	mockOAuth2 = common.BoolValueFromEnv("MOCK_OAUTH2", false) // Enable mock OAuth2 login
    
    Rémi PAILHAREY's avatar
    Rémi PAILHAREY committed
    func main() {
    
    Rémi PAILHAREY's avatar
    Rémi PAILHAREY committed
    	log.Println("--- Server is starting ---")
    
    
    	// Initializations
    	tokens.Init("./configs/tokenskey.json", debugMode)
    
    	// Create the server
    
    	rootMux := rootmux.CreateRootMux()
    
    Rémi PAILHAREY's avatar
    Rémi PAILHAREY committed
    	// Init the hostname
    	mocks.Init(httpsPort)
    
    Rémi PAILHAREY's avatar
    Rémi PAILHAREY committed
    	// Start a mock oauth2 server if debug mode is on
    
    	if mockOAuth2 {
    		mockOAuth2Port := ":8090"
    		go http.ListenAndServe(mockOAuth2Port, mocks.CreateMockOAuth2())
    		fmt.Println("Mock OAuth2 server Listening on: http://localhost" + mockOAuth2Port)
    	}
    
    	// Serve locally with https
    
    Rémi PAILHAREY's avatar
    Rémi PAILHAREY committed
    	log.Fatal(http.ListenAndServeTLS(":"+strconv.Itoa(httpsPort), "./dev_certificates/localhost.crt", "./dev_certificates/localhost.key", rootMux.Router))
    
    	// log.Fatal(http.ListenAndServe(":"+strconv.Itoa(httpsPort), rootMux.Router))
    
    Rémi PAILHAREY's avatar
    Rémi PAILHAREY committed
    }