embystream 0.0.33

Another Emby streaming application (frontend/backend separation) written in Rust.
Documentation
FROM oven/bun:1.3.12 AS frontend-builder

WORKDIR /usr/src/app/web

COPY web/package.json web/bun.lock ./
RUN bun install --frozen-lockfile

COPY web ./
RUN bun run build

FROM rust:1.88.0-slim AS builder

RUN apt-get update && apt-get install -y --no-install-recommends \
    build-essential \
    cmake \
    pkg-config \
    && rm -rf /var/lib/apt/lists/*

WORKDIR /usr/src/app

COPY Cargo.toml Cargo.lock build.rs ./
COPY src ./src
COPY locales ./locales
COPY --from=frontend-builder /usr/src/app/web/dist ./web/dist

RUN cargo build --release

FROM debian:bookworm-slim

RUN apt-get update && apt-get install -y --no-install-recommends \
    ca-certificates \
    && rm -rf /var/lib/apt/lists/*

WORKDIR /app

RUN mkdir -p /app/web_data /app/logs

COPY --from=builder /usr/src/app/target/release/embystream /app/embystream

EXPOSE 17172

CMD ["/app/embystream", "web", "serve", "--listen", "0.0.0.0:17172", "--data-dir", "/app/web_data", "--runtime-log-dir", "/app/logs"]