# Dostalgia — Dockerized DOS game hub

# ─── Build frontend ───────────────────────────────
FROM node:20-alpine AS frontend-builder
WORKDIR /src
COPY frontend/package.json frontend/package-lock.json* ./
RUN npm ci 2>/dev/null || npm install
COPY frontend/ ./
RUN npm run build

# ─── Build Go binary ─────────────────────────────
FROM golang:1.23-alpine AS go-builder
WORKDIR /src
COPY go.mod go.sum ./
RUN go mod download 2>/dev/null || true
COPY *.go ./
COPY --from=frontend-builder /src/dist ./frontend/dist/
RUN CGO_ENABLED=0 go build -o /dostalgia .

# ─── Runtime ─────────────────────────────────────
FROM alpine:3.20
RUN apk add --no-cache ca-certificates tzdata
COPY --from=go-builder /dostalgia /dostalgia
VOLUME /data
EXPOSE 8765
ENV DOSTALGIA_DATA=/data
ENV PORT=8765
ENTRYPOINT ["/dostalgia"]
