it builds and shows the login page

This commit is contained in:
2026-05-20 12:03:28 -06:00
parent 84a5ea92a8
commit 087e845b7b
3 changed files with 67 additions and 0 deletions
+50
View File
@@ -0,0 +1,50 @@
package main
import (
"fmt"
"html/template"
"log"
"net/http"
"os"
"path/filepath"
"github.com/joho/godotenv"
)
func handler(writer http.ResponseWriter, request *http.Request) {
templ := template.Must(template.ParseFiles("./web/dist/index.html"))
templ.Execute(writer, nil)
}
func main() {
err := godotenv.Load()
if err != nil {
log.Fatal("Error loading .env file")
}
webDir := "./web/dist"
fs := http.FileServer(http.Dir(webDir))
http.HandleFunc("/", func(writer http.ResponseWriter, request *http.Request) {
if request.URL.Path != "/" {
path := filepath.Join(webDir, filepath.Clean(request.URL.Path))
_, err := os.Stat(path)
if err == nil {
fs.ServeHTTP(writer, request)
return
}
}
handler(writer, request)
})
port := os.Getenv("HTTP_PORT")
if port == "" {
port = "8080"
}
addr := ":" + port
fmt.Printf("Server listening on http://localhost%s\n", addr)
if err := http.ListenAndServe(addr, nil); err != nil {
log.Fatalf("server error: %v", err)
}
}