rust-web-server 17.111.0

A dependency-minimal Rust web platform: HTTP/1.1, HTTP/2, and HTTP/3 server, reverse proxy, and application framework with routing, middleware (auth, rate limiting, tracing), an MCP server, an async ORM, background jobs, object storage, and a mailer. Runs as a zero-code config-driven proxy or as a library crate. No hyper, no Tower — HTTP/1.1, routing, and middleware are built in; HTTP/2 and HTTP/3 framing use the standard h2 and quinn crates.
Documentation
# Release image published to ghcr.io/bohdaq/rws by .github/workflows/release.yml.
#
# Unlike ./Dockerfile (which compiles from source), this copies in the static
# musl binary the release workflow already built for each platform, so a
# multi-arch image needs no Rust toolchain and no QEMU-emulated compile.
# Expects dist/amd64/rws and dist/arm64/rws in the build context.
FROM gcr.io/distroless/static-debian12:nonroot

ARG TARGETARCH
COPY --chmod=755 dist/${TARGETARCH}/rws /usr/local/bin/rws

# rws serves static files from its working directory — mount content here:
#   docker run -p 7878:7878 -v "$PWD:/srv" ghcr.io/bohdaq/rws
# or drop an rws.config.toml in it to run as a config-driven proxy.
WORKDIR /srv

# Binds 0.0.0.0:7878 by default; override with -e RWS_CONFIG_PORT=...
EXPOSE 7878

ENTRYPOINT ["/usr/local/bin/rws"]