FROM golang:1.26-alpine AS builder
RUN apk add --no-cache git
WORKDIR /app

COPY go.mod go.sum ./
RUN go mod download

COPY . .
RUN CGO_ENABLED=0 GOOS=linux go build -o main ./cmd/server

FROM alpine:3.23 
RUN apk add --no-cache ffmpeg bash ca-certificates

RUN addgroup -S appgroup && adduser -S appuser -G appgroup

WORKDIR /app

COPY --from=builder /app/main .
COPY --from=builder /app/web ./web

RUN mkdir -p /app/media/raw /app/media/hls && \
    chown -R appuser:appgroup /app

USER appuser

EXPOSE 8080

CMD ["./main"]