From 285c3e573e1d01b952342aeaf91aa09303883ebf Mon Sep 17 00:00:00 2001 From: Tim Keller Date: Fri, 23 May 2025 22:12:05 -0500 Subject: docker support and readme --- Dockerfile | 28 ++++++++++++++++++++++++++++ README.md | 7 +++++++ docker-compose.yaml | 9 +++++++++ main.go | 2 +- template.html | 48 ------------------------------------------------ templates/watch.html | 48 ++++++++++++++++++++++++++++++++++++++++++++++++ 6 files changed, 93 insertions(+), 49 deletions(-) create mode 100644 Dockerfile create mode 100644 README.md create mode 100644 docker-compose.yaml delete mode 100644 template.html create mode 100644 templates/watch.html diff --git a/Dockerfile b/Dockerfile new file mode 100644 index 0000000..7e389c4 --- /dev/null +++ b/Dockerfile @@ -0,0 +1,28 @@ +# Use an official Go image as the builder +FROM golang:1.24-alpine AS builder + +WORKDIR /app + +# Copy go mod and sum first +COPY go.mod go.sum ./ +RUN go mod download + +# Copy the source code +COPY . . + +# Build the Go app +RUN go build -o mintube . + +# Final lightweight image +FROM alpine:latest + +WORKDIR /app +COPY --from=builder /app/mintube . +COPY --from=builder /app/templates ./templates +COPY --from=builder /app/static ./static + +# If your app needs ports exposed (e.g., a web server) +EXPOSE 8080 + +# Run the Go app +CMD ["./mintube"] diff --git a/README.md b/README.md new file mode 100644 index 0000000..4775fb3 --- /dev/null +++ b/README.md @@ -0,0 +1,7 @@ +# MINTUBE +A Minimal YouTube client utilizing embeds and the official YouTube API. + +# API KEY +The API key is required for video details and comments. +Generate an API key and either `export` it into your environment using +`API_KEY=...` or, better yet, save it into a `.env` file. diff --git a/docker-compose.yaml b/docker-compose.yaml new file mode 100644 index 0000000..bd98f85 --- /dev/null +++ b/docker-compose.yaml @@ -0,0 +1,9 @@ +services: + mintube: + build: . + restart: always + ports: + - 7008:8080 # TOOB + # Add api key here, or in .env file + #environment: + # - API_KEY: AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA diff --git a/main.go b/main.go index eb56d90..160230b 100644 --- a/main.go +++ b/main.go @@ -12,7 +12,7 @@ import ( ) const youtubeAPI = "https://www.googleapis.com/youtube/v3/" -var tmpl = template.Must(template.ParseFiles("template.html")) +var tmpl = template.Must(template.ParseFiles("templates/watch.html")) func apiRequest(w http.ResponseWriter, r *http.Request, endpoint string, videoIdParam string, part string) { videoID := r.URL.Query().Get("id") diff --git a/template.html b/template.html deleted file mode 100644 index bae485d..0000000 --- a/template.html +++ /dev/null @@ -1,48 +0,0 @@ - - - - - - - - - - - -

- - -
- - - diff --git a/templates/watch.html b/templates/watch.html new file mode 100644 index 0000000..bae485d --- /dev/null +++ b/templates/watch.html @@ -0,0 +1,48 @@ + + + + + + + + + + + +

+ + +
+ + + -- cgit v1.2.3