FROM rust:1.83-bookworm AS build

# Install protoc
RUN apt-get update && apt-get install -y protobuf-compiler && rm -rf /var/lib/apt/lists/*

# build.rs compiles ../../packages/proto/daemon.proto, so the workspace layout
# has to be preserved inside the build context.
WORKDIR /build
COPY packages/proto ./packages/proto
COPY apps/daemon ./apps/daemon

WORKDIR /build/apps/daemon
RUN cargo build --release

# --- Production ---
FROM debian:bookworm-slim AS production

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

WORKDIR /app
COPY --from=build /build/apps/daemon/target/release/gamepanel-daemon /app/gamepanel-daemon

# Data directories
RUN mkdir -p /var/lib/gamepanel/servers /var/lib/gamepanel/backups /etc/gamepanel

EXPOSE 50051
HEALTHCHECK --interval=30s --timeout=5s --start-period=15s CMD /app/gamepanel-daemon --health-check || exit 1

CMD ["/app/gamepanel-daemon"]
