From 43adaf56b9536c755ff6abd47a7fdfc51f034dba Mon Sep 17 00:00:00 2001 From: Steven Polley Date: Sat, 5 Jan 2019 20:09:32 -0700 Subject: [PATCH] Initial commit --- .drone.yml | 23 +++++++++++++++++++++++ Dockerfile | 4 ++++ main.go | 23 +++++++++++++++++++++++ 3 files changed, 50 insertions(+) create mode 100644 .drone.yml create mode 100644 Dockerfile create mode 100644 main.go diff --git a/.drone.yml b/.drone.yml new file mode 100644 index 0000000..12dfd0e --- /dev/null +++ b/.drone.yml @@ -0,0 +1,23 @@ +kind: pipeline +name: default + +workspace: + base: /go + path: src/deadbeef.codes/steven/deadbeef.codes-publicfileserver + +steps: +- name: build + image: golang + pull: always + environment: + GOOS: linux + GOARCH: amd64 + CGO_ENABLED: 0 + commands: + - go version + - go get + - go build -a -ldflags '-w' +- name: publish + image: plugins/docker + settings: + repo: registry.deadbeef.codes/deadbeef.codes-publicfileserver diff --git a/Dockerfile b/Dockerfile new file mode 100644 index 0000000..b55b0f6 --- /dev/null +++ b/Dockerfile @@ -0,0 +1,4 @@ +FROM scratch +COPY deadbeef.codes-publicfileserver / +EXPOSE 8080:8080 +ENTRYPOINT ["/deadbeef.codes-publicfileserver"] \ No newline at end of file diff --git a/main.go b/main.go new file mode 100644 index 0000000..d8a1e97 --- /dev/null +++ b/main.go @@ -0,0 +1,23 @@ +package main + +import ( + "fmt" + "log" + "net/http" + "os" + "os/signal" +) + +// http server setup and routing +func main() { + stop := make(chan os.Signal, 1) + signal.Notify(stop, os.Interrupt) + go func() { + http.Handle("/public/", http.StripPrefix("/public/", http.FileServer(http.Dir("public")))) + log.Fatal(http.ListenAndServe(":8080", nil)) + }() + log.Println("started public fileserver on 8080") + + <-stop + fmt.Println("Shutting server down...") +}