Commit Graph

13 Commits

Author SHA1 Message Date
Pacerino
e52d07edeb [Backend] Make caddy list-modules resilient to older builds
Older Caddy versions don't support `list-modules --json`, which made the
plugins page fail with an opaque "exit status 1". Surface stderr in the error
and fall back to parsing the plain-text output (--packages / --skip-standard)
when --json is unsupported, so module detection works on any Caddy version.
2026-06-15 23:15:30 +02:00
Pacerino
a33d535352 [Tests][CI] Add backend/frontend test suites and refactor test tooling
Add unit/integration tests across backend handlers, auth, caddy and
util packages, plus frontend component and API tests with the new
test setup. Update CI workflow and Vite config to run the suites.
2026-06-15 14:17:39 +02:00
Pacerino
b4509d12e7 [Backend][Frontend] Add host plugins with module config and schema-driven UI
Introduce per-host plugin support: Caddy module discovery, module
config endpoints, plugin schemas (basicauth, cloudflare) and the
host plugins API. On the frontend, add the Plugins page, plugin/host
plugin dialogs and schema-driven form fields.
2026-06-15 14:17:34 +02:00
Pacerino
ca6b2f1e64 [Backend] Switch to pure-Go sqlite driver, drop CGO
Replace gorm.io/driver/sqlite (mattn/go-sqlite3, CGO) with
github.com/glebarez/sqlite (modernc, pure Go). Builds and tests no
longer need a C toolchain, fixing CI on runners without gcc. Drop the
race detector from CI (it requires CGO) and build a static binary in
Docker.
2026-06-14 03:18:28 +02:00
Pacerino
2bc7cd5a98 [Backend] Wire providers/auth into API and add startup bootstrap
Route host changes through the selected Caddy provider, add auth routes
and the frontend-dir serving toggle, seed a default admin user on first
run, and validate space/comma separated domain lists via a custom
validator. Includes validator tests.
2026-06-14 02:35:28 +02:00
Pacerino
8019bb9861 [Backend] Add configurable authentication (local or OIDC)
Support CPM_AUTH_MODE=local|oidc. OIDC uses go-oidc with JIT user
provisioning and an optional email-domain allowlist. Adds auth config,
login and callback endpoints, a JWT signing-key bootstrap and
Provider/Subject fields on the user model. Includes OIDC allowlist tests.
2026-06-14 02:35:13 +02:00
Pacerino
7ff0949067 [Backend] Add Caddy provider abstraction with Caddyfile and API modes
Introduce a Provider interface selectable via CPM_CADDY_MODE:
- CaddyfileProvider renders per-host snippets (template whitespace fixed)
- APIProvider manages Caddy's JSON config via the admin API
Add configurable reload strategy (systemd/exec/api/none) and a
configurable listen address for the bootstrapped server in API mode.
Includes unit tests for the JSON builder, provider factory and the
API provider (httptest).
2026-06-14 02:34:54 +02:00
Pacerino
401e2520c1 [Backend] Modernize toolchain to Go 1.24 and update dependencies
Bump Go version, update all dependencies and migrate jwx v1 (deprecated)
to jwx v3.
2026-06-14 02:34:40 +02:00
Pacerino
906e8a0ba2 [Backend] Reload Caddy via dbus 2022-10-04 11:49:00 +02:00
Pacerino
766975f52b small changes to error codes and behavior 2022-10-03 22:50:54 +02:00
Pacerino
e7557515f1 [Backend] Implement Login with JWT 2022-10-03 20:40:58 +02:00
Pacerino
ff1190e8bd rename imports 2022-09-26 15:46:53 +02:00
Pacerino
15842e3c45 Initial Upload 2022-09-26 15:41:00 +02:00