mirror of
https://github.com/abhigyanpatwari/GitNexus.git
synced 2026-11-04 07:27:20 +00:00
* feat(web): resolve a root-relative GITNEXUS_BACKEND_URL against the page origin A GITNEXUS_BACKEND_URL of `/` (or `/prefix`) is injected as-is, and the web client resolves it against the origin that served the page, so one gitnexus-web deployment reaches its API on every hostname a reverse proxy gives it. Protocol-relative values are left to the URL check and rejected. Documents the two ways to route /api/* behind a proxy. Closes #3593 * fix(web): reject a backslash-prefixed same-origin path The URL parser reads a backslash as a slash, so `/\host` resolved against the page origin became `http://host/`, an origin change. Both the server check and the client resolution now treat it like `//host`. * fix(web): keep a configured base ending in /api, and drop the unsupported direct route normalizeServerUrl stripped a trailing /api from every URL, so a deployment configured with GITNEXUS_BACKEND_URL=/proxy/api passed health and discovery and then connected to /proxy/repo. The deployment's own base is now kept as configured; the /api cleanup stays for hand-entered URLs. A regression covers health, discovery and repository selection under /proxy/api. The README no longer offers routing /api/* straight to `gitnexus serve` on a public hostname: serve refuses to start with GITNEXUS_PUBLIC_ORIGIN set until it has authentication of its own. * fix(web): keep only a same-origin base as configured The bypass in normalizeServerUrl matched any injected default, so an absolute GITNEXUS_BACKEND_URL ending in /api would have produced a doubled /api segment, and one carrying credentials would have kept them. Only a root-relative deployment base is kept now; it is resolved from the page origin, so it has neither. Absolute injected URLs are normalized as before.
31 lines
1.4 KiB
Text
31 lines
1.4 KiB
Text
# Images (signed Cosign keyless on every push from main / vX.Y.Z tags).
|
|
# Available from both GHCR (default below) and Docker Hub — pick one:
|
|
# GHCR: ghcr.io/abhigyanpatwari/gitnexus{,-web}:latest
|
|
# Docker Hub: akonlabs/gitnexus{,-web}:latest
|
|
# Both registries receive the same digest from a single signed build.
|
|
SERVER_IMAGE=ghcr.io/abhigyanpatwari/gitnexus:latest
|
|
WEB_IMAGE=ghcr.io/abhigyanpatwari/gitnexus-web:latest
|
|
|
|
# Container names
|
|
SERVER_CONTAINER_NAME=gitnexus-server
|
|
WEB_CONTAINER_NAME=gitnexus-web
|
|
|
|
# Host ports — the web UI expects the server on http://localhost:4747 by default.
|
|
SERVER_HOST_PORT=4747
|
|
WEB_HOST_PORT=4173
|
|
|
|
# Where the browser reaches the API. Unset: http://localhost:4747. An absolute
|
|
# URL for a server on another host; `/` behind a reverse proxy that serves the
|
|
# API on the same origin as the UI (see README, "Same-origin API behind a
|
|
# reverse proxy").
|
|
# GITNEXUS_BACKEND_URL=/
|
|
|
|
# Optional read-only mount, exposed to the server as /workspace.
|
|
# Override with the directory that contains the repos you want to index.
|
|
WORKSPACE_DIR=./
|
|
|
|
# Azure DevOps Server Integration (passed to the server container)
|
|
# Prefer https:// — the PAT rides in an Authorization header, so cleartext
|
|
# http:// exposes it on the wire (still supported for internal-only instances).
|
|
# AZURE_DEVOPS_URL=https://azuredevops.example.com
|
|
# AZURE_DEVOPS_PAT=your-pat-here
|