Initial vibeproxy implementation

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
This commit is contained in:
2026-08-17 10:28:59 -05:00
co-authored by Claude Sonnet 5
commit ba1f7c4c03
105 changed files with 9142 additions and 0 deletions
+22
View File
@@ -0,0 +1,22 @@
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"]