Self-contained HTTP/HTTPS/TCP/UDP reverse proxy manager written in Go, with SQLite storage, a Bootstrap 5 admin UI (Go templates, no JS framework), and a REST API under /api/v1. Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01QTXFrNP1imCW7jtfL5SZrw
23 lines
779 B
Docker
23 lines
779 B
Docker
FROM golang:1.25-bookworm AS build
|
|
WORKDIR /src
|
|
COPY go.mod go.sum ./
|
|
RUN go mod download
|
|
COPY . .
|
|
ARG VERSION=dev
|
|
RUN CGO_ENABLED=0 go build -trimpath -ldflags "-s -w -X main.Version=${VERSION}" -o /out/vibeproxy ./cmd/vibeproxy
|
|
|
|
FROM gcr.io/distroless/static-debian12:nonroot
|
|
COPY --from=build /out/vibeproxy /usr/local/bin/vibeproxy
|
|
VOLUME ["/data"]
|
|
# The nonroot container user can't bind ports <1024, so vibeproxy listens
|
|
# on 8080/8443 inside the container; map host 80/443 to these in
|
|
# docker-compose.yml or `docker run -p`.
|
|
EXPOSE 8080 8443 8081
|
|
ENV VIBEPROXY_DATA_DIR=/data \
|
|
VIBEPROXY_DB_PATH=/data/vibeproxy.db \
|
|
VIBEPROXY_HTTP_ADDR=:8080 \
|
|
VIBEPROXY_HTTPS_ADDR=:8443 \
|
|
VIBEPROXY_ADMIN_ADDR=:8081
|
|
ENTRYPOINT ["/usr/local/bin/vibeproxy"]
|
|
CMD ["serve"]
|