# Runs the FOLIO store as a public server (one shared catalogue for all users).
# Build:  docker build -t folio .
# Run:    docker run -p 8080:8080 -v folio-data:/data folio
# Works as-is on Fly.io, Railway, Render, a VPS, etc. (they set $PORT automatically).
FROM gcc:13 AS build
WORKDIR /app
COPY src ./src
RUN g++ -std=c++17 -O2 -pthread src/*.cpp -o folio

FROM debian:bookworm-slim
WORKDIR /app
COPY --from=build /app/folio ./folio
COPY web ./web
ENV FOLIO_PUBLIC=1 FOLIO_DATA=/data/folio.db PORT=8080
VOLUME ["/data"]
EXPOSE 8080
CMD ["./folio"]
