mini-static 0.16.0

A secure, async static file server with streaming, traversal protection, and connection limits.
Documentation
FROM rust:1-slim-bookworm AS builder

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

WORKDIR /app

COPY Cargo.toml Cargo.lock ./
COPY crates/ ./crates/

RUN cargo build -p mini-static --example mini-static --release

FROM debian:bookworm-slim AS runtime

RUN apt-get update && apt-get install -y --no-install-recommends curl \
    && rm -rf /var/lib/apt/lists/* \
    && useradd --system --no-create-home appuser \
    && mkdir -p /home/appuser/public \
    && chown -R appuser:appuser /home/appuser/public

COPY --from=builder /app/target/release/examples/mini-static /usr/local/bin/mini-static-example

USER appuser
EXPOSE 8080

ENV PORT=8080 ROOT=/home/appuser/public

CMD ["mini-static-example"]