This commit is contained in:
Jeidnx 2025-04-08 18:29:59 +02:00 committed by GitHub
commit 7091815cc3
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
3 changed files with 16 additions and 20 deletions

View file

@ -20,12 +20,10 @@ FROM scratch
COPY --from=build /app/anonymousoverflow /anonymousoverflow
COPY --from=build /app/healthcheck /healthcheck
COPY templates /templates
COPY public /public
COPY --from=build /etc/ssl/certs /etc/ssl/certs
HEALTHCHECK --interval=60s --timeout=5s --start-period=2s --retries=3 CMD [ "/healthcheck","http://localhost:8080/healthz" ]
EXPOSE 8080
CMD ["/anonymousoverflow"]
CMD ["/anonymousoverflow"]

18
main.go
View file

@ -4,7 +4,11 @@ import (
"anonymousoverflow/env"
"anonymousoverflow/src/middleware"
"anonymousoverflow/src/routes"
"embed"
"fmt"
"html/template"
"io/fs"
"net/http"
"os"
"github.com/gin-gonic/gin"
@ -13,6 +17,12 @@ import (
"github.com/tavsec/gin-healthcheck/config"
)
//go:embed templates/*
var templates embed.FS
//go:embed public/*
var public embed.FS
func main() {
env.RunChecks()
@ -29,19 +39,21 @@ func main() {
if os.Getenv("DEV") != "true" {
gin.SetMode(gin.ReleaseMode)
fmt.Printf("Running in production mode. Listening on %s:%s.", host, port)
fmt.Printf("Running in production mode. Listening on %s:%s.\n", host, port)
}
r := gin.Default()
r.LoadHTMLGlob("templates/*")
templ := template.Must(template.New("").ParseFS(templates, "templates/*"))
r.SetHTMLTemplate(templ)
r.Use(gin.Recovery())
r.Use(middleware.XssPreventionHeaders())
r.Use(middleware.OptionsMiddleware())
r.Use(middleware.Ratelimit())
r.GET("/static/*filepath", routes.StaticContent)
static, _ := fs.Sub(public, "public")
r.StaticFS("/static", http.FS(static))
r.GET("/robots.txt", func(c *gin.Context) {
c.String(200, "User-agent: *\nDisallow: /")

View file

@ -1,14 +0,0 @@
package routes
import (
"fmt"
"strings"
"github.com/gin-gonic/gin"
)
func StaticContent(c *gin.Context) {
cleanFilePath := strings.ReplaceAll(c.Param("filepath"), "..", "")
c.File(fmt.Sprintf("./public/%s", cleanFilePath))
}