Commit Graph
92 Commits
Author SHA1 Message Date
eboloandClaude Opus 5 c484014752 Harden the read path, forwarded headers and security docs
Caddy Manager CI build / docker (push) Failing after 1m2s
Found while investigating an unrelated Gitea compromise: CaddyManager itself
was not involved, but reviewing it turned up three things worth closing.

Reading a configuration was the only file operation that did not validate the
name. Saving, renaming and deleting all reject `..`, `/` and `\`, so the read
path was the one way to leave the configuration directory and pull in any
`*.caddy` file on the host. The HTTP API happened to be covered, because GET
checks the name against the directory listing first, but the UI calls the
service directly and nothing stopped it.

Forwarded headers were trusted from any peer. That is correct only while the
container port is unreachable except through the proxy; the moment it is
published, a caller dictates the scheme, host and client address the app
believes in. Loopback and private space cover a proxy on a Docker network or on
the host, which is the documented deployment, and ignore everyone else.

The README never said that the `X-Api-Key` check guards `/api/*` and nothing
else, so the UI - which rewrites Caddyfiles and holds the Docker socket - reads
as protected when it is not. It now says so, and warns about the specific shape
that bit us: a second hostname added for machine callers whose only extra
directive is a `tls` line, which serves the unauthenticated UI to anyone who
can resolve it.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
2026-09-12 17:05:52 +07:00
ebolo 8f0019592e fix(proxy): honor forwarded headers from Caddy
Caddy Manager CI build / docker (push) Successful in 1m14s
Bump the application version to 1.2.2 and configure forwarded headers so
OpenAPI generates HTTPS URLs when TLS is terminated by Caddy.
2026-07-26 20:40:35 +07:00
ebolo 4c271241d7 ci: publish only the web application container
Caddy Manager CI build / docker (push) Successful in 2m45s
Disable container support for tests and bump the application version to
1.2.1.
2026-07-26 20:02:13 +07:00
ebolo 9f7cb79bad feat(api): Add authenticated Caddy management API
Caddy Manager CI build / docker (push) Successful in 4m24s
2026-07-26 18:34:02 +07:00
ebolo a94abca127 build(deps): declare Alpine runtime identifier
Caddy Manager CI build / docker (push) Successful in 3m25s
2026-07-26 16:20:04 +07:00
ebolo 96f0112449 ci(build): target .NET 10 Alpine with low-memory tuning
Caddy Manager CI build / docker (push) Failing after 32s
2026-07-26 16:15:00 +07:00
ebolo 7380680230 feat: upgrade application to .NET 10
Caddy Manager CI build / docker (push) Successful in 6m37s
Preserve configuration defaults with the .NET 10 binder and update
dependencies, Docker builds, CI, and test tooling.
2026-07-26 15:55:11 +07:00
ebolo b5cbad3664 refactor(caddy): centralize reverse proxy editor dialogs
Caddy Manager CI build / docker (push) Successful in 5m28s
2026-07-26 13:29:46 +07:00
ebolo 6f6a37d5a6 chore(version): bump application version to 1.1.0
Caddy Manager CI build / docker (push) Successful in 5m32s
2026-07-26 12:57:12 +07:00
ebolo d5ea7b56cb feat(caddy): support renaming configuration files 2026-07-26 12:55:50 +07:00
ebolo f5a1f99dec feat(caddy): add reload configs action to reverse proxies page
Caddy Manager CI build / docker (push) Successful in 7m32s
2026-07-26 11:58:18 +07:00
ebolo d0687c9134 feat(docker): Gracefully reload Caddy configuration
Caddy Manager CI build / docker (push) Successful in 11m33s
2026-07-26 11:39:59 +07:00
ebolo 284036b549 ux: move tag to the right of hostname
Caddy Manager CI build / docker (push) Successful in 57s
2025-07-31 21:44:26 +07:00
ebolo 1ab09d4344 chore: implement retry mechanism for container publishing in CI workflow
Caddy Manager CI build / docker (push) Successful in 1m35s
2025-07-28 23:08:39 +07:00
ebolo dfc091f98d chore: change color of the tags chip
Caddy Manager CI build / docker (push) Successful in 51s
2025-07-28 23:00:54 +07:00
ebolo d61b6983eb feat: enhance search functionality in CaddyReverseProxiesPage to include tag matching
Caddy Manager CI build / docker (push) Successful in 1m15s
2025-07-28 22:42:17 +07:00
ebolo 7012193e04 feat: add tag extraction functionality to Caddy configuration and display in UI
Caddy Manager CI build / docker (push) Successful in 49s
2025-07-28 22:34:52 +07:00
ebolo 5d5888c6e7 refactor: remove unused using directives from service and test files for cleaner code
Caddy Manager CI build / docker (push) Successful in 1m39s
2025-07-27 13:26:04 +07:00
ebolo 844da49a54 refactor: update layout of CaddyReverseProxiesPage to use MudContainer for improved structure and styling
Caddy Manager CI build / docker (push) Successful in 1m21s
2025-07-26 21:26:16 +07:00
ebolo ad18782149 chore: update coding standards to include service method argument and result wrapping, and add Tailwind CSS script to App.razor
Caddy Manager CI build / docker (push) Failing after 48s
2025-07-26 21:21:30 +07:00
ebolo 0beb3800b5 refactor: update Blazor testing guidelines and improve regex for hostname parsing in Caddy configuration
Caddy Manager CI build / docker (push) Successful in 45s
2025-07-23 15:33:18 +07:00
ebolo 063ed041b0 chore: refactor project structure by removing .cursorignore and updating references to use Contracts in test files
Caddy Manager CI build / docker (push) Successful in 52s
2025-07-23 11:50:12 +07:00
ebolo 85e556fe46 chore: remove coverage report file
Caddy Manager CI build / docker (push) Successful in 50s
2025-07-23 10:40:09 +07:00
ebolo ec454d0346 chore: update project structure with contracts and services for CaddyManager, including configuration and Docker integration
Caddy Manager CI build / docker (push) Successful in 1m16s
2025-07-23 10:37:51 +07:00
ebolo 18c710d341 refactor: enhance layout and structure of Caddyfile and Reverse Proxies pages for improved UI consistency
Caddy Manager CI build / docker (push) Successful in 1m1s
2025-07-17 21:43:58 +07:00
ebolo 2da42bc8bd fix: handle dialog result for Caddy restart and ensure processing state is updated on failure
Caddy Manager CI build / docker (push) Successful in 1m2s
2025-07-17 08:35:30 +07:00
ebolo 209ff3fe9c fix: update deletion confirmation message to display file names instead of configurations
Caddy Manager CI build / docker (push) Successful in 59s
2025-07-16 23:34:17 +07:00
ebolo 401f9a8f51 fix: Implement object equality for CaddyConfigurationInfo to enable list selection
Caddy Manager CI build / docker (push) Successful in 1m0s
2025-07-16 23:13:42 +07:00
ebolo 57a5b0d58d fix: update README links to point to the new GitHub repository and enhance installation instructions for Docker Compose
Caddy Manager CI build / docker (push) Successful in 58s
2025-07-16 10:13:43 +07:00
ebolo 3e0b1e8a7a feat: add Caddy Manager service configuration to Docker Compose with volume mappings
Caddy Manager CI build / docker (push) Successful in 41s
2025-07-16 09:07:23 +07:00
ebolo 83bea70af5 refactor: rename CI job to 'build' and add permissions for container publishing
Caddy Manager CI build / docker (push) Successful in 45s
2025-07-16 08:58:22 +07:00
ebolo 345ff6477a feat: add CI workflow for Caddy Manager with container publishing and metadata handling
Caddy Manager CI build / docker (push) Successful in 45s
2025-07-16 08:55:22 +07:00
ebolo 56da5d6dc2 fix: update commit hash link color for better visibility in UI
Caddy Manager CI build / docker (push) Successful in 1m1s
2025-07-16 08:27:40 +07:00
ebolo a596ae48a0 feat: update commit hash display to be a clickable link in the UI
Caddy Manager CI build / docker (push) Successful in 1m2s
2025-07-16 08:25:29 +07:00
ebolo 1818f47cda fix: correct syntax for container image tags in CI workflow
Caddy Manager CI build / docker (push) Failing after 57s
2025-07-16 08:10:39 +07:00
ebolo 159d9bbbef feat: add application version and commit hash display in UI, update CI workflow for metadata handling
Caddy Manager CI build / docker (push) Failing after 25s
2025-07-16 08:09:14 +07:00
ebolo cade49d89d feat: enhance Caddy reverse proxy configuration with aggregated ports display
Caddy Manager CI build / docker (push) Successful in 1m2s
2025-07-16 07:16:23 +07:00
ebolo ee32425930 feat: update roadmap to reflect completion of caddy file parsing feature
Caddy Manager CI build / docker (push) Successful in 46s
2025-07-16 07:01:37 +07:00
ebolo 44c7a5b45c chore: refactor Caddyfile editor duplication
Caddy Manager CI build / docker (push) Successful in 1m2s
2025-07-15 07:53:34 +07:00
ebolo 14cbcf20f3 feat: add duplicate button to Caddyfile editor
Caddy Manager CI build / docker (push) Successful in 1m12s
2025-07-15 07:44:00 +07:00
ebolo d0bb0f709a feat: allow searching by server name
Caddy Manager CI build / docker (push) Successful in 1m1s
2025-07-12 10:55:04 +07:00
ebolo d90b77d537 feat: Update GitHub icon URL in top bar
Caddy Manager CI build / docker (push) Successful in 1m22s
2025-07-12 09:45:04 +07:00
ebolo 25e58b622d fix: Show progress circular on CaddyReverseProxiesPage when saving and restarting from editor
Caddy Manager CI build / docker (push) Successful in 39s
2025-07-12 08:42:12 +07:00
ebolo a1811169f7 feat: Add save and restart functionality to Caddyfile editor and update launch configuration
Caddy Manager CI build / docker (push) Successful in 45s
2025-07-12 08:30:15 +07:00
ebolo 199ab601d5 chore: tweak the delete dialog
Caddy Manager CI build / docker (push) Successful in 2m52s
2025-07-10 21:59:39 +07:00
ebolo 84e70b724a chore: ui fixes
Caddy Manager CI build / docker (push) Successful in 2m49s
2025-07-10 21:34:22 +07:00
ebolo 4ed7d6bd11 chore: add padding bottom to global caddy config editor
Caddy Manager CI build / docker (push) Successful in 1m0s
2025-07-10 21:26:41 +07:00
ebolo fd366dc21d feat: show info chips for configurations
Caddy Manager CI build / docker (push) Successful in 1m6s
2025-07-10 21:12:15 +07:00
ebolo 520ccd8a49 feat: support clearing the searching text
Caddy Manager CI build / docker (push) Successful in 1m15s
2025-07-05 15:40:37 +07:00
ebolo f3eae5e649 feat: add search bar to the proxy configs page
Caddy Manager CI build / docker (push) Successful in 1m42s
2025-07-05 09:09:37 +07:00