341 Commits

Author SHA1 Message Date
claude-timemachine cf3ed60bce automc ui: match wrapper-console palette + flat layout
CI / validate (push) Successful in 13s
CI / docker (push) Successful in 9s
Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
2026-06-10 18:43:04 +02:00
claude-timemachine 39d7d4586b automc ui: per-route active connection counts + total in header
CI / validate (push) Successful in 15s
CI / docker (push) Successful in 12s
Pulls mc_router_active_connections + mc_router_server_active_connections
from the Prometheus default registry on every /api/routes call. UI
gains an Active column on the routes table and the header subtitle
shows "N routes · M active conn".

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
2026-06-10 18:39:59 +02:00
claude-timemachine b995e012be automc ui: relative api paths so /infra/mc-router/ proxying works
CI / validate (push) Successful in 13s
CI / docker (push) Successful in 10s
Same fix as svc-proxy: absolute /api/* hit the server-manager origin
when the UI is reverse-proxied at /infra/mc-router/. Switch to ./api/*
so the requests stay under the proxied prefix.

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
2026-06-10 18:35:00 +02:00
claude-timemachine e2ce0453fa automc: operator UI on AUTOMC_UI_BINDING
CI / validate (push) Successful in 12s
CI / docker (push) Successful in 15s
Adds a separate HTTP server (not the upstream API on :25590) for the
operator dashboard. Single-page UI with two panes:
  * routes table — current pg-synced mappings, polled every 2s
  * logs — SSE stream backed by a logrus hook + 500-entry ring buffer

Opt-in via AUTOMC_UI_BINDING (e.g. ":8082"); unset = no-op, behaves
exactly like upstream. Designed to live behind server-manager's
/infra/mc-router/* reverse-proxy.

Patch is internal/automc-only, same fork philosophy as the rest —
upstream files stay verbatim.

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
2026-06-10 18:03:48 +02:00
claude-timemachine 004ee6dbfd automc: drop waker gate on backend-down predefined status
CI / validate (push) Successful in 38s
CI / docker (push) Successful in 16s
Previously, the predefined "asleep" MOTD response on backend-dial-failure
was only served when the route had a waker registered. For static fleets
(no auto-scale) the gate left clients with a silently-closed TCP socket on
status-pings whenever the backend was down — they couldn't tell whether
the route was wrong, the host was offline, or the proxy was down.

Drop the `waker != nil` gate so any known route's dial-failure on
NextState=Status falls back to the configured asleep/loading MOTD. The
existing per-route override + global AUTO_SCALE_ASLEEP_MOTD chain handles
the actual text. Login attempts still close silently as before — only
status pings get the fallback.

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
2026-06-08 18:24:32 +02:00
claude-timemachine 7884fb1c5f automc: schema-fit query + CI + FORK doc
CI / validate (push) Successful in 47s
CI / docker (push) Successful in 44s
- pgsync.go: filter rows where enabled IS NOT FALSE and domain IS NOT NULL,
  matching the existing automc servers table (domain nullable, enabled
  defaults true). Trigger doc now includes UPDATE OF enabled.
- .gitea/workflows/ci.yaml: build/test on push to automc branch + tags,
  publish container as git.timemachine.center/timemachine/mc-router:automc.
- FORK.md: soft-fork relationship doc at repo root.
- docs/AUTOMC.md: quick-start recipe, troubleshooting table,
  sync-lifecycle and waker-dispatch sequence diagrams.
2026-05-27 22:57:51 +02:00
claude-timemachine 657fca325e automc: pg LISTEN/NOTIFY route source + HTTP waker
Adds opt-in extension package internal/automc/ that:
- Subscribes to Postgres notifications on a 'servers' table and pushes
  route changes into server.Routes (no file I/O, no fsnotify).
- Provides a WakerFunc that POSTs to a configurable HTTP control plane
  (server-manager) and polls until state=running.

When AUTOMC_DSN is unset, Wire() is a no-op and the binary behaves
exactly like upstream itzg/mc-router. Single patch site in main.go
(import + 4-line call) keeps upstream rebases trivial.

See docs/AUTOMC.md for env vars and the expected DB schema/trigger.
2026-05-27 11:10:02 +02:00
Caedis 74d0c40022 Convert docker polling to event listening (#548)
release / release (push) Failing after 0s
v1.42.1
2026-05-09 12:33:04 -05:00
dependabot[bot] 982a8b8bd9 build(deps): bump github.com/fsnotify/fsnotify from 1.9.0 to 1.10.1 (#549) 2026-05-06 11:21:29 -05:00
Caedis 84d7feb357 Add timezone support (#550) 2026-05-05 13:47:32 -05:00
dependabot[bot] 2e6d68aade build(deps): bump the k8s group with 3 updates (#545) 2026-04-20 20:47:12 -06:00
Geoff Bourne 6f470761a5 deps: upgrade to Go 1.26.2 (#544) 2026-04-18 16:13:31 -05:00
dependabot[bot] f9127aaa39 build(deps): bump golang.org/x/text from 0.35.0 to 0.36.0 (#543) 2026-04-14 08:42:43 -05:00
dependabot[bot] 358dcdfbe0 build(deps): bump golang.org/x/text from 0.34.0 to 0.35.0 (#537)
Bumps [golang.org/x/text](https://github.com/golang/text) from 0.34.0 to 0.35.0.
- [Release notes](https://github.com/golang/text/releases)
- [Commits](https://github.com/golang/text/compare/v0.34.0...v0.35.0)

---
updated-dependencies:
- dependency-name: golang.org/x/text
  dependency-version: 0.35.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-04-07 18:15:31 -05:00
dependabot[bot] 2796d92948 build(deps): bump the k8s group with 3 updates (#540)
Bumps the k8s group with 3 updates: [k8s.io/api](https://github.com/kubernetes/api), [k8s.io/apimachinery](https://github.com/kubernetes/apimachinery) and [k8s.io/client-go](https://github.com/kubernetes/client-go).


Updates `k8s.io/api` from 0.33.4 to 0.35.2
- [Commits](https://github.com/kubernetes/api/compare/v0.33.4...v0.35.2)

Updates `k8s.io/apimachinery` from 0.33.4 to 0.35.2
- [Commits](https://github.com/kubernetes/apimachinery/compare/v0.33.4...v0.35.2)

Updates `k8s.io/client-go` from 0.33.4 to 0.35.2
- [Changelog](https://github.com/kubernetes/client-go/blob/master/CHANGELOG.md)
- [Commits](https://github.com/kubernetes/client-go/compare/v0.33.4...v0.35.2)

---
updated-dependencies:
- dependency-name: k8s.io/api
  dependency-version: 0.35.2
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: k8s
- dependency-name: k8s.io/apimachinery
  dependency-version: 0.35.2
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: k8s
- dependency-name: k8s.io/client-go
  dependency-version: 0.35.2
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: k8s
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-04-07 07:17:18 -05:00
Louis Wehmschulte 6c5288a5f8 Add ScalingTarget to Routes API response (#541)
release / release (push) Failing after 0s
v1.42.0
2026-04-04 12:21:09 -05:00
Geoff Bourne f43f2786d0 Group k8s updates in dependabot (#539) 2026-03-17 11:13:06 -05:00
Geoff Bourne 7a093007bc Go version needed to be pinned in go.mod (#538) 2026-03-17 11:03:02 -05:00
Geoff Bourne b6e6114c56 Added --log-level option (#531) 2026-03-17 08:06:07 -05:00
Bastian Wagner 5c7f5d7b36 feat: show asleep or loading motd for k8s servers (#535) 2026-03-09 18:22:53 -05:00
Geoff Bourne 6d82553a65 Don't spam warnings when stopped container discovered (#530) 2026-02-27 07:08:39 -06:00
Lenart Kos 2023e73892 Fix docker scaling and show loading MOTD (#529)
* fix: Reduce log spam for sleeping servers

* fix: Fix autodownscaling for initial player connection

* fix: Instant route updating when a docker container is downscaled

* feat: Show asleep or loading motd while the server is waking up
2026-02-25 20:46:51 -06:00
Geoff Bourne ea6419bece Add GitHub Actions workflow for issue notifications (#528) 2026-02-21 16:59:01 -06:00
dependabot[bot] 63e7625ed7 build(deps): bump golang.org/x/text from 0.33.0 to 0.34.0 (#522) 2026-02-15 22:53:13 -06:00
dependabot[bot] d2d3433f69 build(deps): bump github.com/pires/go-proxyproto from 0.10.0 to 0.11.0 (#523)
Bumps [github.com/pires/go-proxyproto](https://github.com/pires/go-proxyproto) from 0.10.0 to 0.11.0.
- [Release notes](https://github.com/pires/go-proxyproto/releases)
- [Commits](https://github.com/pires/go-proxyproto/compare/v0.10.0...v0.11.0)

---
updated-dependencies:
- dependency-name: github.com/pires/go-proxyproto
  dependency-version: 0.11.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-02-15 21:19:48 -06:00
Geoff Bourne 8f4b64a9eb Use duration type for options for Docker auto-scaling delays (#524) 2026-02-15 20:12:53 -06:00
Chris Farhood 21f349c2da Allow mc-router to scale a backend StatefulSet while routing traffic to a proxy via proxyServerName (#512) 2026-02-13 07:07:27 -06:00
dependabot[bot] 1f86f88536 build(deps): bump github.com/pires/go-proxyproto from 0.9.2 to 0.10.0 (#517) 2026-02-08 19:20:18 -06:00
dependabot[bot] 4e8abb2f7e build(deps): bump github.com/pires/go-proxyproto in the patches group (#513) 2026-02-02 07:10:42 -06:00
dependabot[bot] c27902711f build(deps): bump github.com/pires/go-proxyproto from 0.8.1 to 0.9.1 (#510) 2026-01-25 21:22:20 -06:00
Lenart Kos 4df81f032d Fix race condition during first connection (#509) 2026-01-21 17:09:35 -06:00
dependabot[bot] be1163e201 build(deps): bump github.com/sirupsen/logrus in the patches group (#508) 2026-01-19 08:38:32 -06:00
dependabot[bot] 9a682c1f35 build(deps): bump golang.org/x/text from 0.30.0 to 0.33.0 (#504) 2026-01-18 07:32:59 -06:00
Jacob Schuler a0eee38519 Add svc-router to README Community Solutions (#503) 2026-01-09 21:22:03 -06:00
Jasper 9cc25e4127 Expose rate limit bucket tokens as metric (#502) 2026-01-03 21:43:46 -06:00
Geoff Bourne abdb3c8b6e Update devcontainer to support docker auto-discovery (#501) 2025-12-22 21:24:22 -06:00
Jacob Schuler 0938276368 Modify Dockerfile to add cache volumes (#500) 2025-12-22 21:00:05 -06:00
Jacob Schuler bd2a9dfda3 add back arm/v6 docker images (#496) 2025-12-21 11:21:07 -06:00
Geoff Bourne 19d56161f5 With k8s correctly handle disabled auto-scale up case (#495) 2025-12-21 09:24:32 -06:00
Jacob Schuler 4fbaa59e3c update goreleaser to use docker_v2 format (#493) 2025-12-20 18:16:14 -06:00
Lenart Kos 4dff00dda9 Docker auto-scale and asleep motd status (#488) 2025-12-20 13:31:34 -06:00
Geoff Bourne b67d0985dc Use Docker API version auto negotiation (#486) 2025-11-28 11:20:10 -06:00
Geoff Bourne ecbc6638d2 Revert "Add MC-Router-GUI to Communtiy Solutions (#477)" (#478)
This reverts commit 35316f1b1e.
2025-11-19 08:00:44 -08:00
Jacob Witt 35316f1b1e Add MC-Router-GUI to Communtiy Solutions (#477) 2025-11-19 09:56:43 -06:00
Lime dbb334474d Add support for infinity-filter (#476) 2025-11-18 21:13:45 -06:00
Geoff Bourne fcfa29f75a Update copyright year in LICENSE file (#475) 2025-11-14 19:54:02 -06:00
Jasper 305edb3842 docs: add community solution (#474) 2025-11-13 16:07:21 -06:00
Geoff Bourne d23874901b Added a community solutions section (#473) 2025-11-13 07:27:25 -06:00
dependabot[bot] 200da4f52d build(deps): bump github.com/docker/docker (#471) 2025-11-09 19:32:16 -06:00
dependabot[bot] 616d6d72c9 build(deps): bump github.com/itzg/go-flagsfiller from 1.16.0 to 1.17.0 (#469)
Bumps [github.com/itzg/go-flagsfiller](https://github.com/itzg/go-flagsfiller) from 1.16.0 to 1.17.0.
- [Release notes](https://github.com/itzg/go-flagsfiller/releases)
- [Commits](https://github.com/itzg/go-flagsfiller/compare/v1.16.0...v1.17.0)

---
updated-dependencies:
- dependency-name: github.com/itzg/go-flagsfiller
  dependency-version: 1.17.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-10-26 22:13:51 -05:00