diff --git a/dev/docker/images/production/Dockerfile b/dev/docker/images/production/Dockerfile new file mode 100644 index 0000000..0870c3e --- /dev/null +++ b/dev/docker/images/production/Dockerfile @@ -0,0 +1,11 @@ +FROM golang:alpine3.17 AS build +WORKDIR /build +COPY ./src ./src +WORKDIR /build/src +RUN ls +RUN go get . +RUN go build -o /build/static-hoster + +FROM alpine:3.17 AS final +COPY --from=build /build/static-hoster /bin/static-hoster +CMD static-hoster \ No newline at end of file diff --git a/src/envloader/envloader.go b/src/envloader/envloader.go index f626854..9d17861 100644 --- a/src/envloader/envloader.go +++ b/src/envloader/envloader.go @@ -28,7 +28,7 @@ func Load() (env *Environment) { defaultApiKey := "test123" env = new(Environment) env.RootDir = envReader("STATIC_HOSTER_HOME", fmt.Sprintf("%s/static-hoster/", os.Getenv("HOME"))) - env.StaticDir = envReader("STATIC_HOSTER_HOST_DIR", fmt.Sprintf("%s/hosted/", env.RootDir)) + env.StaticDir = envReader("STATIC_HOSTER_HOST_DIR", fmt.Sprintf("%shosted/", env.RootDir)) env.Port = fmt.Sprintf(":%s", envReader("STATIC_HOSTER_PORT", "8080")) env.ApiKey = envReader("STATIC_HOSTER_API_KEY", defaultApiKey) env.BaseRoute = envReader("STATIC_HOSTER_BASE_ROUTE", "/home") diff --git a/src/main.go b/src/main.go index 0985187..8e73fa2 100644 --- a/src/main.go +++ b/src/main.go @@ -1,12 +1,19 @@ package main import ( + "errors" + "fmt" + "os" + "nikurasu.gay/static-hoster/envloader" "nikurasu.gay/static-hoster/router" ) func main() { var env = envloader.Load() + if _, err := os.Stat(fmt.Sprintf("%s404.html", env.StaticDir)); errors.Is(err, os.ErrNotExist) { + os.Create(fmt.Sprintf("%s404.html", env.StaticDir)) + } r := router.Create(env) r.Run(env.Port) }