Initial commit: sheepflix media streaming API
Go API for browsing/searching media files with ffprobe metadata, token auth, and go-transcode integration for HLS streaming. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
This commit is contained in:
commit
31cd97e267
11 changed files with 631 additions and 0 deletions
36
Dockerfile
Normal file
36
Dockerfile
Normal file
|
|
@ -0,0 +1,36 @@
|
|||
## Stage 1: Build go-transcode
|
||||
FROM golang:1.23-alpine AS build-transcode
|
||||
RUN apk add --no-cache git
|
||||
WORKDIR /src
|
||||
COPY go-transcode/ ./
|
||||
RUN if [ -f go.mod ]; then go build -o /go-transcode .; fi
|
||||
|
||||
## Stage 2: Build sheepflix-api
|
||||
FROM golang:1.23-alpine AS build-api
|
||||
WORKDIR /src
|
||||
COPY go.mod go.sum ./
|
||||
RUN go mod download
|
||||
COPY cmd/ cmd/
|
||||
COPY internal/ internal/
|
||||
RUN CGO_ENABLED=0 go build -o /sheepflix-api ./cmd/sheepflix
|
||||
|
||||
## Stage 3: Runtime
|
||||
FROM alpine:3.20
|
||||
|
||||
RUN apk add --no-cache \
|
||||
ffmpeg \
|
||||
libva \
|
||||
libva-intel-driver \
|
||||
intel-media-driver \
|
||||
mesa-va-gallium \
|
||||
bash
|
||||
|
||||
COPY --from=build-api /sheepflix-api /usr/local/bin/sheepflix-api
|
||||
COPY --from=build-transcode /go-transcode /usr/local/bin/go-transcode
|
||||
|
||||
COPY entrypoint.sh /entrypoint.sh
|
||||
RUN chmod +x /entrypoint.sh
|
||||
|
||||
EXPOSE 8090 8091
|
||||
|
||||
ENTRYPOINT ["/entrypoint.sh"]
|
||||
Loading…
Add table
Add a link
Reference in a new issue