From 535c28cf50cecefe0bf210ec70a656a10aba1423 Mon Sep 17 00:00:00 2001 From: Conner McCall Date: Thu, 6 Aug 2020 07:56:12 -0500 Subject: [PATCH] initial commit --- .dockerignore | 1 + Dockerfile | 13 +++++++++++++ src/main.go | 39 +++++++++++++++++++++++++++++++++++++++ 3 files changed, 53 insertions(+) create mode 100644 .dockerignore create mode 100644 Dockerfile create mode 100644 src/main.go diff --git a/.dockerignore b/.dockerignore new file mode 100644 index 0000000..6b8710a --- /dev/null +++ b/.dockerignore @@ -0,0 +1 @@ +.git diff --git a/Dockerfile b/Dockerfile new file mode 100644 index 0000000..bfa24c7 --- /dev/null +++ b/Dockerfile @@ -0,0 +1,13 @@ +FROM golang:1.14-alpine3.12 + +RUN go get -u github.com/gin-gonic/gin + +WORKDIR /go/src/app + +COPY src . + +RUN go build src/main.go + +RUN rm -rf src + +ENTRYPOINT ["main"] diff --git a/src/main.go b/src/main.go new file mode 100644 index 0000000..6a454b5 --- /dev/null +++ b/src/main.go @@ -0,0 +1,39 @@ +package main + +import ( + "log" + "net/http" + "os" + + "github.com/gin-gonic/gin" +) + +func main() { + router := gin.Default() + router.GET("/healthcheck", func(c *gin.Context) { + c.JSON(http.StatusOK, gin.H{ + "message": "ok", + }) + }) + router.GET("adblock", func(c *gin.Context) { + var length, host, apiKey, url string + length = c.DefaultQuery("length", "1800") + host = os.Getenv("PIHOLE_HOST") + apiKey = os.Getenv("PIHOLE_API_KEY") + url = host + "/admin/api.php?disable=" + length + "&auth=" + apiKey + log.Print(url) + resp, err := http.Get(url) + if err != nil { + c.JSON(http.StatusInternalServerError, gin.H{ + "message": "something went wrong", + }) + log.Fatalln("Unable to disable pihole") + } + log.Print(resp) + c.JSON(http.StatusOK, gin.H{ + "message": "OK", + }) + + }) + router.Run() // listen and serve on 0.0.0.0:8080 (for windows "localhost:8080") +}