main.go 1.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657
  1. package main
  2. import (
  3. "fmt"
  4. "log"
  5. "net/http"
  6. "github.com/porter-dev/porter/internal/repository/gorm"
  7. "github.com/porter-dev/porter/server/api"
  8. adapter "github.com/porter-dev/porter/internal/adapter"
  9. sessionstore "github.com/porter-dev/porter/internal/auth"
  10. "github.com/porter-dev/porter/internal/config"
  11. lr "github.com/porter-dev/porter/internal/logger"
  12. vr "github.com/porter-dev/porter/internal/validator"
  13. "github.com/porter-dev/porter/server/router"
  14. )
  15. func main() {
  16. appConf := config.AppConfig()
  17. logger := lr.NewConsole(appConf.Debug)
  18. db, err := adapter.New(&appConf.Db)
  19. if err != nil {
  20. logger.Fatal().Err(err).Msg("")
  21. return
  22. }
  23. repo := gorm.NewRepository(db)
  24. key := []byte("secret") // TODO: change to os.Getenv("SESSION_KEY")
  25. store, _ := sessionstore.NewStore(repo, key)
  26. validator := vr.New()
  27. a := api.New(logger, repo, validator, store)
  28. appRouter := router.New(a)
  29. address := fmt.Sprintf(":%d", appConf.Server.Port)
  30. logger.Info().Msgf("Starting server %v", address)
  31. s := &http.Server{
  32. Addr: address,
  33. Handler: appRouter,
  34. ReadTimeout: appConf.Server.TimeoutRead,
  35. WriteTimeout: appConf.Server.TimeoutWrite,
  36. IdleTimeout: appConf.Server.TimeoutIdle,
  37. }
  38. if err := s.ListenAndServe(); err != nil && err != http.ErrServerClosed {
  39. log.Fatal("Server startup failed")
  40. }
  41. }