Files
tiennm99 537c87c458 feat(web): show cards inline for quick viewing and accept the visitor's own token
The web UI is for a quick look at a profile, not for hosting embeddable
images. Cards are inlined into /u/<user> as data: images, the per-card
route is gone, and the page no longer offers copy links or Markdown
snippets. The page itself stays shareable.

Visitors can again paste their own token, with a button that opens
GitHub's new-token page with the needed scopes ticked. A pasted token
takes precedence over sign-in, follows the same ownership, privacy and
cooldown rules, is never stored or logged, and is not revoked. The server
still uses no token of its own.
2026-10-07 19:15:15 +07:00

31 lines
1.2 KiB
YAML

# ghglance web UI, built from this repo's Dockerfile.
services:
ghglance:
build: .
entrypoint: ["ghglance"]
command: ["-serve", ":8080", "-data-dir", "/data", "-retention", "24h"]
restart: unless-stopped
# Tells Coolify's proxy which container port to route to, even when the
# domain is entered without a ":8080" suffix.
expose:
- "8080"
environment:
- SERVICE_FQDN_GHGLANCE_8080
# "Sign in with GitHub" (a GitHub OAuth App) is required. The server
# has no token of its own: every generation runs on the visitor's
# sign-in token or a token they paste into the form.
- GHGLANCE_OAUTH_CLIENT_ID=${GHGLANCE_OAUTH_CLIENT_ID:?set the GitHub OAuth App client ID}
- GHGLANCE_OAUTH_CLIENT_SECRET=${GHGLANCE_OAUTH_CLIENT_SECRET:?set the GitHub OAuth App client secret}
- GHGLANCE_PUBLIC_URL=${GHGLANCE_PUBLIC_URL:?set the external origin, e.g. https://ghglance.example.com}
volumes:
- ghglance-data:/data
healthcheck:
test: ["CMD", "wget", "-qO-", "http://127.0.0.1:8080/healthz"]
interval: 30s
timeout: 5s
retries: 3
start_period: 10s
volumes:
ghglance-data: