chore: add go config and logging layer
This commit is contained in:
@@ -3,17 +3,25 @@ package main
|
||||
import (
|
||||
"context"
|
||||
"errors"
|
||||
"log/slog"
|
||||
"net/http"
|
||||
"os"
|
||||
"os/signal"
|
||||
"syscall"
|
||||
"time"
|
||||
|
||||
"forgejo.digital-droplets.de/philschlo/proxui/platform/config"
|
||||
"forgejo.digital-droplets.de/philschlo/proxui/platform/logging"
|
||||
)
|
||||
|
||||
func main() {
|
||||
addr := getenv("CONSOLE_PROXY_ADDR", ":8081")
|
||||
logger := slog.New(slog.NewJSONHandler(os.Stdout, nil))
|
||||
cfg, err := config.Load()
|
||||
if err != nil {
|
||||
logger := logging.New("console-proxy", "unknown", 0)
|
||||
logger.Error("failed to load config", "error", err)
|
||||
os.Exit(1)
|
||||
}
|
||||
|
||||
logger := logging.New("console-proxy", cfg.AppEnv, cfg.LogLevel)
|
||||
|
||||
mux := http.NewServeMux()
|
||||
mux.HandleFunc("GET /healthz", func(w http.ResponseWriter, r *http.Request) {
|
||||
@@ -22,7 +30,7 @@ func main() {
|
||||
})
|
||||
|
||||
server := &http.Server{
|
||||
Addr: addr,
|
||||
Addr: cfg.ConsoleProxyAddr,
|
||||
Handler: mux,
|
||||
ReadHeaderTimeout: 5 * time.Second,
|
||||
}
|
||||
@@ -31,7 +39,7 @@ func main() {
|
||||
defer stop()
|
||||
|
||||
go func() {
|
||||
logger.Info("console proxy listening", "addr", addr)
|
||||
logger.Info("console proxy listening", "addr", cfg.ConsoleProxyAddr)
|
||||
if err := server.ListenAndServe(); err != nil && !errors.Is(err, http.ErrServerClosed) {
|
||||
logger.Error("console proxy failed", "error", err)
|
||||
os.Exit(1)
|
||||
@@ -47,10 +55,3 @@ func main() {
|
||||
os.Exit(1)
|
||||
}
|
||||
}
|
||||
|
||||
func getenv(key, fallback string) string {
|
||||
if value := os.Getenv(key); value != "" {
|
||||
return value
|
||||
}
|
||||
return fallback
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user