Skip to content

Releases: WebSummoner/ggr

Release list

1.0.0

Choose a tag to compare

@GhaziTriki GhaziTriki released this 03 Sep 02:30

🔀 ggr 1.0.0

Go Grid Router — the load balancer that turns a set of hubs into one address.

✨ Changes

  • Both no-wait spellings. When several hosts could serve a session, ggr asks backends to reply immediately with X-WebSummoner-No-Wait and the legacy X-Selenoid-No-Wait, so mixed clusters of WebSummoner and Selenoid hubs behave the same.
  • Reverse proxy on httputil.ProxyRequest.Rewrite with X-Forwarded-* set; the client address is read before the rewrite so logs stay correct. The deprecated Director API is gone from every proxy in the router.
  • Basic authentication uses go-http-auth's context API (NewContext / RequireAuth) instead of the wrapper that hid the request type. Same behaviour, plain http.HandlerFunc handlers.
  • The configuration types are used through the config package name rather than a dot-import. Go consumers import github.com/websummoner/ggr/config; the hub and ggr-ui do.
  • Module github.com/websummoner/ggr; Go 1.21 → 1.27; x/net 0.23 → 0.58; testify 1.8.4 → 1.12.1; fsnotify 1.10.1; yaml.v3 replaced by go.yaml.in/yaml/v3.
  • Buffered signal channels; unchecked io.Copy and encoder errors fixed; time.Since; the watch build tag declared with //go:build.

🏗️ CI and docs

  • golangci-lint on every push and pull request; tests run on push to master as well as on pull requests; GitHub Actions bumped (checkout v7, setup-go v7, golangci-lint-action v9); badges fixed.
  • Docker push script lower-cases the repository name and logs in via stdin.
  • The AsciiDoc guide is replaced by a Starlight site at websummoner.riadvice.com/ggr: quick start, quota files and reload, users file, TLS, video, logs, DevTools, multiple instances, how it works, CLI flags, log files.
  • Codecov, DeepSource, Dependabot.

Part of WebSummoner 1.0.0 · 📖 Documentation · 💬 Discussions

WebSummoner is developed and maintained by RIADVICE under Apache-2.0. It builds on Selenoid by Aerokube and Ivan Krutov, and on the original UI by Kirill Merkushev.