ebolo and Claude 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