Update README.md, .env.sample, and compose.yaml for Versity S3 Gateway to clarify WebUI configuration. Enhance README with details on separate API and WebUI ports, and update .env.sample and compose.yaml to include WebUI settings for improved deployment instructions and usability.

This commit is contained in:
Nikholas Pcenicni
2026-03-28 18:20:55 -04:00
parent 03ed4e70a2
commit 11c62009a4
3 changed files with 17 additions and 1 deletions

View File

@@ -182,7 +182,7 @@ Shared services used across multiple applications.
### versitygw/ (`komodo/s3/versitygw/`) ### versitygw/ (`komodo/s3/versitygw/`)
- **[Versity S3 Gateway](https://github.com/versity/versitygw)** (Port: 10000 by default) - S3-compatible API over a POSIX directory (named Docker volumes). Use as shared object storage for apps that expect S3; pair with clients using path-style URLs and your LAN hostname or reverse proxy. - **[Versity S3 Gateway](https://github.com/versity/versitygw)** — S3 API on port **10000** by default; optional **WebUI** on **8080** (not the same listener—enable `VERSITYGW_WEBUI_PORT` / `VGW_WEBUI_GATEWAYS` per `.env.sample`). Behind **Pangolin**, expose the API and WebUI separately (or you will see **404** browsing the API URL).
**Configuration:** Set either `ROOT_ACCESS_KEY` / `ROOT_SECRET_KEY` or `ROOT_ACCESS_KEY_ID` / `ROOT_SECRET_ACCESS_KEY`. Optional `VERSITYGW_PORT`. Compose uses `${VAR}` interpolation so credentials work with Komodos `docker compose --env-file <run_directory>/.env` (avoid `env_file:` in the service when `run_directory` is not the same folder as `compose.yaml`, or the written `.env` will not be found). **Configuration:** Set either `ROOT_ACCESS_KEY` / `ROOT_SECRET_KEY` or `ROOT_ACCESS_KEY_ID` / `ROOT_SECRET_ACCESS_KEY`. Optional `VERSITYGW_PORT`. Compose uses `${VAR}` interpolation so credentials work with Komodos `docker compose --env-file <run_directory>/.env` (avoid `env_file:` in the service when `run_directory` is not the same folder as `compose.yaml`, or the written `.env` will not be found).

View File

@@ -18,6 +18,13 @@ ROOT_SECRET_KEY=
# Host port mapped to the gateway (container listens on 10000). # Host port mapped to the gateway (container listens on 10000).
VERSITYGW_PORT=10000 VERSITYGW_PORT=10000
# WebUI (container listens on 8080). In Pangolin, create a *second* HTTP resource for this
# port — do not point the UI hostname at :10000 (that is S3 API only; `/` is not the SPA).
VERSITYGW_WEBUI_PORT=8080
# HTTPS URL clients use for the S3 API (must match your Pangolin route to :10000), e.g.:
# VGW_WEBUI_GATEWAYS=https://s3.example.com
VGW_WEBUI_GATEWAYS=
# NFS: object metadata defaults to xattrs; most NFS mounts need sidecar mode # NFS: object metadata defaults to xattrs; most NFS mounts need sidecar mode
# (compose.yaml uses --sidecar /data/sidecar). Create the host path, e.g. # (compose.yaml uses --sidecar /data/sidecar). Create the host path, e.g.
# mkdir -p /mnt/nfs/versity/sidecar # mkdir -p /mnt/nfs/versity/sidecar

View File

@@ -21,8 +21,14 @@ services:
ROOT_SECRET_ACCESS_KEY: ${ROOT_SECRET_ACCESS_KEY} ROOT_SECRET_ACCESS_KEY: ${ROOT_SECRET_ACCESS_KEY}
# Matches Helm chart default; enables `/_/health` for probes. # Matches Helm chart default; enables `/_/health` for probes.
VGW_HEALTH: /_/health VGW_HEALTH: /_/health
# WebUI (browser): separate listener; TLS terminates at Pangolin — serve HTTP in-container.
VGW_WEBUI_NO_TLS: "true"
# Public base URL of the *S3 API* (same host you expose on port 10000 via Pangolin).
# Required for the WebUI JS to call the gateway (see Versity wiki / chart notes).
VGW_WEBUI_GATEWAYS: ${VGW_WEBUI_GATEWAYS}
ports: ports:
- "${VERSITYGW_PORT:-10000}:10000" - "${VERSITYGW_PORT:-10000}:10000"
- "${VERSITYGW_WEBUI_PORT:-8080}:8080"
volumes: volumes:
- /mnt/nfs/versity/s3:/data/s3 - /mnt/nfs/versity/s3:/data/s3
- /mnt/nfs/versity/iam:/data/iam - /mnt/nfs/versity/iam:/data/iam
@@ -31,6 +37,9 @@ services:
command: command:
- "--port" - "--port"
- ":10000" - ":10000"
# Optional WebUI — without this, only the S3 API is served (browsers often see 404 on `/`).
- "--webui"
- ":8080"
- "--iam-dir" - "--iam-dir"
- "/data/iam" - "/data/iam"
- "posix" - "posix"