Upgrades
Better resilience against crashes Even better resilience against crashes Fixed stuff Renamed API service Fixed some paths Simplified error handling Updated README
This commit is contained in:
30
src/main.go
30
src/main.go
@@ -4,19 +4,20 @@ import (
|
||||
"context"
|
||||
"os"
|
||||
"strings"
|
||||
"time"
|
||||
|
||||
swagger "github.com/arsmn/fiber-swagger/v2"
|
||||
"github.com/gofiber/fiber/v2"
|
||||
"github.com/google/uuid"
|
||||
"github.com/jackc/pgx/v4/pgxpool"
|
||||
"github.com/joho/godotenv"
|
||||
"gitlab.larvit.se/power-plan/auth/src/db"
|
||||
h "gitlab.larvit.se/power-plan/auth/src/handlers"
|
||||
"gitlab.larvit.se/power-plan/auth/src/utils"
|
||||
"gitlab.larvit.se/power-plan/auth-api/src/db"
|
||||
h "gitlab.larvit.se/power-plan/auth-api/src/handlers"
|
||||
"gitlab.larvit.se/power-plan/auth-api/src/utils"
|
||||
"go.uber.org/zap"
|
||||
|
||||
// docs are generated by Swag CLI, you have to import them.
|
||||
_ "gitlab.larvit.se/power-plan/auth/src/docs"
|
||||
_ "gitlab.larvit.se/power-plan/auth-api/src/docs"
|
||||
)
|
||||
|
||||
// Don't put in utils, because it creates import cycle with db... just left it here for now
|
||||
@@ -59,19 +60,20 @@ func main() {
|
||||
}
|
||||
|
||||
if os.Getenv("JWT_SHARED_SECRET") == "changeMe" {
|
||||
log.Fatal("You must change JWT_SHARED_SECRET in .env")
|
||||
log.Error("JWT_SHARED_SECRET ENV is not set, using very insecure \"changeMe\"")
|
||||
}
|
||||
if os.Getenv("ADMIN_API_KEY") == "changeMe" {
|
||||
log.Fatal("You must change ADMIN_API_KEY in .env")
|
||||
log.Error("ADMIN_API_KEY ENV is not set, using very insecure \"changeMe\"")
|
||||
}
|
||||
jwtKey := []byte(os.Getenv("JWT_SHARED_SECRET"))
|
||||
|
||||
dbPool, err := pgxpool.Connect(context.Background(), os.Getenv("DATABASE_URL"))
|
||||
if err != nil {
|
||||
log.Fatal("Failed to open DB connection", "err", err.Error())
|
||||
} else {
|
||||
log.Info("Connected to PostgreSQL database")
|
||||
for err != nil {
|
||||
log.Error("Failed to open connection to PostgreSQL database, retrying in 1 second", "err", err.Error())
|
||||
time.Sleep(1 * time.Second)
|
||||
dbPool, err = pgxpool.Connect(context.Background(), os.Getenv("DATABASE_URL"))
|
||||
}
|
||||
log.Info("Connected to PostgreSQL database")
|
||||
defer dbPool.Close()
|
||||
|
||||
app := fiber.New()
|
||||
@@ -102,8 +104,12 @@ func main() {
|
||||
|
||||
log.Info("Trying to start web server", "WEB_BIND_HOST", os.Getenv("WEB_BIND_HOST"))
|
||||
|
||||
if err := app.Listen(os.Getenv("WEB_BIND_HOST")); err != nil {
|
||||
log.Fatal("Could not start web server", "err", err.Error())
|
||||
webBindHost := os.Getenv("WEB_BIND_HOST")
|
||||
err = app.Listen(webBindHost)
|
||||
for err != nil {
|
||||
log.Error("Could not start web server", "err", err.Error(), "WEB_BIND_HOST", webBindHost)
|
||||
time.Sleep(1 * time.Second)
|
||||
err = app.Listen(webBindHost)
|
||||
}
|
||||
|
||||
log.Info("Webb server closed, shutting down")
|
||||
|
||||
Reference in New Issue
Block a user