57 lines
1017 B
Go
57 lines
1017 B
Go
package main
|
|
|
|
import (
|
|
"log/slog"
|
|
"net/http"
|
|
"os"
|
|
|
|
"menu/handlers"
|
|
|
|
"github.com/joho/godotenv"
|
|
)
|
|
|
|
var (
|
|
Version = "0.8.0"
|
|
BuildTime = "-"
|
|
)
|
|
|
|
func main() {
|
|
setupDefaultLogger()
|
|
|
|
err := godotenv.Load()
|
|
if err != nil {
|
|
slog.Warn("Cannot find .env file, using system env variables")
|
|
}
|
|
|
|
adminUser := os.Getenv("ADMIN_USER")
|
|
adminPass := os.Getenv("ADMIN_PASS")
|
|
|
|
if adminUser == "" {
|
|
slog.Error("Missing ADMIN_USER env variable")
|
|
os.Exit(1)
|
|
}
|
|
|
|
if adminPass == "" {
|
|
slog.Error("Missing ADMIN_PASS env variable")
|
|
os.Exit(1)
|
|
}
|
|
|
|
db := database()
|
|
defer db.Close()
|
|
|
|
// Create App
|
|
app := handlers.NewApp(db, handlers.NewBroker(), make(chan struct{}, 1))
|
|
|
|
// Create server
|
|
srv := NewServer(app, "0.0.0.0:7153", []string{"*"})
|
|
|
|
// Start background cleanup service
|
|
go handlers.StartDailyCleanup(app)
|
|
|
|
slog.Info("Server started", "address", srv.Addr)
|
|
if err := srv.ListenAndServe(); err != nil && err != http.ErrServerClosed {
|
|
slog.Error("Cannot start server", "error", err)
|
|
os.Exit(1)
|
|
}
|
|
}
|