Restyle admin UI to dark theme, fix Docker /data volume permissions

- Rework the admin UI (topbar, sidebar, cards, tables, badges, stat
  tiles) into a dark theme with a light/dark toggle, matching the
  visual style requested for the project.
- Fix Dockerfile: chown /data to the distroless nonroot uid/gid before
  the VOLUME declaration so a freshly created named volume is seeded
  with writable permissions instead of root:root (was causing
  "unable to open database file" on first run).

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:37:51 -05:00
co-authored by Claude Sonnet 5
parent ba1f7c4c03
commit affdbfaa41
9 changed files with 483 additions and 67 deletions
+5
View File
@@ -5,9 +5,14 @@ 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
# distroless:nonroot runs as uid:gid 65532:65532 with no shell, so create
# and own /data here — Docker seeds a fresh named volume's permissions
# from the image directory it overlays, which is otherwise root:root.
RUN mkdir -p /out/data && chown 65532:65532 /out/data
FROM gcr.io/distroless/static-debian12:nonroot
COPY --from=build /out/vibeproxy /usr/local/bin/vibeproxy
COPY --from=build --chown=65532:65532 /out/data /data
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