Files
lukaszraczylo a593b6fc70 feat(cmd): add a standalone gateway binary and container image
cmd/gateway runs the middleware as its own HTTP server behind Traefik.
It reads a YAML config, converts it to JSON and decodes it with
DisallowUnknownFields, so a misspelled key stops startup. It warns
when metrics.allowedCIDRs is set, because behind a proxy the source
address is the proxy's.

The Makefile gains build-binary, docker-build and run-local targets.
The Dockerfile builds from the committed vendor tree and stamps
main.version from the VERSION build argument. go.mod lists
go.yaml.in/yaml/v3 as a direct dependency.

Claude-Session: https://claude.ai/code/session_01V5jYJNxpDFdJkyyExpADrv
2026-09-23 09:44:32 +01:00

33 lines
1.5 KiB
Plaintext

.superpowers/
# Working specs/plans for the agentic workflow — kept local alongside
# .superpowers/ above (operator decision, 2026-08-21; the directory was also
# removed from git history at the same time).
docs/superpowers/
*.wasm
tools/yaegi-check/llmgw-yaegi-check
tools/pricing-sync/llmgw-pricing-sync
dist/
# `make build-binary`'s output — the standalone binary (deployment form B,
# see README's "Deployment modes"). Built locally on demand, never
# committed, exactly like the two tool binaries above.
bin/
# webui/'s build output (dist/, matched above) and npm dependency tree —
# neither is source: dist/ is regenerated by `vite build`, node_modules/ by
# `npm ci`. admin_assets_gen.go (repo root, `make admin-ui`'s other output)
# is the only artifact from webui/ that is actually committed.
webui/node_modules/
# Rendered from integration/traefik/dynamic.yml.tmpl by `make integration-up`
# (INTEGRATION_REAL_BASEURL substitution) — generated, not source. A whole
# directory (not a single file): Traefik's directory-based file provider
# watches integration/traefik/dynamic/, matching the k8s-ConfigMap-mount
# pattern (see traefik.yml's own comment).
integration/traefik/dynamic/
# Stale-checkout hygiene: this used to be the single rendered file, before
# the switch to the directory above. Keeping it ignored means a leftover
# copy from an older checkout (or a stash/worktree predating the switch)
# never gets accidentally `git add`-ed back in.
integration/traefik/dynamic.yml