Skip to content
Snippets Groups Projects
main.go 1.31 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
    )
    
    
    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 Let's Encrypt, enable CORS and more logging
    
    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("/web/")
    
    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
    	mockOAuth2Port := ":8090"
    	go http.ListenAndServe(mockOAuth2Port, mocks.CreateMockOAuth2())
    	fmt.Println("Mock OAuth2 server Listening on: http://localhost" + mockOAuth2Port)
    
    Rémi PAILHAREY's avatar
    Rémi PAILHAREY committed
    	// Serve locally with https on debug mode or with let's encrypt on production mode
    	log.Fatal(http.ListenAndServeTLS(":"+strconv.Itoa(httpsPort), "./dev_certificates/localhost.crt", "./dev_certificates/localhost.key", rootMux.Router))
    
    Rémi PAILHAREY's avatar
    Rémi PAILHAREY committed
    }