20 Commits

Author SHA1 Message Date
hibna d0d3a58907 Fix API lint errors blocking CI
CI / Lint & Type Check (push) Failing after 2m59s
CI / Daemon Build & Test (push) Failing after 13s
CI / Docker Build (push) Has been skipped
CI / Publish images (push) Has been skipped
eslint has been failing on 11 no-explicit-any errors, which kept the
whole pipeline red — including the new publish job that waits on lint.

The casts all worked around missing types rather than unknown shapes:

- jwt: @fastify/jwt decorates the instance at runtime, so the namespace
  is not in FastifyInstance's type. Described the parts we call and cast
  through unknown once, in one place, instead of `as any` at five sites.
- permissions: FastifyInstance.db is declared by the db plugin; the cast
  was stale and hid the real type.
- paginate: the querystring schema already validates page/perPage, so
  the call sites now name that shape via PaginationQuery.

Also dropped an unused import and an unused binding whose call is kept
for its validation side effect.

No behaviour change: eslint and tsc are both clean.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
v0.1.1
2026-08-02 20:56:55 +03:00
hibna 7ca55bc94d Add image-based deployment for control panels
CI / Lint & Type Check (push) Failing after 3m5s
CI / Daemon Build & Test (push) Failing after 13s
CI / Docker Build (push) Has been skipped
CI / Publish images (push) Has been skipped
docker-compose.panel.yml deploys every service from a published image.
A control panel writes only a compose file and an .env into its project
directory, so the build: stanzas of docker-compose.yml cannot resolve
their context there.

CI pushes api, migrate, web and daemon images to the Gitea container
registry on v* tags. The migrate stage ships as its own image because
the panel compose runs it as a one-shot service before the API starts.

The web port is named HOST_PORT: panels reverse-proxy "the" port of an
installation and need to know which one that is when a stack publishes
more than one.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
v0.1.0
2026-08-02 20:39:58 +03:00
hibna 11924416a9 fix: something 2026-08-02 20:26:54 +03:00
hibna 5215560ede her sey 2026-07-21 22:06:10 +00:00
hibna afc64b83c1 Add panel feature updates across API, daemon, and web 2026-03-02 21:53:54 +00:00
hibna 6b463c2b1a fix(daemon): preserve file ownership on writes for cs2 addons 2026-02-26 22:36:57 +00:00
hibna c7d1627e18 feat: patch cs2 gameinfo after metamod install 2026-02-26 21:21:27 +00:00
hibna 2a3ad5e78f feat: overhaul server automation, files editor, and CS2 setup workflows 2026-02-26 21:01:00 +00:00
hibna 44c439e2f9 feat: wire daemon console/files/config/players and improve runtime fallbacks 2026-02-22 12:09:07 +00:00
hibna 614d25c189 Add internal daemon routes and service management scripts 2026-02-22 10:16:42 +00:00
hibna c9fe2bd9fe fix: resolve frontend routing, API mismatches, and missing UI components
- Add servers list page and missing routes (servers, settings redirect, account security)
- Fix members page .map error (API returns { data } wrapper, not flat array)
- Fix auth store fetchUser expecting flat User but API returns { user } wrapper
- Add node token display dialog after creation
- Add allocation management UI to node detail page
- Add account security page with password change
- Add change-password API endpoint
- Add node servers and stats API endpoints
- Fix config save using PATCH instead of PUT, add api.put method
- Fix audit logs field name mismatch (userName vs username)
- Replace admin nodes page to avoid orgId dependency
- Remove duplicate sidebar nav items

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-22 13:07:00 +03:00
hibna d7d8fd5339 Fix auth flows and add daemon heartbeat endpoint 2026-02-22 09:41:17 +00:00
hibna c926613ee0 chore: initial commit for main 2026-02-22 09:52:38 +03:00
hibna 124e4f8921 chore: initial commit for phase07 2026-02-22 00:25:39 +03:00
hibna 5709d8bc10 chore: initial commit for phase06 2026-02-21 23:46:01 +03:00
hibna 0941a9ba46 chore: initial commit for phase05 2026-02-21 16:59:21 +03:00
hibna 218452706c chore: initial commit for phase04 2026-02-21 15:50:35 +03:00
hibna d0c20581b6 chore: initial commit for phase03 2026-02-21 13:37:46 +03:00
hibna 8eb7c90958 chore: update gitignore for phase02 2026-02-21 13:22:51 +03:00
hibna 2215003a4d phase01 2026-02-21 13:02:41 +03:00