Dockerfile
This commit is contained in:
parent
12d1cff06a
commit
c24c0b4ed3
|
@ -1 +1,2 @@
|
|||
*.sqlite
|
||||
bin/
|
21
Dockerfile
21
Dockerfile
|
@ -1,10 +1,23 @@
|
|||
# Dockerfile
|
||||
FROM golang:latest
|
||||
FROM golang:latest as builder
|
||||
|
||||
WORKDIR /app
|
||||
|
||||
COPY go.mod go.sum .
|
||||
|
||||
RUN go mod download
|
||||
|
||||
COPY . .
|
||||
|
||||
RUN go build -o main .
|
||||
RUN make build
|
||||
|
||||
CMD ["/app/main"]
|
||||
FROM alpine:latest
|
||||
|
||||
ENV DATA=/data
|
||||
|
||||
EXPOSE 80
|
||||
|
||||
WORKDIR /app
|
||||
|
||||
COPY --from=builder /app/bin/trakr .
|
||||
|
||||
ENTRYPOINT ["/app/trakr"]
|
||||
|
|
|
@ -57,7 +57,6 @@ func pixelHandler(w http.ResponseWriter, r *http.Request) {
|
|||
}
|
||||
uuid := pathParts[2]
|
||||
|
||||
// Get the pixel ID from the database
|
||||
pixelID, err := getPixelIDFromUUID(uuid)
|
||||
if err != nil {
|
||||
log.Println("Error getting pixel ID:", err)
|
||||
|
@ -81,7 +80,6 @@ func pixelHandler(w http.ResponseWriter, r *http.Request) {
|
|||
log.Println("Error updating stats:", err)
|
||||
}
|
||||
|
||||
// Serve the pixel image
|
||||
w.Header().Set("Content-Type", "image/gif")
|
||||
w.Write(onePixelGIF)
|
||||
}
|
||||
|
@ -112,14 +110,12 @@ func dashboardHandler(w http.ResponseWriter, r *http.Request) {
|
|||
stats = append(stats, s)
|
||||
}
|
||||
|
||||
// Handle any errors encountered during iteration
|
||||
if err = rows.Err(); err != nil {
|
||||
http.Error(w, "Error iterating data", http.StatusInternalServerError)
|
||||
log.Println("Error iterating data:", err)
|
||||
return
|
||||
}
|
||||
|
||||
// Render the template
|
||||
tmpl, err := template.ParseFiles("public/html/dashboard.html")
|
||||
if err != nil {
|
||||
http.Error(w, "Error loading template", http.StatusInternalServerError)
|
||||
|
|
|
@ -17,16 +17,16 @@ var onePixelGIF = []byte{
|
|||
}
|
||||
|
||||
func Server() {
|
||||
db = initDB("data.sqlite")
|
||||
db = initDB(getenv("DATA", ".") + "/data.sqlite")
|
||||
|
||||
http.HandleFunc("/new", newPixelPageHandler)
|
||||
http.HandleFunc("/create-pixel", createPixelHandler)
|
||||
http.HandleFunc("/p/", pixelHandler)
|
||||
http.HandleFunc("/dashboard", dashboardHandler)
|
||||
|
||||
addr := ":8080"
|
||||
addr := ":80"
|
||||
|
||||
fmt.Printf("Server is up and running on http://localhost%s\n", addr)
|
||||
fmt.Printf("Server is up and running on port %s\n", addr)
|
||||
|
||||
log.Fatal(http.ListenAndServe(addr, nil))
|
||||
}
|
||||
|
|
|
@ -0,0 +1,11 @@
|
|||
package server
|
||||
|
||||
import "os"
|
||||
|
||||
func getenv(key, fallback string) string {
|
||||
value := os.Getenv(key)
|
||||
if len(value) == 0 {
|
||||
return fallback
|
||||
}
|
||||
return value
|
||||
}
|
Loading…
Reference in New Issue