# Build the SPA first so build.rs embeds web/dist via ARR_WEB_DIST.
FROM node:22-bookworm-slim AS web
WORKDIR /src
ENV CI=true
RUN corepack enable && corepack prepare pnpm@11.21.0 --activate
COPY web/package.json web/pnpm-lock.yaml ./web/
RUN pnpm -C web install --frozen-lockfile --config.dangerouslyAllowAllBuilds=true
COPY web ./web
RUN pnpm -C web build

FROM rust:1-bookworm AS build
WORKDIR /src
COPY . .
COPY --from=web /src/web/dist ./web/dist
ENV ARR_WEB_DIST=/src/web/dist
RUN cargo build --release -p arr-daemon

FROM debian:bookworm-slim
RUN apt-get update \
    && apt-get install -y --no-install-recommends ffmpeg ca-certificates \
    && rm -rf /var/lib/apt/lists/*
COPY --from=build /src/target/release/arr /usr/local/bin/arr
ENV ARR_BIND_ADDR=0.0.0.0:7878 \
    ARR_DATABASE_PATH=/data/arr.db
VOLUME /data
EXPOSE 7878
ENTRYPOINT ["arr"]
