feat: embed static files

This commit is contained in:
Jeidnx 2024-11-24 15:10:27 +01:00
parent 0a6af8d412
commit 0f576945b2
No known key found for this signature in database
GPG key ID: 0E9E697B7E99DF39
3 changed files with 15 additions and 19 deletions

View file

@ -20,8 +20,6 @@ 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" ]

16
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()
@ -34,14 +44,16 @@ func main() {
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))
}