package main import ( "fmt" "log" "net/http" "os" "git.unsupervised.ca/walkies/internal/db" "git.unsupervised.ca/walkies/internal/server" ) func main() { dsn := getenv("DATABASE_DSN", "walkies.db") jwtSecret := getenv("JWT_SECRET", "change-me-in-production") staticDir := getenv("STATIC_DIR", "./web/dist") port := getenv("PORT", "8080") database, err := db.Open(dsn) if err != nil { log.Fatalf("open database: %v", err) } defer database.Close() if err := db.Migrate(database); err != nil { log.Fatalf("migrate database: %v", err) } handler := server.New(database, jwtSecret, staticDir) addr := fmt.Sprintf(":%s", port) log.Printf("server listening on %s", addr) if err := http.ListenAndServe(addr, handler); err != nil { log.Fatalf("server error: %v", err) } } func getenv(key, fallback string) string { if v := os.Getenv(key); v != "" { return v } return fallback }